zabbix 自定义采集网络连接状态
Python版本:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import subprocess
import sys
import re
status_dict = {}
cmd= '/usr/sbin/ss -s'
tmp_text = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).communicate()[0]
tmp_list = re.findall("(?<=[(]).*(?=[/])",tmp_text)[0].split(",")
for i in tmp_list:
status_dict[str(i.split()[0])] = int(i.split()[1])
print status_dict[sys.argv[1]]
Bash版:
#!/bin/bash
NUM=$(/usr/sbin/ss -s| grep -oP "(?<=$1 )\d+")
echo ${NUM:-555}
用法:
将脚本传到agent端,脚本加执行权,配置zabbix_agentd.conf。
UserParameter=parallel[*],/workspace/shell/parallel.py $1
zabbix WEB
页面配置一个模板,在健值 key
这里配置一下parallel[estab]
ss
这个命令提供了estab
closed
orphaned
synrecv
timewait
这些状态,
所以estab
就是采集系统的ESTABLISHED
状态的连接数。
orphaned
状态:不属于任何进程的socket连接数
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 如何做好软件架构师
· 欧阳的2024年终总结,迷茫,重生与失业
· 聊一聊 C#异步 任务延续的三种底层玩法
· 上位机能不能替代PLC呢?
· 2024年终总结:5000 Star,10w 下载量,这是我交出的开源答卷
· .NET Core:架构、特性和优势详解