监控业务应用端口通过钉钉报警

13 篇文章 ¥29.90 ¥99.00
本文介绍了如何通过编写脚本监控业务应用端口,当端口未运行时,会触发钉钉发送告警信息。主要内容包括思路准备、脚本编写、开机启动设置和定时任务配置。

1 钉钉提示信息

业务告警
主机ip:x.x.x.x
主机名称:test
端口:2001 port is not running
服务名称:ability-sms-core

2 思路准备

获取本地tcp所有端口

port1=netstat -an|grep LISTEN|egrep "0.0.0.0|:::"|awk '/^tcp/ {print $4}'|awk -F: '{print $2}'|sort -n

获取pid和进程名

lsof -n -i:9001|grep TCP|grep LISTEN|grep IPv4|awk '{printf("%d\t%s\n"),$2,$1}'

3 编写脚本

vim ports_check.sh

#!/bin/bash
#chkconfig:2345 81 91
#decription:ports_check autostart
declare -A PORTS_SERVICE
PORTS=(2001 22 6001 6002 6003 6004 6005 6006 6007 6008 6009 9001 9002 9003)
PORTS_SERVICE=([2001]="ability-sms-core" [22]="sshd" [6001]="biz-app-core" [6002]="biz-user-core" [6003]="biz-feed-core" [6004]="bm-pms" [6005]="bm-biz" [6006]="b
<think>好的,用户想要配置Zabbix7与钉钉集成,实现网络端口超速报警监控网络设备。我需要先回顾一下之前关于Zabbix和钉钉集成的引用内容,然后结合Zabbix7的新特性来提供正确的步骤。首先,用户提到的是Zabbix7,可能需要确认配置文件路径是否与之前版本不同。根据引用[1]和[3],AlertScriptsPath通常在/usr/local/zabbix/etc/或/usr/lib/zabbix/alertscripts。需要确保用户检查自己的zabbix_server.conf文件中的路径。接下来,钉钉机器人的创建步骤应该和之前版本类似,需要获取Webhook地址。用户可能需要创建自定义机器人,并设置关键词,比如“端口超速报警”来符合钉钉的安全要求。然后,编写Python脚本时,要注意Zabbix7是否对脚本语言有新的要求。引用[4]提到可能需要安装Python3,所以建议用户使用Python3来编写脚本。同时,脚本里需要处理传入的参数,比如接收消息内容,并发送到钉钉的Webhook。需要确保脚本权限正确,如引用[2]和[4]中提到的chmod和chown命令。 配置报警媒介类型时,用户需要在Zabbix前端添加脚本,并指定参数。这里可能需要使用宏变量,比如{ALERT.MESSAGE}和{ALERT.SUBJECT},确保消息能正确传递到脚本。关于监控网络设备的端口速度,用户需要先添加网络设备,可能通过SNMP或Zabbixagent的方式。然后,针对每个端口创建监控项,监控流量指标,比如net.if.in和net.if.out。设置触发器时,确定阈值,比如超过100Mbps,并关联到报警动作。报警动作的配置需要关联之前创建的钉钉媒介,并自定义消息内容,确保信息清晰,包含必要的细节如设备名称、端口、当前速度和阈值。 可能用户遇到的常见问题包括脚本执行权限、Python环境缺失、Webhook地址错误或触发器阈值设置不当。需要提醒用户检查日志,如zabbix_server.log,以便排查问题。 最后,生成的相关问题应该覆盖用户可能进一步的需求,比如如何监控其他指标、高可用配置、自动化处理以及报警分级,帮助用户扩展应用场景。</think>### Zabbix 7钉钉集成网络端口超速监控配置教程 #### 一、钉钉机器人创建 1. 打开钉钉群设置,选择"智能群助手" 2. 添加机器人,选择"自定义" 3. 设置安全校验(建议选择"关键词"并设置如`端口超速报警`) 4. 记录生成的Webhook地址,格式为: $$https://oapi.dingtalk.com/robot/send?access_token=xxxxxx$$ #### 二、Zabbix服务端配置 1. 确认AlertScripts路径(根据Zabbix 7默认配置): ```bash vi /usr/local/zabbix/etc/zabbix_server.conf ``` 验证参数: $$AlertScriptsPath=/usr/lib/zabbix/alertscripts$$ [^3] 2. 创建告警脚本: ```python # /usr/lib/zabbix/alertscripts/zabbix_dingding.py import requests import json import sys def send_dingding(msg): webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx" headers = {"Content-Type": "application/json"} data = { "msgtype": "text", "text": { "content": "Zabbix告警:\n" + msg } } response = requests.post(webhook, data=json.dumps(data), headers=headers) return response.json() if __name__ == '__main__': message = sys.argv[1] send_dingding(message) ``` 设置权限: ```bash chmod +x /usr/lib/zabbix/alertscripts/zabbix_dingding.py chown zabbix:zabbix /usr/lib/zabbix/alertscripts/zabbix_dingding.py ``` [^2][^4] #### 三、网络设备监控配置 1. **添加网络设备** - 通过SNMP协议添加设备: $$snmpwalk -v 2c -c public 设备IP 1.3.6.1.2.1.1.1.0$$ - 在Zabbix控制台创建Host,选择SNMP接口 2. **端口速度监控项** ```plaintext 监控项名称:Port Speed - {#IFNAME} 类型:SNMP agent SNMP OID:1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX} 单位:bps ``` 3. **触发器配置** ```plaintext 名称:Port Speed Overload on {HOST.NAME} 表达式:avg(/host/key["ifHighSpeed"],5m) > 100000000 # 100Mbps阈值 ``` #### 四、告警集成配置 1. **创建报警媒介** - 类型:脚本 - 脚本名称:zabbix_dingding.py - 脚本参数:`{ALERT.MESSAGE}` 2. **配置报警动作** ```plaintext 名称:Network Port Speed Alert 条件:Trigger status = Problem 操作: • 发送消息到:钉钉媒介 • 消息内容: 端口:{TRIGGER.NAME} 当前速率:{ITEM.VALUE} bps 阈值:{TRIGGER.THRESHOLD} bps 设备IP:{HOST.IP} ``` #### 五、配置验证 1. 手动触发测试告警: ```bash su zabbix -s /bin/bash ./zabbix_dingding.py "测试告警信息" ``` 2. 查看钉钉群消息接收情况 3. 检查Zabbix日志: $$tail -f /var/log/zabbix/zabbix_server.log$$ [^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值