Zabbix | 通过脚本发送email邮件告警(八)

  • 内容
  • 相关

Zabbix服务器操作

1、安装sendmailpostfix (邮件传送代理MTA),博主所使用的平台是CentOS7,同时使用postfix软件(关于安装问题网上搜搜)。

(注:如果直接使用外部邮箱发送邮件可以不需要配置sendmailpostfix,直接把这两个软件关掉,直接跳到第3步:配置mail即可实现

[root@fishyoung ~]# yum -y install postfix

#在线yum安装postfix

[root@fishyoung ~]#systemctl start postfix

#启动postfix服务

[root@fishyoung ~]#systemctl status postfix

#查看postfix启动情况

[root@fishyoung ~]# systemctl enable postfix

#设置postfix开机启动

2、安装邮件发送工具mailx 。(邮件用户代理MUA

[root@fishyoung ~]# yum -y install mailx

#yum安装mailx

3、配置mail(使用外部邮箱发送邮件,根据个人情况选择自己搭建的邮箱系统还是利用外部邮箱,建议用自己搭建的,反正就是发个邮件

[root@fishyoung ~]# vim /etc/mail.rc

set  from=xxxxxxxx@163.com

#163注册的个人邮箱,用于zabbi服务端转发邮件到指定邮箱

set  smtp=smtp.163.com

#填写163发送邮箱服务器地址smtp

set  smtp-auth-user= xxxxxxxx

#163个人邮箱用户

set  smtp-auth-password=yyyyyyyy

#163个人邮箱密码

set  smtp-auth=login

#登录

4、测试邮件能否发送(建议用自己搭建的邮件系统

#发送一份邮件到wwwwwwww@qq.com 这个QQ邮箱(个人的QQ邮箱)

[root@mail ~]# echo "test" | mail -s 'test linux zabbix monitor'  wwwwwwww@qq.com

5、编写邮件发送脚本sendmail.sh

[root@fishyoung ~]#cd /usr/lib/zabbix/alertscripts/

#进入zabbix默认存放脚本路径,由于我是采取的yum方式安装的zabbix,所以脚本路径在这个地方。根据实际情况切换。

[root@fishyoung alertscripts]# vi sendmail.sh

#编写发送邮件脚本

[root@fishyoung alertscripts]# cat sendmail.sh

#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

[root@fishyoung alertscripts]# chown zabbix.zabbix sendmail.sh

#修改sendmail.sh脚本所属用户和用户组

[root@fishyoung alertscripts]# chmod 755 sendmail.sh

#赋予sendmail脚本执行权限

[root@fishyoung ~]# ls -l

#查看sendmail.sh脚本信息

-rwxr-xr-x. 1 zabbix zabbix 155 Feb 17 13:05

[root@fishyoung alertscripts]# vi /etc/zabbix/zabbix_server.conf

#配置zabbix_server.conf配置文件

AlertScriptsPath=/usr/lib/zabbix/alertscripts/

#修改这个为sendmail.sh脚本存放路径

[root@fishyoung alertscripts]# su - zabbix

#切换zabbix用户

sh-4.1$ ./usr/lib/zabbix/alertscripts/sendmail.sh wwwwwwww@qq.com "test linux" "test"

#zabbix用户执行sendmail.sh脚本看是否有权限

 

Zabbix后台web介面配置 

1、管理 ----  报警媒介类型 -----  创建媒介类型

http://img.fishyoung.com/images/20190219/ypimBYyF0n3E.png

2、名称可以随便自己定义 ----- 类型选择脚本 ----- 脚本名称输入上一步编写的发送邮件的脚本名称 ----

再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

3、管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以)

 注:如果时区不对,可通过cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime来更正时区。

4、报警媒介 ---- 添加 

5、类型输入刚刚创建的报警媒介类型sendmail脚本 --- 输入个人邮箱用于接收报警邮件 --- 启动打勾 ---- 添加 

6、选择更新

7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)

8、配置 ---- 动作 ---- 创建动作

9、动作 ---- 名称自定义 --- 设置一条新的触发条件 ---- 启用 ---- 添加。(触发条件需要根据实际情况设置)

触发器名称        is unreachable for 5 minutes

#根据主机触发器Template App Zabbix Agent: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes设置,主要监测zabbix_agentd客户端连接情况。

10、定义操作

默认接收人/标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:

告警主机IP地址:{HOST.CONN}

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID{EVENT.ID}

11、类似方式定义恢复操作

默认接收人/恢复标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机IP地址:{HOST.CONN}

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID{EVENT.ID}

12、测试 

[root@fishyoung alertscripts]# systemctl stop zabbix_agent

#暂停zabbix_agent客户端服务

 您阅读这篇文章共花了:

上一篇:Zabbix | 通过snmp监控华为交换机(七)

下一篇:Linux | 常用iptables示例

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:Zabbix | 通过脚本发送email邮件告警(八) - http://www.fishyoung.com/post-227.html