概述
在zabbix中,创建带参数监控项(item),创建触发器(trigger),创建脚本形式的报警媒介(Media Type),当触发器被触发时执行动作(action),创建动作(action),包括发送邮件和执行远程命令,最后,触发报警,验证是否收到邮件及执行了远程命令。
上一篇 zabbix邮件告警及执行远程命令(一) 已经完成了 创建带参数监控项
、创建触发器
、创建脚本形式的报警媒介
,这篇继续。
Step4 创建动作
创建了报警媒介后,需要由action
去发送邮件、执行远程命令等。
点击Configuration
- Actions
,点击最右边Create action
1.Action
进入Actions
界面,首先在Action
栏中,填写如下:
定义动作名为RootPartitionUsedActions
定义动作触发条件为触发器为compute1的RootPartitionUsedTrigger
以及主机为compute1
2.Operations
在Operation
栏中添加触发告警时执行的操作,如下图:
其中,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 in
为Immediately
。选择好Send to User groups
、Send to Users
选项,选择Send only to
为之前创建的脚本媒介sendEmail
。
最后点击没有蓝背景框
的update
,表示更新本次发送脚本邮件消息的操作。
3.Recovery Operations
Recovery Operations
表示告警消失后执行的操作,比如故障恢复后通知管理员“故障已恢复”
设定如下:
action6.png和之前类似,设定服务恢复后发送邮件。
最后点击没有蓝背景框
的update
,表示更新本次发送邮件的操作。
最最后,点击蓝背景框
的update
,更新此次创建的动作。
此时,已成功创建动作。
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
,观察图表:
已超过告警线。
回到Dashboard
:
看到compute1
出现红字PROBLEM
告警。
点击边上绿色Done
,出现如下图:
看到远程命令被执行,邮件发送。
登录邮箱,验证是否收到邮件:
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
界面:
看到刚才的红字PROBLEM
已变为绿字RESOLVED
,同时,Recovery项里邮件显示已发送,再次查看邮箱验证:
OK!大功告成。
网友评论