Zabbix告警通知部署方案详解
文章目录
- 一、自定义监控项
- 1、命令行获取监控值
- 2、自定义监控项
- 3、监控页面添加监控流程
- 二、配置邮箱告警
- 1、邮箱开启SMTP/POP3服务
- 2、创建报警媒介
- 3、创建报警媒介配置告警信息模板
- 4、配置告警通知动作
- 5、添加告警通知人邮箱
- 6、告警测试
- 三、配置企业微信告警
- 1、提供企业微信机器人信息
- 2、server上配置告警脚本
- 3、创建告警媒介
- 4、配置告警通知动作
- 5、添加告警通知人
- 6、告警测试
- 四、配置钉钉告警
- 1、配置钉钉告警脚本
- 2、server上配置告警媒介类型
- 3、配置告警动作
- 4、配置告警接收人
一、自定义监控项
1、命令行获取监控值
yum install -y zabbix-get
zabbix_get -s '192.168.244.153' -p 10050 -s 'system.hostname'
参数说明:
● -s 指定 Zabbix Agent 所在的主机 IP 地址。
● -p 指定 Zabbix Agent 监听的端口号。
● -k 指定要获取的监控项的键(Key)。
2、自定义监控项
(1)首先需要确定监控目标取值的命令行
(2)手动创建zabbix自定义key的配置文件
如果只是个别需要的自定义监控项可以直接在agent配置文件中添加
如果是大量的自定义监控项,建议创建单独的配置文件来写。
所以在zabbix_agentd.conf目录下创建新的自定义监控的以.conf结尾的文件,配置监控项即可。
配置格式如下:
(3)重启一下agent
systemctl restart zabbix-agent
(4)通过zabbix_get取值
zabbix_get -s '192.168.244.148' -p 10050 -k 'login.user'
成功取到值,说明自定义的监控项是可以的
(5)在server页面上添加自定义监控项模板
3、监控页面添加监控流程
(1)创建模板,可以给其他主机使用,不用重复操作
(2)创建应用集,给监控项划分到相应的应用集
(3)创建监控项,自定义item,具体想监控的内容
(4)创建触发器,当监控获取的值和触发器比较,判断是否报警
(5)创建图形
(6)将具体的主机和改模板链接,关联
(7)当用户超过三个登录时,就会产生告警
二、配置邮箱告警
1、邮箱开启SMTP/POP3服务
使用加密密码认证,获取授权码
2、创建报警媒介
3、创建报警媒介配置告警信息模板
● 方式一:
问题模板:
主题:故障告警:{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}
● 方式二:
点击测试,测试一下,如果可以正常接受到说明邮件告警就没有问题。
4、配置告警通知动作
点击配置 -> 动作 -> triggers actions -> 创建动作
5、添加告警通知人邮箱
点击用户 -> 报警媒介 -> 添加 -> 选择email类型 -> 加收件人邮箱 -> 发送的报警级别
6、告警测试
出现告警,就会发邮件通知
三、配置企业微信告警
1、提供企业微信机器人信息
需要提供企业机器人的webhook地址,以及需要在群里接受告警的人员手机号
2、server上配置告警脚本
(1)编辑zabbix-server.conf文件进行配置
vi /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts
#如果存在则不需要创建按照该目录去找文件夹,如果不存在则创建这条路径,并执行下面命令创建目录
mkdir -p /usr/local/zabbix/alertscripts
(2)安装组件requests
yum install python-requests -y
(3)修改报警脚本或自己写
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
3、创建告警媒介
添加报警媒介类型
脚本参数:
{ALERT.MESSAGE}
问题模板:
主题:故障告警:{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}
4、配置告警通知动作
点击配置 -> 动作 -> triggers actions -> 创建动作
5、添加告警通知人
6、告警测试
四、配置钉钉告警
1、配置钉钉告警脚本
在server固定的目录下配置告警脚本:/usr/local/zabbix/alertscripts/,需要钉钉里机器人的webhook
#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"'"
}
}'
2、server上配置告警媒介类型
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
问题模板:
主题:故障告警:{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}
3、配置告警动作