> 文章列表 > 【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)

【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)

【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、测试

 完成!