Cacti - SOCKSTAT - tcpInuse

来源:互联网 发布:站长工具seo是查啥的 编辑:程序博客网 时间:2024/06/05 22:00

目标

根据/proc/net/sockstat创建针对服务器sockstat的状态Cacti图形

目标探索

# cat /proc/net/sockstatsockets: used 6121TCP: inuse 6142 orphan 0 tw 63905 alloc 6145 mem 4206UDP: inuse 6 mem 3UDPLITE: inuse 0RAW: inuse 0FRAG: inuse 0 memory 0[root@10-125-89-135 ~]# 

提取有价值目标

socketsUsedtcpInusetcpOrphantcpTwtcpAlloctcpMem

Client

部署脚本

#!/bin/bash#  Filepath: /usr/local/nagios/libexec/check_sockstat#  socketsUsed#  tcpInuse#  tcpOrphan#  tcpTw#  tcpAlloc#  tcpMem#  #  sockets: used 6121#  TCP: inuse 6142 orphan 0 tw 63905 alloc 6145 mem 4206#  UDP: inuse 6 mem 3#  UDPLITE: inuse 0#  RAW: inuse 0#  FRAG: inuse 0 memory 0#  [root@10-125-89-135 ~]# #  #  #echo "OK"#echo $1if [ $1 = "socketsUsed" ];then    name="socketsUsed"    result=`cat /proc/net/sockstat | grep sockets | awk '{print $3}'`fiif [ $1 = "tcpInuse" ];then    name="tcpInuse"    result=`cat /proc/net/sockstat | grep TCP | awk '{print $3}'`fiif [ $1 = "tcpOrphan" ];then    name="tcpOrphan"    result=`cat /proc/net/sockstat | grep TCP | awk '{print $5}'`fiif [ $1 = "tcpTw" ];then    name="tcpTw"    result=`cat /proc/net/sockstat | grep TCP | awk '{print $7}'`fiif [ $1 = "tcpAlloc" ];then    name="tcpAlloc"    result=`cat /proc/net/sockstat | grep TCP | awk '{print $9}'`fiif [ $1 = "tcpMem" ];then    name="tcpMem"    result=`cat /proc/net/sockstat | grep TCP | awk '{print $11}'`fiecho "$name:$result"

测试结果

[root@10-125-89-135 libexec]# ./check_sockstat socketsUsedsocketsUsed:5655[root@10-125-89-135 libexec]# ./check_sockstat tcpInusetcpInuse:5694[root@10-125-89-135 libexec]# ./check_sockstat tcpOrphantcpOrphan:0[root@10-125-89-135 libexec]# ./check_sockstat tcpTwtcpTw:64047[root@10-125-89-135 libexec]# ./check_sockstat tcpAlloctcpAlloc:5716[root@10-125-89-135 libexec]# ./check_sockstat tcpMemtcpMem:2257

设置nrpe命令

command[cacti_sockstat]=/usr/local/nagios/libexec/check_sockstat $ARG1$

本地测试

[root@10-125-89-135 libexec]# /usr/local/nagios/libexec/check_sockstat tcpInusetcpInuse:5704

远程测试

[root@10-180-92-195 ~]# /usr/local/nagios/libexec/check_nrpe -H 10.125.89.135 -c cacti_sockstat -a tcpInusetcpInuse:5704

Cacti

data input method

这里写图片描述

data template

这里写图片描述

graph template

这里写图片描述
这里写图片描述

命令行部署

#!/bin/baship=$1# 判断是否存在,如果存在就退出hostfind=`php add_graphs.php --list-hosts | grep $ip$ | wc -l`[ $hostfind -eq 1 ] && ( echo "host $ip 已经存在 ";exit 0 )# 添加hostsphp add_device.php --description=$ip --ip=$ip --template=9hostid=`php add_graphs.php --list-hosts | grep $ip$ | awk '{print $1}'`echo $hostid#exit 0#[[ $hostid -gt 70 ]] || exit 0# 开始画vmstatphp add_graphs.php --graph-type=cg --graph-template-id=76 --host-id=$hostid --input-fields="server_addr=$ip"
0 0