zabbix监控交换机配置报警

一. 企业微信报警

后端配置
语言:shell
脚本:/usr/lib/zabbix/alertscripts/weixin.sh
组名改为:zabbix:zabbix
chmod a+x weixin.sh 赋予执行权限
weixin.sh脚本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# 脚本使用:zz=`ls -l`
# ./weixin.sh test {"errcode":0,"errmsg":"$zz","invaliduser":""}
# ./weixin.sh test {"errcode":0,"GEGEWU-TEST":"\n床前明月光\n疑是地上霜\n举头望明月\n低头思故乡","invaliduser":""}
CorpID="ww83dd692579d" # 你的企业id
Secret="LSwoGzg-lXJFFkSztBptbgAfLrps" # 你的SecretID
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')
# echo $Token
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"

function body(){
local int agentid=1000002 # 你的agentdid
local UserID="@all" # 发送的用户ID
local PartyID=2 # 部门ID
local Msg=$(echo "$@" | cut -d" " -f3-) # 发送给所有人
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'"$agentid"\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

可用性测试

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_6423a1843860753100db9c0cb961464a.png

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_e9eeec69992482f2c02585016a1a9ebc.png

以上微信报警后端配置完毕!

1. zabbix前端页面配置告警

1.0. 管理-用户 配置报警时间 等级

特别说明:收件人-2 2 为报警机器人所在的b部门id

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_888125f3de45e9c9945bac3b5d692349.png

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_b6fa1a78467aa2bbbaad45ef6447659a.png

1.1. 报警媒介类型

管理-报警媒介类型-创建媒体类型

脚本参数

1
2
3
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_8c5386fe48f1b7a90f3c7ef75ed02192.png

设置默认报警发送信息

管理-报警媒介类型-创建媒体类型-message templates 3-点击添加-选择-问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
主题:
故障{TRIGGER.STATUS},机器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!


消息:

告警机器:{HOSTNAME1}
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

点击选择:problem recovery

1
2
3
4
5
6
7
8
9
10
11
12
13
主题:
恢复{TRIGGER.STATUS}, 机器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

消息:
告警机器:{HOSTNAME1}
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

设置好后样式

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_5f6c7c481dd5a5e6f394abbc3edfbc91.png

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_7317fad2e7265063fc284c4657d37336.png

配置-动作-Tigger actions-创建动作微信告警

  • 名称 : 微信报警
  • 计算方式 : 和(同时满足)(A and B) and C
  • 条件
标签名称动作
A触发器名称 不含Dialer移除
B触发器名称 包含down移除
C主机群组 不等于张家口移除
添加

本文使用此
名称 : 微信报警

计算方式 : 与/或 (默认)

标签名称动作
A触发器示警度 大于等于 警告移除
B触发器示警度 大于等于 未分类移除

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_8beb0459a4e8371c8d40f0b0e0bba60b.png

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_3ea30163e5c0105262ced1c11bf11d7d.png

  • 已启用 [X]

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_30dad5e3e18fbd9afa4fd05d59d22ec8.png

设置操作

告警细节

1
设备:{HOST.NAME}发生: {TRIGGER.NAME}告警!\n告警主机:{HOST.NAME}\n告警地址:{HOST.IP}\n告警时间:{EVENT.DATE} {EVENT.TIME}

恢复细节

1
告警主机:{HOST.NAME}\n告警信息: {TRIGGER.NAME}已恢复!\n当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}\n告警时间:{EVENT.DATE} {EVENT.TIME}\n恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}\n持续时间:{EVENT.AGE}

更新暂时不写

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_2c6085aabbe2423e90b8f16a44cd3b1e.png

1.2. 或者设置如下冗长版本设置方式如下参考

操作 添加
步骤选择:1-1
步骤时间:0 (默认)
用户群组默认管理员群组 :Zabbix administrators
仅发送到:微信告警
cus message : [X]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
主题:
故障{TRIGGER.STATUS},机器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

消息:
告警机器:{HOSTNAME1}
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
————————————————

恢复操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
主题:
机器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

消息:
机器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}

注:更新操作暂时不写。
此时点击启用新创建的微信告警:即启用动作

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_3119571721f2605c8403618b944a5384.png

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_82a0baf528dbe6863ab110882f7d84e8.png

二. zabbix出图添加交换机设置

2.1. 添加设备

配置-群组-创建群组(如未来科技城)

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_c6fb86456c1f1b9eba430942b08b77ff.png

监测-主机-添加主机(根据交换机厂商选择合适的监控模板如华为则选择华为)

主机名称:10.0.0.10
可见名称:华为CE6851
模板: Huawei VRP by SNMP
群组:未来科技城
interfaces
类型:snmp
版本 snmpV2
snmp community(团体名): passwd
连接到ip DNS 端口:161
由agent代理程序监测 (无agent代理程序)
已启用

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_e19dd19666176395dc07dfda08b59091.png

模板选择(以华为交换机为例)

模板-主机群组-Templates/Network devices-HuaweiVRPbySNMP

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_6f42f938f9b0285953e4100811df34b7.png

2.2. 华为CE系例特别说明

见🔗链接 | 特别介绍关于huaweiCE系列的cpu监控(此处zabbix自带的监控有时候无法采集成功)

三. grafana面板配置(建议grafana版本为8.5.2)

3.1. 安装zabbix插件

1
2
3
4
5
6
7
root@gegewu1:/opt/grafana-8.5.2/bin# ./grafana-cli plugins install alexanderzobnin-zabbix-app
✔ Downloaded alexanderzobnin-zabbix-app v4.2.8 zip successfully

Please restart Grafana after installing plugins. Refer to Grafana documentation for instructions if necessary.

root@gegewu1:/opt/grafana-8.5.2/bin#

配置zabbix源时需要将80端口写出否则会添加失败即:http://10.0.0.10:80/zabbix/api_jsonrpc.php

配置好前端zabbix组件后 选择合适需要监控的端口即可

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_a1cb215aaf904a7b1c6517dae8c43a38.png

效果

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/3/image_9e24dccc0ed9e1529e55edd526aef9ea.png

本文参考 |
https://blog.csdn.net/m0_59586152/article/details/125136342
https://blog.csdn.net/m0_59586152/article/details/125200506