设为首页 收藏本站
查看: 1112|回复: 0

[经验分享] zabbix流程研究

[复制链接]

尚未签到

发表于 2017-4-20 10:37:58 | 显示全部楼层 |阅读模式
1、常见监控:
 
主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制;(监控细节需注意的事项下面会详细描述)
 
 
 
2、Zabbix监控数据流程
 
Zabbix是C/S架构的监控产品,他有2种工作模式(主动和被动)
 

 
 
如上图,主动模式适用在特殊场景。如云主机等,因为server端由于某种原因不能探测到agent端的端口问题(kfgzt现在就是主动模式)。这种情况需要事先写清楚
 
 
 
3、采集数据的频率问题
 
采集数据的方式等下具体描述,频率问题应该充分考虑到需求。通常一些数据的频率为60秒,提交需求的时候应当把频率给交代清楚。另外被动模式可以设定时间段来采集数据(如12点到20点频率为200秒,20点到12点的频率为100秒)。
 
 
 
报警流程

 
1、报警流程
 

 
 
首先报警的先决条件是触发器,他存在于项目(采集数据)中。然后当触发器被触发后会有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是可以抓取到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 文件不存在
 
 
 

 
切记提交脚本的时候请把相应的逻辑写在脚本后边,以便进行触发器的添加。
 
 
 
3、采集方式:通过crontab任务把一些总体数据打到1个文件中。然后cat grep参数出来。
 
需求:需要对系统中内存的各项指标进行测取并监控
 
分析:cat /proc/meminfo 可以取得内存的完整指标,但是用命令行去拉取未免有些麻烦(仅此作为参考的例子,难免有些不规范)
 
结果:做了一个crontab任务,每一分钟就cat /proc/meminfo然后覆盖到1个文件中。然后在用命令行的形式去cat/grep这个文件。然后获取相应的值。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366759-1-1.html 上篇帖子: zabbix自定义key 下篇帖子: zabbix配置email发送方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表