Zabbix告警通知部署方案详解
01 命令行获取监控值 参数说明: ● -s 指定 Zabbix Agent 所在的主机 IP 地址。 ● -p 指定 Zabbix Agent 监听的端口号。 ● -k 指定要获取的监控项的键(Key)。 自定义监控项 (1)首先需要确定监控目标取值的命令行 (2)手动创建zabbix自定义key的配置文件 如果只是个别需要的自定义监控项可以直接在agent配置文件中添加 如果是大量的自定义监控项,建议创建单独的配置文件来写。 所以在zabbix_agentd.conf目录下创建新的自定义监控的以.conf结尾的文件,配置监控项即可。 配置格式如下: (3)重启一下agent (4)通过zabbix_get取值 成功取到值,说明自定义的监控项是可以的 监控页面添加监控流程 (1)创建模板,可以给其他主机使用,不用重复操作 (2)创建应用集,给监控项划分到相应的应用集。 (4)创建触发器,当监控获取的值和触发器比较,判断是否报警 (5)创建图形 (6)将具体的主机和改模板链接,关联 (7)当用户超过三个登录时,就会产生告警 02 配置邮箱告警 邮箱开启SMTP/POP3服务 使用加密密码认证,获取授权码 创建报警媒介 配置告警信息模板 ● 方式一: ● 方式二: 点击测试,测试一下,如果可以正常接受到说明邮件告警就没有问题。 配置告警通知动作 点击配置 -> 动作 -> triggers actions -> 创建动作 添加告警通知人邮箱 点击用户 -> 报警媒介 -> 添加 -> 选择email类型 -> 加收件人邮箱 -> 发送的报警级别 告警测试 出现告警,就会发邮件通知 03 配置企业微信告警 提供企业微信机器人信息 需要提供企业机器人的webhook地址,以及需要在群里接受告警的人员手机号 server上配置告警脚本 (1)编辑zabbix-server.conf文件进行配置 (2)安装组件requests (3)修改报警脚本或自己写 创建告警媒介 添加报警媒介类型 脚本参数: {ALERT.MESSAGE} 配置告警通知动作 点击配置 -> 动作 -> triggers actions -> 创建动作 添加告警通知人 告警测试 04 配置钉钉告警 配置钉钉告警脚本 在server固定的目录下配置告警脚本:/usr/local/zabbix/alertscripts/,需要钉钉里机器人的webhook server上配置告警媒介类型 脚本参数: {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} 配置告警动作 配置告警接收人yum install -y zabbix-get
zabbix_get -s '192.168.244.153' -p 10050 -s 'system.hostname'
systemctl restart zabbix-agent
zabbix_get -s '192.168.244.148' -p 10050 -k 'login.user'
(5)在server页面上添加自定义监控项模板
(3)创建监控项,自定义item,具体想监控的内容问题模板:
主题:故障告警:{TRIGGER.NAME}
信息:告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
恢复模板:
主题:故障恢复:{TRIGGER.NAME}
信息:恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
vi /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts
#如果存在则不需要创建按照该目录去找文件夹,如果不存在则创建这条路径,并执行下面命令创建目录
mkdir -p /usr/local/zabbix/alertscripts
yum install python-requests -y
cd /usr/local/zabbix/alertscripts/
vi 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=f2925971-a64e-4a42-a1be-2e53a76d7dbb"
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text,
"mentioned_mobile_list":["",]
},
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
``````````````````````````````````````````````````````````````````````````````
chmod +x wechat.py
问题模板:
主题:故障告警:{TRIGGER.NAME}
信息:告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
恢复模板:
主题:故障恢复:{TRIGGER.NAME}
信息:恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
#vi /usr/local/zabbix/alertscripts/dindin.sh
````````````````````````````````````````````````````````````````````````
!/bin/bash
to=$1
sub=$2
text=$3
mes="$sub\n$text"
#SECcc7742eec9ba072edf762c8e1ac8393ebe3a04e64e39675d60a756da48198bba'
curl 'https://oapi.dingtalk.com/robot/send?access_token=dda742c95251d9c18cdc1d894e59c7342a11c4fab3c3878dfd4007fbf45e27a4' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "'"$mes"'"
}
}'
```````````````````````````````````````````````````````````````````````
问题模板:
主题: 故障告警:{TRIGGER.NAME}
信息: 告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
恢复模板:
主题: 故障恢复:{TRIGGER.NAME}
信息: 恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}