1. 程式人生 > >zabbix監控tcp連線數的指令碼!!

zabbix監控tcp連線數的指令碼!!

#!/bin/bash

#this script is used to get tcp and udp connetion status
#tcp status

metric=$1
tmp_file=/tmp/tcp_status.txt
/usr/sbin/ss -ant | awk '{++S[$1]};END {for(a in S) print a, S[a]}' > $tmp_file

case $metric in
   closed)
          output=$(awk '/CLOSED/{print $2}' $tmp_file)
          if [ "$output
" == "" ];then echo 0 else echo $output fi ;; listen) output=$(awk '/LISTEN/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; synrecv) output
=$(awk '/SYN-RECV/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; synsent) output=$(awk '/SYN-SENT/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; established) output
=$(awk '/ESTA/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; timewait) output=$(awk '/TIME-WAIT/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; closing) output=$(awk '/CLOSING/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; closewait) output=$(awk '/CLOSE-WAIT/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; lastack) output=$(awk '/LAST-ACK/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; finwait1) output=$(awk '/FIN-WAIT1/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; finwait2) output=$(awk '/FIN-WAIT2/{print $2}' $tmp_file) if [ "$output" == "" ];then echo 0 else echo $output fi ;; *) echo -e "\e[033mUsage: sh $0 [closed|closing|closewait|synrecv|synsent|finwait1|finwait2|listen|established|lastack|timewait]\e[0m" esac

指令碼如上,可以直接複製上面的程式碼!!

然後在zabbix直接新增監控項!!如果不知道寫的指令碼如何新增監控項的鍵值。可以在見上搜索一下:zabbix指令碼監控

下面是成圖的過程我就省略了!這裡主要是儲存工作上的TCP指令碼的監控