我们首先对Trigger配置页面进行详细的讲解

第六章:zabbix告警配置并实现告警通知

 

参数 说明
Name Trigger的名称,可以支持宏{HOST.HOST}、{HOST.NAME}
Severity 触发器的事件级别
Not classified 未知安装等级 灰色
Information 一般信息 亮绿
Warning 警告信息 黄色
Average 一般故障 橙色
High 高级别故障 红色
Disaster 致命故障 亮红
Expression 定义故障、问题的逻辑表达式
OK event generation Expression ok事件与Expression表达式相同,不符合Expression的预期即为OK
Recovery expression 当符合Recovery expression表达式的预期,才会将事件变为ok
None 让触发器不在返回到ok状态
PROBLEM event generation mode Single 当触发器第一次进入PROBLEM状态时会生成一个事件,对于其后采集到的数据不会再重复告警
Multiple 当触发器第一次进入PROBLEM状态时会生成一个事件,对于其后采集到的数据每次都会触发告警
ok event closes OK事件是否关闭
All problem 该触发器产生的所有故障、问题
All problem if tag values match 故障、问题标签匹配的值
Allow manual close 允许手动关闭故障/问题事件
URL  
Description 对触发器的描述,用于提供有关此触发器更多信息的文本字段。可能包含修复特定问题的说明、负责人员的联系方式等。
Enabled

触发器的开关,如果需要,可以取消选中此复选框来禁用触发器

 

 Trigger告警依赖

第六章:zabbix告警配置并实现告警通知Trigger表达式示例;

示例1:对主机www.zabbix.com的CPU负载值进行判断。last()取最近一次获取到的值

{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5

示例2:对主机www.zabbix.com的CPU负载值进行多重条件判断。当负载值大于5或者最近10分钟内负载最小值大于2,将会触发告警。

{www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or {www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2

示例3:对文件/etc/paaswd是否有变化进行监控。使用diff()函数

{www.zabbix.com:vfs.file.cksum[/etc/passwod].diff()}=1

示例4:对网卡流量是否超过一定的阈值进行条件判断。

{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K

示例5:两台SMTP服务器的集群节点都停止了,注意,在一个表达式中使用两个不同的主机,语句如下:与刚刚上边讲的告警关联有异曲同工之妙。

{smtp1.zabbix.com:net.tcp.service[smtp].last()}=0 and {smtp2.zabbix.com:net.tcp.service[smtp].last()}=0

示例6:对zabbix客户端代理版本是否满足特定版本进行判断。使用函数str(),当zabbix代理有版本beta8,即触发告警

{zabbix.zabbix.com:agent.version.str("beta8")}=1

示例7:服务器的icmp ping 不可达进度判断,在最近30分钟内超过5次不可达,该表达式为真。

{zabbix.com:icmpping.cout(30m,0)}>5

示例8:服务器最近3分钟内没有响应,使用nodata()函数

{zabbix.com:tick.nodata(3m)}=1

示例9:对CPU在特定时间的负载进行判断,使用time()函数,触发器只在晚上(00:00-06:00)可用,当5分钟内的负载大于2时,及告警。

{zabbix:system.cpu.load[all,avg1].min(5m)}>2 and {zabbix:system.cpu.load[all,avg1].time()} > 000000 and {zabbix:system.cpu.load[all,avg1].time()} < 060000

示例10:检查客户端本地时间是否与zabbix-server服务器时间同步.使用fuzzytime()函数,当数据库本地时间与zabbix server的时间相差10s时触发告警。

{Mysql_DB:system.localtime.fuzzytime(10)}=0

示例11:CPU的负载在最近1小时的平均值,与前一天的值进行同比大于2倍。

{server:system.cpu.load.avg(1h)} / {server:system.cpu.load.avg(1h,1d)}>2

示例12:存储容量小于总容量的10%

{Template PfSense:hrStorageFree[{#SNMPVALUE}].last()}<{Template PfSense: hrStorageSize[{#SNMPVALUE}].last()}*0.1 #乘号的优先级比小于号大

 示例13:进程数是总进程数的80%

({Template_Oracle:oracle[procnum].last(0)}*100/{Template_Oracle:oracle[maxprocs].last(0)})>80

示例14:判断告警故障表达式,满足阈值的个数大于或等于2,即告警

({Zabbix server:system.cpu.load[percpu,avg1].last()}>5) + ({Zabbix server: system.cpu.load[percpu,avg1].last()}>5) + ({Zabbix server:system.cpu.load [percpu,avg1].last()}>5)>=2

微信告警

 1 shell# wget https://github.com/zabbix-book/wechat-alert/archive/master.zip
 2 shell# unzip master.zip
 3 shell# cp wechat-alert-master/wechat_linux_amd64/etc/zabbix/alertscripts/ wehchat
 4 shell# chmod 755 /etc/zabbix/alertscripts/wehchat
 5 shell# chown zabbix:zabix /etc/zabbix/alertscripts/wehchat
 6 脚本已经正确配置,现在我们调用程序发送微信消息。
 7 
 8 shell# /etc/zabbix/alertscripts/wechat --corpid=wxee***********81aa --corpsecret= Mm0mHwI8iVsjA*JUGySxOFMIlbosoVEkWIEiw --msg="您好</br>告警测试" --user=oneoaas --agentid=1000003
 9 接下来,我们在Zabbix-Web中配置微信告警,如图6-37所示,所配置的参数如下:
10 
11 --corpid=wxee***********81aa 
12 --corpsecret=Mm0mHwI8iVsjA*JUGySxOFMIlbosoVEkWIEiw
13 --agentid=1000003
14 --user={ALERT.SENDTO}
15 --msg={ALERT.MESSAGE}
View Code

相关文章:

  • 2021-12-21
  • 2021-11-04
  • 2021-10-08
  • 2022-12-23
  • 2021-08-19
  • 2022-02-15
猜你喜欢
  • 2021-07-23
  • 2022-12-23
  • 2021-10-30
  • 2022-12-23
  • 2021-12-02
  • 2021-05-14
  • 2021-05-19
相关资源
相似解决方案