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

概述

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

Step1 创建带参数监控项

参考 zabbix从放弃到入门(5)在zabbix中添加带有参数的监控项

点击 Configuration - Hosts - compute1Items:

item1.png

进入如下界面,点击Create Item

item2.png

创建监控项RootPartitionUsed,填写如图中配置,表示监控192.168.0.177主机下根磁盘使用率,点击update

item3.png

查看数据,点击Monitoring - Latest data,看到了监控项RootPartitionUsed

item4.png

点击最右边的graph查看图表:

item5.png

此时,已成功创建了一个带参数监控项。

忽略左边一块凸起,是之前做实验留下的痕迹。

Step2 创建触发器

参考 zabbix从放弃到入门(7):触发器详解之一,创建触发器

点击Configuration - Hosts - compute1Triggers

trigger1.png

进入如下界面,选好GroupHost,点击Create Item

trigger2.png

创建触发器RootPartitionUsedTrigger,设定等级为High,设定触发条件为compute1的根目录磁盘使用率超过5.46%,点击update

trigger3.png

其中,触发条件由上图Expression设定,点击add可进入编辑页,这里就不详述,可参考本步骤开头链接。

再次查看数据,点击Monitoring - Latest data,找到监控项RootPartitionUsed

点击最右边的graph查看图表,注意这里的Trigger

trigger4.png

此时,已成功创建了一个触发器。

Step3 创建脚本形式的报警媒介

参考 zabbix从放弃到入门(9):定义报警媒介

点击Administration - Media types,点击最右边Create media type

media1.png

创建一个名为sendEmail,类型为Script的脚本作为报警媒介。

media2.png

脚本名为sendEmail.sh,将该脚本放置与zabbix server的/usr/lib/zabbix/alertscripts目录下:

cloudtest@controller:/usr/lib/zabbix/alertscripts$ ls
sendEmail.sh

添加脚本三个参数,意为

  • {ALERT.SENDTO} - 邮件接收方
  • {ALERT.SUBJECT} - 邮件标题
  • {ALERT.MESSAGE} - 邮件内容

则执行脚本时会依次传入这三个参数,脚本内容如下:

#!/bin/bash
to=$1
title=$2
context=$3
/usr/local/bin/sendEmail -f [email protected] -t "$to" -s smtp.163.com -u "$title" -o message-content-type=html -o messag    e-charset=utf-8 -xu [email protected] -xp cloudtest123 -m "$context" -o tls=no

该脚本利用sendEmail发送邮件,如何用sendEmail发送邮件,请见https://www.jianshu.com/p/d8c1fd480b21

另外,注意授予脚本执行权限:

sudo chmod a+x sendEmail.sh

点击update,看到报警媒介已添加:

media3.png

这时,还需要定义一个用户,让其具备接收报警媒介的能力,点击Administration - Users - Admin

media4.png

进入Users界面,点击Media - Add

media5.png

添加媒介,Send to里填上收件人的邮箱,对应之前创建脚本时的{ALERT.SENDTO}参数,点击update

media6.png

回到Users,别忘了再update一下:

media7.png

此时,已成功创建了一个脚本形式的报警媒介。

未完待续。

你可能感兴趣的:(zabbix邮件告警及执行远程命令(一))