zabbix自定义报警-动作




 



打开资产自动接收




zabbix告警 disk use space zabbix告警声音怎么调_网络

 



 

zabbix告警 disk use space zabbix告警声音怎么调_运维_02

这里看到主机资产有数据了,这里的数据,就是来自下面的关联 

zabbix告警 disk use space zabbix告警声音怎么调_linux_03

 

上面的数据就是设置login-user时候设置的关联



 

zabbix告警 disk use space zabbix告警声音怎么调_自定义_04

 



 有些关联显示的慢,比如下面的OS,原因就是items那里设置的更新时间比较长,原先是3600秒,改成60秒



 

zabbix告警 disk use space zabbix告警声音怎么调_运维_05

 



 



 



创建触发器




zabbix告警 disk use space zabbix告警声音怎么调_python_06

 



 

zabbix告警 disk use space zabbix告警声音怎么调_python_07

 

起个名字,添加个表达式




zabbix告警 disk use space zabbix告警声音怎么调_自定义_08

 



 

zabbix告警 disk use space zabbix告警声音怎么调_运维_09

zabbix告警 disk use space zabbix告警声音怎么调_网络_10

 



 



下面这里还可以设置时间,次数



下面意思,就是最后时间大于2次的



点击Insert



 

zabbix告警 disk use space zabbix告警声音怎么调_linux_11

 

 



描述可以不写,选择警告级别




zabbix告警 disk use space zabbix告警声音怎么调_运维_12

 



查看另一个页面 --依赖
如果某件事发生了,就别报这个警了。比如如果主机down了就别报警了。先不加这个依赖



 

zabbix告警 disk use space zabbix告警声音怎么调_网络_13

 



客户端多复制一个console,触发它报警




zabbix告警 disk use space zabbix告警声音怎么调_运维_14

 

图形里也能看到



 

zabbix告警 disk use space zabbix告警声音怎么调_自定义_15

 



 



profile里面可以设置报警声音,启用它




zabbix告警 disk use space zabbix告警声音怎么调_python_16

 



 



 仪表板,报警会产生一个事件




zabbix告警 disk use space zabbix告警声音怎么调_python_17

 



 



 



 



 处理告警,点击ack




zabbix告警 disk use space zabbix告警声音怎么调_自定义_18

 



 



每一个事件最好都ack一下,这是好习惯



 




zabbix告警 disk use space zabbix告警声音怎么调_运维_19

 



 



actions是空的,说明什么也没干



 

zabbix告警 disk use space zabbix告警声音怎么调_网络_20

 



 



 



 



配置告警之后的actions




 



可以配置一些告警短信和邮件等。默认自带了一个actions,打开这个actions



 

zabbix告警 disk use space zabbix告警声音怎么调_python_21

 



 下面是默认短信发送内容




zabbix告警 disk use space zabbix告警声音怎么调_python_22

 

如果是发短信报警,要把上面的message改的短一些,改成70个字符以内
国内英文单词按字母算,汉字按个数算
精简下,最下面是恢复的时候再发个短信,把下面粘贴下放下面即可,生产环境是这么玩的




zabbix告警 disk use space zabbix告警声音怎么调_运维_23

 



条件,



1、你这个机器没在维护里面



2、你这个触发器故障的时候




zabbix告警 disk use space zabbix告警声音怎么调_运维_24

 



有台机器你不想让他告警,但是又想监控它,可以使用host=




zabbix告警 disk use space zabbix告警声音怎么调_linux_25

 



下面是操作什么




zabbix告警 disk use space zabbix告警声音怎么调_自定义_26

 



第一分钟到第三分钟,每分钟发一个告警的通知



如果第3分钟到第5分钟,告警还在可以设置发领导(现网这里悠着点,肯定要尽快解决,也是对自己一个督促)



 

zabbix告警 disk use space zabbix告警声音怎么调_linux_27

 



 下面就是假设,假设6分钟到10分钟还没处理,发给你的cto,这就是故障的升级机制




zabbix告警 disk use space zabbix告警声音怎么调_运维_28

 



 



 



 



设置告警的介质




 



默认是email



jabber是一个开源的东西,用不上



sms是短信的,也可以使用gsm的猫,短信猫等都是支持的




zabbix告警 disk use space zabbix告警声音怎么调_python_29

 



点开邮件,发现比较鸡肋。 没用用户名密码等,一般不使用它




zabbix告警 disk use space zabbix告警声音怎么调_linux_30

 



短信这个除非你有短信猫,一般也不用



jabber更不用




zabbix告警 disk use space zabbix告警声音怎么调_自定义_31

 



 模拟触发执行脚本,自己去创建




zabbix告警 disk use space zabbix告警声音怎么调_运维_32

你可以写个脚本发邮件,发短信等,或者echo  hehe,一般使用脚本是主流



 



怎么加脚本呢vim /etc/zabbix/zabbix_server.conf



AlertScriptsPath=/usr/lib/zabbix/alertscripts
这里配置了报警脚本的路径
把你写的脚本放这里就好了,这样它就能找到了




zabbix告警 disk use space zabbix告警声音怎么调_自定义_33

 



一般情况下,我们是执行Zabbix脚本,比如发邮件



这个zabbix脚本要接收3个参数
$1,$2,$3
$1是邮件地址
$2 邮件主题
$3 邮件内容



[root@linux-node1 alertscripts]# pwd /usr/lib/zabbix/alertscripts [root@linux-node1 alertscripts]# cat Send_Mail.sh echo $1 $2 $3 >>/tmp/test.log [root@linux-node1 alertscripts]#



加上课执行权限



[root@linux-node1 alertscripts]# chmod +x Send_Mail.sh



网页这里就可以这么写了

zabbix告警 disk use space zabbix告警声音怎么调_网络_34

 




zabbix告警 disk use space zabbix告警声音怎么调_自定义_35

 



给它指定个用户,让某用户可以运行这个脚本



注意,前面是用户组,后面是成员




zabbix告警 disk use space zabbix告警声音怎么调_python_36

 



点击Members,然后点击Admin,下面这里不用动,点击Media




zabbix告警 disk use space zabbix告警声音怎么调_自定义_37

 



报警介质添加



发给谁,什么时间,什么级别发



如果这个邮箱是老板的话,可以去掉不重要的告警




zabbix告警 disk use space zabbix告警声音怎么调_运维_38

 



我的选择如下

zabbix告警 disk use space zabbix告警声音怎么调_网络_39

 

Add之后

zabbix告警 disk use space zabbix告警声音怎么调_自定义_40

 



权限这里分读写和只读以及拒绝访问,最下面可以看到权限只能分配给组




zabbix告警 disk use space zabbix告警声音怎么调_网络_41

 



 模拟故障场景,linux-node2的ssh窗口多复制几个,等待一会看到下面日志有内容了



[root@linux-node1 alertscripts]# tail -f /tmp/test.log 525031638@qq.com PROBLEM linux-node2:login-user): 3 ^C [root@linux-node1 alertscripts]#



仪表盘里也能看到它自动执行了action 

zabbix告警 disk use space zabbix告警声音怎么调_linux_42

 



尝试把脚本改成如下发邮件的脚本,这个脚本需要把smtpserver,username,password改成发件方的。



另外这个脚本需要接收3个参数,第一个参数是收件人的邮箱(Zabbix会传给它),第二个参数是邮件主题(Zabbix会传给它),第三个参数是邮件内容(Zabbix也会传给它)



[root@linux-node1 alertscripts]# pwd /usr/lib/zabbix/alertscripts [root@linux-node1 alertscripts]# ll total 8 -rwxr-xr-x 1 root root 714 Mar 13 20:16 pymail.py -rwxr-xr-x. 1 root root 30 Nov 29 23:20 Send_Mail.sh [root@linux-node1 alertscripts]# cat pymail.py #!/usr/bin/python #coding: utf-8 import smtplib import sys from email.mime.text import MIMEText from email.header import Header from email.Utils import COMMASPACE receiver = sys.argv[1] subject = sys.argv[2] mailbody = sys.argv[3] smtpserver = 'smtp.exmail.qq.com' username = 'test1@xxxxxx.com' password = '123456' sender = username msg = MIMEText(mailbody,'html','utf-8')#中文需参数‘utf-8’,单字节字符不需要 msg['Subject'] = Header(subject, 'utf-8') msg['From'] = username msg['To'] = receiver smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(username, password) smtp.starttls() smtp.sendmail(msg['From'], msg['To'], msg.as_string()) smtp.quit() [root@linux-node1 alertscripts]#



  




zabbix告警 disk use space zabbix告警声音怎么调_python_43

 



QQ邮箱可以收到邮件




zabbix告警 disk use space zabbix告警声音怎么调_linux_44

解决告警之后又收到了恢复正常的邮件

zabbix告警 disk use space zabbix告警声音怎么调_自定义_45

 

 

看到邮件内容多了括号和空格,把下面多余的空格和括号删除即可

zabbix告警 disk use space zabbix告警声音怎么调_网络_46

 



Update之后,别扭的括号和空格都没了




zabbix告警 disk use space zabbix告警声音怎么调_运维_47

qq邮件可以绑定微信。对于使用微信的用户可以及时看到告警

 

 



 



简单制作一个模板




制作模板



 




zabbix告警 disk use space zabbix告警声音怎么调_linux_48

 




zabbix告警 disk use space zabbix告警声音怎么调_python_49

 



点开进去,可以看到此模板配置情况




zabbix告警 disk use space zabbix告警声音怎么调_网络_50

 




zabbix告警 disk use space zabbix告警声音怎么调_python_51

 

给此模板命名为demo,同时把linux-node2加入到此模板里

zabbix告警 disk use space zabbix告警声音怎么调_python_52

zabbix告警 disk use space zabbix告警声音怎么调_自定义_53

link给一个模板

zabbix告警 disk use space zabbix告警声音怎么调_python_54

 

 

点击Update




zabbix告警 disk use space zabbix告警声音怎么调_python_55

 

点击Update之后,提示模板不能被通过此模板再去link给其它模板(这里不是很明白,有时间再研究下)



zabbix告警 disk use space zabbix告警声音怎么调_网络_56

 



去掉link,点击update。模板创建好了,目前什么都是空的。没有application和items



建立完毕,目前什么都是空的




zabbix告警 disk use space zabbix告警声音怎么调_linux_57

 



 



添加items




zabbix告警 disk use space zabbix告警声音怎么调_自定义_58

 



 

zabbix告警 disk use space zabbix告警声音怎么调_网络_59

 



把login-user 这个之前创建的item加入到模板里



 



 key这里,要手写,不要选择,因为是自定义的,select是搜索不到的




zabbix告警 disk use space zabbix告警声音怎么调_python_60

 



还可以给这个模板继续创建Application,起名app1




zabbix告警 disk use space zabbix告警声音怎么调_linux_61

 

 




zabbix告警 disk use space zabbix告警声音怎么调_linux_62

 



 



把之前创建的items加入到app1




zabbix告警 disk use space zabbix告警声音怎么调_自定义_63

 



 app1里面多了Items,那个login-user



 

zabbix告警 disk use space zabbix告警声音怎么调_运维_64

 

最后demo模板结果如下




zabbix告警 disk use space zabbix告警声音怎么调_运维_65

 



你可以把这个模板链接到任何一台机器上,这样模板里有的监控项,那个机器就有了
其实你自定义的监控项可以从配置文件里取出来,放下面目录下,然后在客户端主配置文件里include进去



这里面默认还有个mysql的监控项呢



[root@linux-node2 zabbix_agentd.d]# cd /etc/zabbix/zabbix_agentd.d/ [root@linux-node2 zabbix_agentd.d]# ls userparameter_mysql.conf [root@linux-node2 zabbix_agentd.d]#



这个agent.conf自带include选项
生产环境都建议这么干。尽量不要修改原来的配置文件。更专业一点

zabbix告警 disk use space zabbix告警声音怎么调_运维_66

 



 



zabbix导入自定义模板--tcp的11种状态监控




 



 获取服务器的tcp的11种状态的模板和脚本(常用于web服务器和反向代理服务器)。



脚本里采用ss命令取tcp状态,ss命令性能强于netstat



这里使用2个文件




zabbix告警 disk use space zabbix告警声音怎么调_linux_67

 



创建一个用于存放脚本插件的目录



[root@linux-node2 alertscripts]# cd /etc/zabbix/ [root@linux-node2 zabbix]# ls web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf [root@linux-node2 zabbix]# mkdir shells [root@linux-node2 zabbix]# cd shells/ [root@linux-node2 shells]# pwd /etc/zabbix/shells



把脚本上传上去



[root@linux-node2 shells]# rz -E rz waiting to receive. [root@linux-node2 shells]# [root@linux-node2 shells]# ls zabbix_linux_plugin.sh [root@linux-node2 shells]# chmod +x zabbix_linux_plugin.sh [root@linux-node2 shells]# ./zabbix_linux_plugin.sh Usage: ./zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key} [root@linux-node2 shells]#



 



你要告诉它,你监控什么东西,它的key是什么。



这里截取模板文件部分内容




zabbix告警 disk use space zabbix告警声音怎么调_运维_68

因此,运行此脚本需要给它2个参数



[root@linux-node2 shells]# ./zabbix_linux_plugin.sh tcp_status LISTEN 14 [root@linux-node2 shells]# ./zabbix_linux_plugin.sh tcp_status TIME-WAIT 52 [root@linux-node2 shells]#



 

在下面目录下,创建一个文件,存放自定义的key和value,而value通过此脚本获取

key这里是linux_status[*] ,表示它支持列表



[root@linux-node2 zabbix_agentd.d]# pwd /etc/zabbix/zabbix_agentd.d [root@linux-node2 zabbix_agentd.d]# ls userparameter_mysql.conf zabbix-linux-plugin.conf [root@linux-node2 zabbix_agentd.d]# cat zabbix-linux-plugin.conf UserParameter=linux_status[*],/etc/zabbix/shells/zabbix_linux_plugin.sh "$1" "$2" "$3" [root@linux-node2 zabbix_agentd.d]#



重启linux-node2的Zabbix agent



[root@linux-node2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@linux-node2 zabbix_agentd.d]# cd



  

server端通过zabbix_get获取数据没问题



[root@linux-node1 zabbix]# zabbix_get -s 10.0.1.162 -k linux_status[tcp_status,ESTAB] 2 [root@linux-node1 zabbix]#



  

注意,zabbix监控的时候,是使用的zabbix用户



[root@linux-node2 ~]# ll /tmp/netstat.tmp -rw-rw-r-- 1 zabbix zabbix 31 Mar 13 22:09 /tmp/netstat.tmp [root@linux-node2 ~]#



  

接下来你要做的是,创建一种模板,tcp有11个状态,你要创建11个key
然后做个图,这里有别人做好的
配置--模板--导入

zabbix告警 disk use space zabbix告警声音怎么调_linux_69

 选择电脑上的模板文件

zabbix告警 disk use space zabbix告警声音怎么调_linux_70

 

 



 模板导入成功




zabbix告警 disk use space zabbix告警声音怎么调_运维_71

 



 



 

zabbix告警 disk use space zabbix告警声音怎么调_网络_72

 

 



点击Items看到11个监控项,name右边是key




zabbix告警 disk use space zabbix告警声音怎么调_运维_73

 



 



接下来给一个主机加这个模板




zabbix告警 disk use space zabbix告警声音怎么调_网络_74

 




zabbix告警 disk use space zabbix告警声音怎么调_运维_75

 

可以批量更改



 

zabbix告警 disk use space zabbix告警声音怎么调_python_76

 



改时间间隔为30秒,仅仅出于测试目的,现网不要这么做



 



 

zabbix告警 disk use space zabbix告警声音怎么调_自定义_77

 

本来是300的,都变成了30秒



 

zabbix告警 disk use space zabbix告警声音怎么调_linux_78

 



 查看图形显示这里



如果没有数据会返回0,注意0不是空。这里写成0是有意义的。