文章目录
定义动作(action)
总结一句话就是,你前面完成触发器的工作拉,发现问题拉,然后呢,自己手动解决吗?这不是我们想要的,我们是运维,能自动绝不手动,这里就有了动作的定义
现在我们就可以去定义action了。
进入 配置 —> 动作 —> 创建动作(注意选择事件源为触发器)
②
③
我们可以进行操作添加:④
这里提示不知道命令位置,可以which systemctl
前面加绝对路径,后面加上重启的命令
配置文件提权
我们可以看出,还需要在虚拟机上进行两项操作,一是修改sudo配置文件使zabbix用户能够临时拥有管理员权限;二是修改zabbix配置文件使其允许接收远程命令。我们进行如下操作:
[root@zabbix-agent-none1 ~]# visudo #相当于“vim /etc/sudoers”
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zabbix ALL=(ALL) NOPASSWD:ALL #添加的一行,表示不需要输入密码
[root@zabbix-agent-none1 ~]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1 #允许接收远程命令
LogRemoteCommands=1 #把接收的远程命令记入日志
[root@zabbix-agent-none1 ~]# systemctl restart zabbix-agent.service
我们添加了第一步需要做的事情,也就是重启服务,如果重启不成功怎么办呢?我们就需要来添加第二步:
添加完成以后,我们可以看一下
这里提示一下,那个ema可以不用写,我们后面会讲 微信报警,邮件报警
至此,我们的动作设置完毕,可以点击添加了,添加完成会自动跳转至如下页面:
现在我们可以手动停止服务来进行测试:
systemctl stop redis.service
然后我们来到问题页面来查看,发现确实有问题,并且已经解决: 等一会
也可以去agent端查看端口是否开启:
[root@zabbix-agent-none1 ~]# systemctl stop redis
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 1957/redis-server 0
查看邮箱是否成功
[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 1 message 1 unread
>U 1 zabbix@localhost.loc Thu Oct 10 00:51 21/865 "Resolved: redis service down"
邮箱也已经成功
可以看出端口正常开启,我们的动作触发已经完成。
补充:我们也可以使用脚本来发送警报,我们的脚本存放路径在配置文件中可以找到,定义为:
AlterScriptsPath=/usr/lib/zabbix/alertscripts
然后我们将这个动作关闭掉为后期的邮件报警做准备。