zabbix使用案例

一、配置电子邮件为报警媒介

在前面的运维项目中,我采用自建的EMAIL服务来实现报警。

思路为:此MAIL服务器只用于报警邮件管理,不对外服务。所以不需要公网IP,也不需要备案,只能发信。目前我在存储、APT等都使用这个办法,触发报警后,通过自建邮件发送到我的QQ邮箱。目前使用良好,具体方法参看:自建MAIL服务器方案:ExtMail

在zabbix中同样准备用自建邮件服务器来实现,步骤如下:

1、在管理菜单中,配置报警媒介类型,再选Email,如图:

2、根据自建邮件服务器情况,填入相关信息,如图:

3、测试

更新后,在列表最右则执行“测试”。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、将报警媒介和用户绑定

前面我定义了电子邮件和企业微信报警,现在看一下怎么启用。这里以企业微信为例进行说明。

点击Admin后,编辑报警媒介,添加企业微信,这里收件人可任意填写,因为是发到webhook的。
我把电子邮件和企业微信进行了简单的区分,企业微信因为是实时的,所以全部类型信息都发送,而电子邮件只接收警告以上级别的消息。

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使用案例

赞 (0) 打赏

评论

5+3=

觉得文章有用就打赏一下文章作者

微信扫一扫打赏