一、配置电子邮件为报警媒介
在前面的运维项目中,我采用自建的EMAIL服务来实现报警。
思路为:此MAIL服务器只用于报警邮件管理,不对外服务。所以不需要公网IP,也不需要备案,只能发信。目前我在存储、APT等都使用这个办法,触发报警后,通过自建邮件发送到我的QQ邮箱。目前使用良好,具体方法参看:自建MAIL服务器方案:ExtMail
在zabbix中同样准备用自建邮件服务器来实现,步骤如下:
1、在管理菜单中,配置报警媒介类型,再选Email,如图:
2、根据自建邮件服务器情况,填入相关信息,如图:
更新后,在列表最右则执行“测试”。zabbix提示发送成功,另一边QQ邮件成功收到zabbix发送的邮件,表示配置成功。
二、配置企业微信为报警媒介
可以通过企业微信的群机器人webhook功能实现实时报警功能(钉钉相同处理)。因为我这边一直采用企业微信来实现管理,另外宝塔面板也是通过webhook实时报警,所以zabbix也选用企业微信。
1、在企业微信中新建一个内部群,同时在应用中开启群机器人功能。在内部群中添加机器人,把机器人的推送地址复制到下面的脚本中。如:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=73914537-0e07-4e77-b918-08e8a18
2、创建脚本
# cd /usr/lib/zabbix/alertscripts
# vim wechat.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=73914537-0e07"
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
测试脚本 :
#python wechat.py hello!
如果企业微信收到并转发hello!,则测试成功,下一步配置zabbix。
ps:如果执行后报错类似 import requests 未找到,执行下面命令安装即可:
yum install python-requests -y
3、创建zabbix的报警媒介
这里名称自定,但类型无比选脚本,且脚本名称要和刚刚创建的一致。同时参数里要填写{ALERT.MESSAGE}
三、报警媒介的使用
1、将报警媒介和用户绑定
前面我定义了电子邮件和企业微信报警,现在看一下怎么启用。这里以企业微信为例进行说明。
2、配置告警动作参数
配置---动作---右上角“创建动作”
在“动作”标签填写动作名称,添加触发器示警度和触发条件,然后切换到“操作”标签,设置示警动作详细配置:
添加完成后,立即点“操作”
按照下图进行配置,添加“操作”配置。告警消息自定义内容如下:
这里有“操作”和“恢复操作”二步需要填写。其中下面自定义信息可填写如下:
主题:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息:
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复操作自定义信息为:
主题:
故障恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}已恢复!
消息:
恢复告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
完成“动作”和“操作”两个标签配置后,添加确认即可。
以上完成了全部设置。
下面进行测试,我修改了其中一台服务器的系统时间,很快电子邮件和企业微信都收到了推送,证明操作配置一切正常。
如图,企业微信群收到了webhook推送来的故障信息,另外故障排除后恢复信息也正常。
未经允许不得转载:生于七零年代 » zabbix使用案例