`
jwfdp
  • 浏览: 45013 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

zabbix流程研究

阅读更多

1、常见监控:

 

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

 

 

 

2、Zabbix监控数据流程

 

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

 

141933492.png

 

 

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

 

 

 

3、采集数据的频率问题

 

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

 

 

 

报警流程

 

1、报警流程

 

141954880.png

 

 

首先报警的先决条件是触发器,他存在于项目(采集数据)中。然后当触发器被触发后会有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) 运行脚本形式,通过脚本传递出 0 1 2 3 4等参数:如判断某个文件是否发生了改变,脚本中判断,因为zabbix不具备这样的判断功能。所以让这个脚本传递出来参数,如未改变就返回0改变就返回1,然后zabbix是可以抓取到的,然后触发器设定抓取到01就发生某种操作。

 

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

 

 

 

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

 

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

 

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

 

 

 

 

 

例子

 

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

 

需求:需获取到mysqlprocesslist除去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 文件不存在

 

 

 

142015916.png

 

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

 

 

 

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

 

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

 

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

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics