【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)
环境说明
centos 7 版本
zabbix 6.0 版本
主机名 |
IP地址 |
备注 |
zabbix |
192.168.10.150 |
服务端,同时自我监控 |
zabbix-2 | 192.168.10.151 | 客户端 |
一、自定义监控(监控系统用户登录数)
1、通过命令或脚本取出值
[root@zabbix-2 ~]# who | wc -l
1
2、编写客户端配置文件
[root@zabbix-2 ~]# vim /etc/zabbix/zabbix_agent2.conf
#开启key的特殊字符处理
UnsafeUserParameters=1
[root@zabbix-2 ~]# vim /etc/zabbix/zabbix_agent2.d/web.conf
#UserParameter=key,cmd,固定格式,key为名称,cmd为命令,可以是执行脚本的命令
UserParameter=check.who.number,who | wc -l
[root@zabbix-2 ~]# systemctl restart zabbix-agent2
3、客户端本地测试键值
[root@zabbix-2 ~]# zabbix_agent2 -t check.who.number
check.who.number [s|1]
#s表示类型文字,数字代表值
4、服务端测试键值
[root@zabbix ~]# yum install zabbix-get -y
#安装不成功,可能是源的问题,试试下面命令下载源
yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com/zabbix#https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix#g' /etc/yum.repos.d/zabbix.repo
#-s:客户端地址,-k:键值
[root@zabbix ~]# zabbix_get -s 192.168.10.151 -k check.who.number
1 #结果
5、服务端创建监控项
二、声音报警
三、邮件报警
1、创建触发器
测试
- 是否触发构建器
- 是否触发声音报警
2、配置报警媒介
#测试邮箱发送功能
3、修改报警模板
设置问题内容:
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:告警主机:{HOSTNAME1}告警时间:{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}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
3、创建用户
#用户与报警媒介相关联,注意创建用户要对服务器群组有读取权限才可以发送邮件
- 创建用户群组
- 创建用户
#这里密码我改为了redhat000
#注意类型选择你的Email-test,我这选错了
4、配置动作
5、测试
#打开多个终端
四、微信报警
1、注册企业微信
注册网址:企业微信
#创建企业后添加成员
2、创建部门并添加用户
3、创建机器人
4、配置脚本
#zabbix-server操作
[root@zabbix ~]# yum install python3-pip -y
[root@zabbix ~]# pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
[root@zabbix ~]# cd /usr/local/share/zabbix/alertscripts/
[root@zabbix alertscripts]# vim wechat.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import json
import sys
import osheaders = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=a00f90b4-85d1-4881-bc32-b8e0a43a4099" #机器人webhook地址
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)
[root@zabbix alertscripts]# chmod +x wechat.py
#测试
[root@zabbix alertscripts]# python3 wechat.py nh
b'{"errcode":0,"errmsg":"ok"}'
5、配置报警媒介
参数:{ALERT.MESSAGE}
#报警模板在上面的邮件报警里
6、用户与报警媒介相关联
7、配置动作
8、测试
五、钉钉报警
1、创建群并添加机器人
【手机钉钉】|【电脑钉钉】- 右上角【+】-【发起群聊】-【选人建群】/选择不同的群类型创建;
2、编写脚本
[root@zabbix ~]# cd /usr/local/share/zabbix/alertscripts
[root@zabbix alertscripts]# vim dingding.py
#!/usr/bin/env python3
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=6f3ea59d5a9de53d0db111111118e8f415a369f3b0d866a2dd7726"
user=sys.argv[1]
text=sys.argv[3]
data={"msgtype": "text","text": {"content": text},"at": {"atMobiles": [user],"isAtAll": False}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/lib/zabbix/logs/dingding.log"):f=open("/usr/lib/zabbix/logs/dingding.log","a+")
else:f=open("/usr/lib/zabbix/logs/dingding.log","w+")
f.write("\\n"+"--"*30)
if x.json()["errcode"] == 0:f.write("\\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\\n"+str(text))f.close()
else:f.write("\\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\\n" + str(text))f.close()
[root@zabbix alertscripts]# chmod +x dingding.py
[root@zabbix alertscripts]# chown zabbix:zabbix dingding.py
#创建log文件目录
[root@zabbix alertscripts]# mkdir -p /usr/lib/zabbix/logs
[root@zabbix alertscripts]# touch /usr/lib/zabbix/logs/dingding.log
[root@zabbix alertscripts]# chown zabbix:zabbix /usr/lib/zabbix/logs/dingding.log
#测试,必须加上你的自定义关键字zabbix
[root@zabbix alertscripts]# ./dingding.py a b "zabbix:test"
#在钉钉上查看
3、创建报警媒介
三个参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
#模板信息在上面的邮件报警里面
4、用户添加报警媒介
5、配置动作
6、测试
完成!