一个简单的nagos插件脚本 , 监控 TCP 各状态的数量

简介:

#!/bin/bash
#===============================================#
# Description :        Check the TCP-connection                                            #
#===============================================#

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKOWN=3


CONN_TMP="/tmp/netstat.tmp"
CONN=`netstat -ant | awk '/^tcp/ && !/LISTEN/{a[$NF]++}END{for(i in a) print i,a[i]}'`

echo $CONN > $CONN_TMP

EST=`cat $CONN_TMP | awk '/ESTABLISHED/{ print $2 }'`
TIME_WAIT=`cat $CONN_TMP | awk '/TIME_WAIT/{ print $2 }'`
SYN_RECV=`cat $CONN_TMP | awk '/SYN_RECV/{ print $2 }'`
FIN_WAIT1=`cat $CONN_TMP | awk '/FIN_WAIT1/{ print $2 }'`
FIN_WAIT2=`cat $CONN_TMP | awk '/FIN_WAIT2/{ print $2 }'`
LAST_ACK=`cat $CONN_TMP | awk '/LAST_ACK/{ print $2 }'`
CLOSE_WAIT=`cat $CONN_TMP | awk '/CLOSE_WAIT/{ print $2 }'`


if ! [ `uname` = "Linux" ] ;then
        echo "This plugin is support Linux system,not support another system now"
        echo "This plugin will check TCP connections  "
fi

if [ "$EST" -gt 5000 ];then
        echo "ESTABLISHED is too many; ESTABLISHED: $EST ; TIME_WAIT: $TIME_WAIT ; SYN_RECV: $SYN_RECV ; FIN_WAIT1: $FIN_WAIT1 ; FIN_WAIT2: $FIN_WAIT2 ; LAST_ACK: $LAST_ACK ; CLOSE_WAIT: $CLOSE_WAIT"
        exit $STATE_CRITICAL
else
        echo "ESTABLISHED is normal; ESTABLISHED: $EST ; TIME_WAIT: $TIME_WAIT ; SYN_RECV: $SYN_RECV ; FIN_WAIT1: $FIN_WAIT1 ; FIN_WAIT2: $FIN_WAIT2 ; LAST_ACK: $LAST_ACK ; CLOSE_WAIT: $CLOSE_WAIT"
        exit $STATE_OK
fi

for a in $EST $TIME_WAIT $SYN_RECV $FIN_WAIT1 $FIN_WAIT2 $LAST_ACK $CLOSE_WAIT
do
        if [[ $a =~ "^[0-9]{1,}$" || $a = "" ]]
                echo "UNKOWN `uname` no yet support by this plugin"
                exit $STATE_UNKOWN
        fi
done





本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/705984,如需转载请自行联系原作者
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
网络协议
TCP协议的状态
TCP协议的状态
96 0
|
网络协议 Linux
TCP状态转换图文解说
TCP状态转换图文解说
226 0
TCP状态转换图文解说
|
网络协议 Python
python脚本基于TCP主机信息搜集
python脚本基于TCP主机信息搜集
105 0
|
监控 网络协议 网络安全
zabbix自定义TCP 11种状态监控模板(十四)
zabbix自定义TCP 11种状态监控模板 如果一直对多个主机同时增加监控项那么会非常麻烦,在实际生产中有很多时候我们都需要对一批机器同时增加多个相同的监控项,如果一个一个手动添加将会非常麻烦,因此就有了模板的诞生,我们只需要创建一个模板,让需要监控的主机链接模板即可
234 0
zabbix自定义TCP 11种状态监控模板(十四)
|
网络协议 安全 Linux
查看http的并发请求数与其TCP连接状态
查看http的并发请求数与其TCP连接状态
309 0
|
编解码 网络协议 网络架构
计算机网络基础 和 tcp 三次握手四次挥手,tcpdump抓包分析 协议过滤 分析,连接状态,标志位详解
wireshark 软件过滤及转码使用 ,TCP tcpdump 连接状态,标志位详解
238 1
|
网络协议 Shell
tcpdump 方式检测ip 网段 扫段 tcp并发数攻击防御shell 脚本
tcpdump 自定义抓包时间将信息存入文件, 以systemd 系统服务方式进行启动
531 0
|
网络协议 Shell Perl
tcp并发数攻击防御shell 脚本
自定义并发数量,达到峰值脚本将异常IP禁止访问
278 0
|
运维 监控
Zabbix监控插件-Nginx、TCP、Redis、Memcached
2014年写的zabbix监控插件,主要监控TCP的11种状态,Nginx的状态,Redis的和Memcached的状态。
309 0
Zabbix监控插件-Nginx、TCP、Redis、Memcached