1.概述
在 Zabbix 中,动作(Actions)用于在特定事件发生时执行一系列预定义的操作,比如发送通知、执行脚本等。动作通常(Triggers)结合使用,当触发器条件满足时触发动作
动作由以下几个部分组成:
条件(Conditions):用于定义触发动作的条件,例如主机组、触发器严重性等。
操作(Operations):定义在条件满足时执行的操作,例如发送通知、执行远程命令等。
恢复操作(Recoveryoperations):定义在问题解决后执行的操作。
通知(Notifications):发送给用户或用户组的消息
用途:
通知 : 发送电子邮件、短信、即时消息等。
自动化操作 :执行远程命令或脚本,例如重启服务、清理日志等。
集成:与其他系统进行集成,例如调用 AP1、触发 Webhook等
2.邮件
需求:当触发严重级别的警告时,发送邮件通知给用户
1.创建邮箱账号,开通smtp服务,获取授权码
# 在qq邮箱开启POP3/IMAP/SMTP/Exchange/CardDAV服务,具体可以自己找教程
username=xxxxxxxxx@qq.com
smtp=smtp.qq.com
# 开通时候的授权码
auth-password=xxxxxxxxxxxx
2.在zabbix-server端创建告急的媒介(mediatype),使用邮件通知


添加信息,用户名就是其中的qq号,密码就是授权码
3.创建用户组跟用户,用于授权操作
写一个组名之后,添加

添加一个报警媒介

添加报警媒介后,添加权限

默认给用户权限,在给用户群组添加权限

此时在用户端就有了读写权限,此时的消息才能发送过去
4.创建动作
先添加给nginx-server主机添加一个监控项,监控CPU的空闲率(这个版本不支持total使用率)

设置好之后,添加触发器动作

当CPU的空闲率少于70%告警,点击添加,这里测试就直接调低一点


有了触发器此时就能够添加动作了

这是作出这个动作的两个条件,操作就是

全部添加完成之后就进行压力测试看是否能成功发送消息
5.测试消息是否发送
# 在客户端控制台执行死循环占用CPU
while :; do :; done
观察cpu使用率的图形化界面,当其掉下70的空闲率时候可以发送邮件

当空闲率小于70%触发触发器,问题出现做出动作触发操作发邮件


发送两条且成功,收到邮箱
3.远程命令
比如当nginx服务器挂掉之后他能不能自己启动nginx,此时自己设置动作来操作
1.设置动作
先设置执行操作的动作的条件

此时设置动作的操作就不是发送邮件了,执行远程命令

2.开启zabbix远程执行的功能
vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
# 修改配置文件之后重启zabbix-agent服务
systemctl restart zabbix-agent.service

开启sudo权限
visudo
zabbix ALL=NOPASSWD: /usr/bin/systemctl restart nginx

3.重启测试
停止nginx服务


01秒出现问题,05秒恢复