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连接数