一、zabbix-自动发现
1.在准备两台虚拟机,我的是192.168.144.12,192.168.144.13
server换成zabbix服务器的ip地址
vim /etc/zabbix/zabbix_agentd.conf
2.创建自动发现规则
3.添加自动发现动作
二、自动注册
现在我们把192.168.144.13的主机删除并停用zabbix服务
1.添加自动注册动作
2.修改192.168.144.13的配置文件
vim /etc/zabbix/zabbix_agentd.conf
3.启动服务后验证
三、zabbix-网易云邮箱-发送消息
1.邮箱授权
2.zabbix-web端设置
新增媒介
3.测试
测试成功:
4.设置报警媒介
5.创建触发脚本
统计数量
cd /etc/zabbix/zabbix_agentd
cat test.conf
UserParameter=user_count,w| awk 'NR>=3{print| "wc -l"}'
测试:
6.模版添加:
监控项:
图形:
触发器:
7.和主机关联
8.创建触发器动作
9.验证
删除用户数量小于3
二、zabbix-钉钉告警
准备:钉钉上添加机器人
/usr/lib/zabbix/alertscripts
cat dingding.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
import datetime
webhook = "https://oapi.dingtalk.com/robot/send?access_token=382cec5bbd171e65780867f926cfdea2ad8faf92d4b7216e48bee4c8a60601d6"
user=sys.argv[1]
subject=sys.argv[2]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": "%s%s"%(subject,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/alertscripts/log/dingding.log"):
f=open("/usr/lib/zabbix/alertscripts/log/dingding.log","a+")
else:
f=open("/usr/lib/zabbix/alertscripts/log/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()
创建收集日志的目录并赋予权限
ls -ld /usr/lib/zabbix/alertscripts/log
drwxr-xr-x. 2 zabbix zabbix 26 7月 24 21:23 /usr/lib/zabbix/alertscripts/log
给脚本赋予权限后执行脚本
web页面操作:
1.创建新的媒介
2.点击后面的测试:
3.创建触发器动作
点击用户
钉钉上自动发送消息
我自行在网易的基础上把用户数量的触发器也加入了钉钉告警里面了,所以就会有两条数据
删除用户数量会再次发送正常的消息
总结
希望可以帮助到其他小伙伴们