1、常见监控:

 

主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制;(监控细节需注意的事项下面会详细描述)

 

 

2、Zabbix监控数据流程

 

Zabbix是C/S架构的监控产品,他有2种工作模式(主动和被动)

 

zabbix 接入监控 zabbix监控流程_shell

 

 

如上图,主动模式适用在特殊场景。如云主机等,因为server端由于某种原因不能探测到agent端的端口问题(kfgzt现在就是主动模式)。这种情况需要事先写清楚。


3、采集数据的频率问题

 

采集数据的方式等下具体描述,频率问题应该充分考虑到需求。通常一些数据的频率为60秒,提交需求的时候应当把频率给交代清楚。另外被动模式可以设定时间段来采集数据(如12点到20点频率为200秒,20点到12点的频率为100秒)。

 

 

报警流程

 

1、报警流程

 

zabbix 接入监控 zabbix监控流程_awk_02

 

 

首先报警的先决条件是触发器,他存在于项目(采集数据)中。然后当触发器被触发后会有2个分支,他会产生一个事件,存放在web中可以用来查看。然后另外一个分支就是产生动作,动作中定义了报警的方式等等。

 

2、分级报警

 

Zabbix是享受分级报警的。用步骤来划分(10个步骤)。

 

大概可以理解为报警先报1然后2然后3,中间可以有步骤的时间间隔。这样可以做到如果报到1级别的时候没人操作就往上级报。

 

 

3、报警方式

 

a) 短信(提短信需求的时候,尽量选择关键字来报警,字数限制问题显示不全)

 

b) 邮件


 

 

采集数据的问题

 

如果官方给的模板上没相应的采集数据的项目及触发器,那么就需要手动添加了

 

1、zabbix采集数据的反应形式

 

a) 数字形式,

 

b) 0 1 2 .. 脚本传递出来的参数,触发器可以判断

 

c) 字符串触发器可以判断

 

2、采集数据的方式

 

a) 命令行形式,可以直接拉取到的。如 cat /proc/meminfo | grep "MemTotal" |awk '{print $2}'

 

b) 运行脚本形式,通过脚本传递出zabbix不具备这样的判断功能。所以让这个脚本传递出来参数,如未改变就返回0改变就返回1,然后zabbix是可以抓取到0 或1 的,然后触发器设定抓取到0或1就发生某种操作。

 

c) 通过crontab任务把一些总体数据打到1个文件中。然后cat grep参数出来。(这样可以节省将一些问题中的数据集中采集,分别拉取)


 

3、触发器的判断类型(其实很多函数,只做稍微列举)

 

a) 次数或时间段内的数据大于等于小于多少

 

b) 对字符串判断(判断一样或不一样。)

 

 

 

例子

 

1、采集方式:命令行直接采集数据的形式

 

需求:需获取到mysql中processlist除去Sleep之外的连接数,对此做统计。

 

分析:统计这样的数据,只需要一条shell命令即可搞定,所以无需脚本。

 

结果:/usr/local/mysql_percona5.5.25/bin/mysql -uccmsckdata -pdatayun_123! -sNe "show full processlist" | egrep -v "Sleep|Id|show full processlist" | wc -l

 

这样 就可以采集到mysql的连接数了。

 

然后提交issue的时候,需要把主动还是被动模式、采集数据的时间间隔、报警联系人、方式、短信报警内容提交给运维组即可。


2、采集方式:脚本形式,通过传递 0 1 2 3 4等参数

 

需求:判断1个文件是否在当天是否生成及是否为空,做出相应的报警

 

分析:这类不能通过1个命令直接获取出结果。并且用脚本需要在逻辑中进行判断等操作。

 

结果:由于zabbix是可以运行脚本的,但是脚本运行完出来字符串的形式并不能在web界面中直接的观察结果,所以可以参考如下脚本:

 

#!/bin/bash
 
#
 
source /etc/profile
 
 
 
FILE="/data/opsscripts/resin_log/data/customer.data"
 
FTIME=`stat /data/opsscripts/resin_log/data/customer.data | grep "^Modify" |awk '{print $2}'`
 
DATE=`date +%F`
 
 
 
if [ -s $FILE ]
 
then
 
if [ $FTIME = $DATE ]
 
then
 
echo 0
 
else
 
echo 1
 
fi
 
else
 
echo 2
 
fi
 
 
 
# 0 检查ok
 
# 1 文件存在但日期不一样
 
# 2 文件不存在

 

 

 

zabbix 接入监控 zabbix监控流程_awk_03

 

切记提交脚本的时候请把相应的逻辑写在脚本后边,以便进行触发器的添加。

 

 

3、采集方式:通过crontab任务把一些总体数据打到1个文件中。然后cat grep参数出来。

 

需求:需要对系统中内存的各项指标进行测取并监控

 

分析:cat /proc/meminfo 可以取得内存的完整指标,但是用命令行去拉取未免有些麻烦(仅此作为参考的例子,难免有些不规范)

 

结果:做了一个crontab任务,每一分钟就cat /proc/meminfo然后覆盖到1个文件中。然后在用命令行的形式去cat/grep这个文件。然后获取相应的值。

 

好了。大致上就这些吧,大致想了一些,如果有不全的地方请大家指出来。我直接加上来