环境说明
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 os
headers = {'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、测试
完成!