运维驿站自动化监控Zabbix

zabbix邮件告警及执行远程命令(二)

2018-11-29  本文已影响6人  Murray66

概述

在zabbix中,创建带参数监控项(item),创建触发器(trigger),创建脚本形式的报警媒介(Media Type),当触发器被触发时执行动作(action),创建动作(action),包括发送邮件和执行远程命令,最后,触发报警,验证是否收到邮件及执行了远程命令。

上一篇 zabbix邮件告警及执行远程命令(一) 已经完成了 创建带参数监控项创建触发器创建脚本形式的报警媒介,这篇继续。

Step4 创建动作

创建了报警媒介后,需要由action去发送邮件、执行远程命令等。

点击Configuration - Actions,点击最右边Create action

action1.png

1.Action

进入Actions界面,首先在Action栏中,填写如下:

action2.png

定义动作名为RootPartitionUsedActions

定义动作触发条件为触发器为compute1的RootPartitionUsedTrigger以及主机为compute1

2.Operations

Operation栏中添加触发告警时执行的操作,如下图:

action3.png

其中,Default subject对应脚本媒介中第二个参数{ALERT.SUBJECT},是发送邮件的标题,Default message对应脚本媒介中第三个参数{ALERT.MESSAGE},是发送邮件的内容,使用默认即可,也可自定义。

重点看Operations项,执行了两个操作,一个是执行远程命令,一个是利用脚本媒介发送消息,即发送邮件。点击New,可创建Operation。

执行远程命令

action4.png

定义第一个操作,操作类型为Remote command,即执行远程命令。Target List中添加Host: compute1,即告警触发后,在compute1上执行远程命令。Execute on选择Zabbix agent,在server(proxy)server上似乎不能执行远程命令,这里还需要进一步确定。

Commands中写入远程命令:

sudo sh /home/cloudtest/zabbix-test.sh

本命令意为执行compute1/home/cloudtest/目录下的zabbix-test.sh脚本。

该脚本如下:

sudo echo "test" > /home/cloudtest/zabbix.txt

即在compute1/home/cloudtest/zabbix.txt文件中写入test

注意,如果执行某某脚本的话,一定要写明路径。

注意,要使用执行远程命令功能,需要在agent,即compute1的配置文件中修改如下:

sudo vim /etc/zabbix/zabbix_agentd.conf

//添加
EnableRemoteCommands=1

表示允许执行远程命令。

sudo visudo

//添加
zabbix ALL=NOPASSWD: ALL

允许zabbix用户使用sudo命令时不需要输入密码。

重启zabbix-agent服务:

service zabbix-agent restart

最后点击没有蓝背景框update,表示更新本次执行远程命令的操作。

发送邮件

action5.png

定义第二个操作,操作类型为Send message,注意Steps,填写1-2,可使该操作立刻执行,即Start inImmediately。选择好Send to User groupsSend to Users选项,选择Send only to为之前创建的脚本媒介sendEmail

最后点击没有蓝背景框update,表示更新本次发送脚本邮件消息的操作。

3.Recovery Operations

Recovery Operations表示告警消失后执行的操作,比如故障恢复后通知管理员“故障已恢复”

设定如下:

action6.png

和之前类似,设定服务恢复后发送邮件。

最后点击没有蓝背景框update,表示更新本次发送邮件的操作。

最最后,点击蓝背景框update,更新此次创建的动作。

action7.png

此时,已成功创建动作。

Step5 触发报警及验证

verify1.png

如上图,已知当compute1根分区磁盘使用率超过5.46%时触发报警,因此考虑往compute1中拷贝文件使其使用率超过5.46%。

-rw-r----- 1 glance glance 1.1G Jan 18  2018 fc2277ad-5cea-4691-b293-325a1ff8cd68
-rw-r----- 1 glance glance  13M Jan 10  2018 ff826e15-f3ec-4580-8d7f-e96644f22fbd
cloudtest@controller:/var/lib/glance/images$ sudo scp fc2277ad-5cea-4691-b293-325a1ff8cd68 cloudtest@192.168.0.177:
cloudtest@192.168.0.177's password:
fc2277ad-5cea-4691-b293-325a1ff8cd68                                                          27%  291MB  11.3MB/s   01:09 ETA

如上,往192.168.0.177中拷贝一个1.1G的镜像fc2277ad-5cea-4691-b293-325a1ff8cd68,观察图表:

verify2.png

已超过告警线。

回到Dashboard:

verify3.png

看到compute1出现红字PROBLEM告警。

点击边上绿色Done,出现如下图:

verify4.png

看到远程命令被执行,邮件发送。

登录邮箱,验证是否收到邮件:

verify5.png

看到收到了邮件,说明发送邮件成功。

查看compute1/home/cloudtest/目录下是否创建了zabbix.txt并写入了test

cloudtest@compute1:~$ ls
Desktop    Downloads         failure_test_v3.0.py                  Music          Pictures  Templates  zabbix-release_3.4-1+xenial_all.deb  zabbix.txt
Documents  examples.desktop  fc2277ad-5cea-4691-b293-325a1ff8cd68  newton-backup  Public    Videos     zabbix-test.sh

cloudtest@compute1:~$ cat zabbix.txt
test

说明执行远程命令成功。

compute1上执行:

cloudtest@compute1:~$ rm fc2277ad-5cea-4691-b293-325a1ff8cd68

删除刚才拷贝过来的文件,使根分区使用率降低到触发值以下:

verify6.png

看到图表中已有显示,回到Dashboard界面:

verify7.png

看到刚才的红字PROBLEM已变为绿字RESOLVED,同时,Recovery项里邮件显示已发送,再次查看邮箱验证:

verify8.png

OK!大功告成。

上一篇 下一篇

猜你喜欢

热点阅读