目录
1、创建主机群组
配置 → 主机群组 → (右上角)创建主机群组
2、创建模板
配置→模板→创建模板
3、添加主机
1、配置→主机→(右上角)创建主机
主机填写↓
1)主机名称:对应agent服务器的hostname
2)群组:选择第1步创建的群组
3)Agent代理程序的接口:agent服务器的ip 端口默认10050
2、模板的链接
选择第2步创建的模板链接上去
4、自定义监控项
自定义脚本默认放在/etc/zabbix/zabbix_agentd.d下
普通用户agent目录:/home/sendi/zabbix_agent/zabbix_agentd.conf
(具体路径看agent配置文件中的Include)
语法:UserParameter=名称(你随意),命令(必须是一个值)
例:UserParameter=sshcheck,netstat -ano|grep 55314|grep ESTABLISHED|wc -l
重启agent:
systemctl status zabbix-agent
或
/home/sendi/zabbix_agent/zabbix_agentd -c /home/sendi/zabbix_agent/zabbix_agentd.conf
Zabbix-server上键值测试:
语法:zabbix_get -s 客户端ip -k agent定义的UserParameter
5、创建监控项
配置→主机→筛选主机名称→点击该行的监控项 → 点击进去之后右上角选择创建监控项
填写示例↓
名称:ssh连接数检查
键值:sshcheck (必须是agent配置文件中定义的UserParameter)
勾选已启用等待变绿!
6、创建钉钉机器人
创建钉钉机器人
1)钉钉发起群聊
2)群设置→机器人→添加机器人→自定义关键词(例:ssh)→完成
设置完机器人之后,有一个Wehook(复制保存):
https://oapi.dingtalk.com/robot/send?access_token=8daab85d3cbb88d2016052294435fd96e745875d1d2fed3acfbfce5d501b4e5d
3)设置钉钉机器人脚本
安装钉钉机器人脚本需要用到的模块【zabbix-server】:
[root@zabbix ~]# yum install python3-pip
[root@zabbix ~]# pip3 install requests
(vim /usr/lib/zabbix/alertscripts/dingalert.py对应脚本)
注:zabbix-server配置文件中(/etc/zabbix/zabbix_server.conf)关键词“AlertScriptsPath”
是告警脚本的位置
[root@zabbix ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py
#!/usr/bin/env python3
import json
import requests
import sys
def send_msg(url, remiders, msg):
headers = {'Content-Type': 'application/json; charset=utf-8'}
data = {
"msgtype": "text",
"at": {
"atMobiles": remiders,
"isAtAll": False,
},
"text": {
"content": msg,
}
}
r = requests.post(url, data=json.dumps(data), headers=headers)
return r.text
if __name__ == '__main__':
msg = sys.argv[1]
remiders = []
url = '钉钉机器人Webhook地址' # 注意此处需输入自己的机器人webhook地址
print(send_msg(url, remiders, msg))
7、添加报警媒介类型
管理→报警媒介类型→(右上角)创建媒介类型
脚本名字:dingalert.py (对应自己告警脚本的名称)
脚本参数是固定的:{ALERT.MESSAGE}
8、用户添加报警媒介
管理→用户 (这里直接用了admin)
设置报警媒介
9、创建触发器
配置→主机→输入主机名称(例:autoops177)→对应那一行选择触发器
选择创建触发器 → 条件(会有监控项的选择)→选择之后定义一个值触发即可
10、创建动作
1)配置→动作
填写注意↓
新的触发条件:触发器 等于 选择自己定义的触发器 → 添加
2)操作:
参数填写:
默认标题:
故障名称: {EVENT.NAME}
消息内容↓
ssh连接数异常!
故障时间: {EVENT.DATE} {EVENT.TIME}
故障名称: {EVENT.NAME}
故障主机: {HOST.NAME}
故障主机IP: {HOST.IP}
严重程度: {EVENT.SEVERITY}
告警触发阈值: {ITEM.NAME}:{ITEM.LASTVALUE}
告警ID: {EVENT.ID}
注:记得要选择发送到dingalert.py 脚本
3)恢复操作
默认标题→{EVENT.NAME}已恢复
消息内容↓
ssh连接数异常告警已恢复
故障时间: {EVENT.DATE} {EVENT.TIME}
故障名称: {EVENT.NAME}
故障主机: {HOST.NAME}
故障主机IP: {HOST.IP}
最新数据: {ITEM.NAME}:{ITEM.LASTVALUE}
严重程度: {EVENT.SEVERITY}
告警ID: {EVENT.ID}
11、展示效果
看报警媒介是这种效果
等一会你就能看到钉钉告警啦!
注:如果没有,可以检查下,动作日志(报表→动作日志)