Linx監控分享--網路狀態監控+寄件提醒
網路狀態監控
網路狀態:netstat 各個狀態的總計,詳情;以及重點連接埠的詳細串連情況(22,25,80,3306,8080),列印用戶端串連數最多的ip。
郵件報告目前狀態。
對於每個連接埠的串連數,自己可以設定閾值,加個if判斷就可以完成報檢的功能。
在手機上安裝網易的郵件用戶端,就可以達到即時提醒的效果。
#!/bin/shsource /etc/profileIP=`/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'|grep -v '127.0.0.1'`warn_pct=1 #75warn_name=[NET-State]performance_path=/monitor/performancemailtmp=/u01/soft/smonitor/mailtmplet/"$warn_name"tmp.mailinfotmp=/u01/soft/smonitor/mailtmplet/"$warn_name"tmp.tmpmaillist=490073687@qq.com,zhou.xiangxing210@163.com DT=`date +"%Y-%m-%d %H:%M:%S"`netstat -nap > $infotmpcat $infotmp|grep '^tcp' > $infotmp.tmpstat_help="\n-----------------------------Stat Mean-------------------------------"stat_help="$stat_help""\n LISTEN:Listening for a connection.偵聽來自遠方的TCP連接埠的串連請求"stat_help="$stat_help""\n\n SYN-SENT:Active; sent SYN. Waiting for a matching connection request after having sent a connection request."stat_help="$stat_help""\n 再發送串連請求後等待匹配的串連請求."stat_help="$stat_help""\n\n SYN-RECEIVED:Sent and received SYN. Waiting for a confirming connection request acknowledgment "stat_help="$stat_help""\n after having both received and sent connection requests.再收到和發送一個串連請求後等待對方對串連請求的確認"stat_help="$stat_help""\n\n ESTABLISHED:Connection established.代表一個開啟的串連"stat_help="$stat_help""\n\n FIN-WAIT-1:Closed; sent FIN.等待遠程TCP串連插斷要求,或先前的串連插斷要求的確認"stat_help="$stat_help""\n\n FIN-WAIT-2:Closed; FIN is acknowledged; awaiting FIN.從遠程TCP等待串連插斷要求"stat_help="$stat_help""\n\n CLOSE-WAIT:Received FIN; waiting to receive CLOSE.等待從本機使用者發來的串連插斷要求"stat_help="$stat_help""\n\n CLOSING:Closed; exchanged FIN; waiting for FIN.等待遠程TCP對串連中斷的確認"stat_help="$stat_help""\n\n LAST-ACK:Received FIN and CLOSE; waiting for FIN ACK.等待原來的發向遠程TCP的串連插斷要求的確認"stat_help="$stat_help""\n\n TIME-WAIT:In 2 MSL (twice the maximum segment length) quiet wait after close. 等待足夠的時間以確保遠程TCP接收到串連插斷要求的確認"stat_help="$stat_help""\n\n CLOSED:Connection is closed.沒有任何串連狀態"stat_help="$stat_help""\n------------------------------------------------------------"echo "您好:" >$mailtmpecho -e " [$DT]伺服器:$IP 網路連接資訊如下。\n總計:" >>$mailtmpcat $infotmp.tmp|awk '{print $6}'|sort |uniq -c|sort >>$mailtmpecho "[$DT]詳細:">>$mailtmpcat $infotmp.tmp|awk '{print $7" "$6 }'|sort |uniq -c |sort >>$mailtmpecho "------------------------------------------------------------" >>$mailtmp#mysql串連數 3306cat $infotmp.tmp|grep 3306 |grep mysqld|grep -v LISTEN > $infotmp.tmp.3306mysql_conn=`cat $infotmp.tmp.3306|wc -l`echo "mysql 3306連接埠串連數:$mysql_conn" >>$mailtmpecho "mysql 3306連接埠每個ip串連數統計如下:" >>$mailtmpcat $infotmp.tmp.3306|awk '{print $5}'|awk -F ':' '{print $4}'|sort |uniq -c|sort >>$mailtmpecho "------------------------------------------------------------">>$mailtmp#ssh串連數 22cat $infotmp.tmp|grep 22 |grep sshd|grep -v LISTEN > $infotmp.tmp.22ssh_conn=`cat $infotmp.tmp.22|wc -l`echo "ssh 22連接埠串連數:$ssh_conn" >>$mailtmpecho "ssh 22連接埠每個ip串連數統計如下:" >>$mailtmpcat $infotmp.tmp.22|awk '{print $5}'|awk -F ':' '{print $1}'|sort |uniq -c|sort >>$mailtmpecho "------------------------------------------------------------" >>$mailtmp#httpd串連數 80cat $infotmp.tmp|grep 80 |grep httpd|grep -v LISTEN > $infotmp.tmp.80httpd_conn=`cat $infotmp.tmp.80|wc -l`echo "http 80連接埠串連數:$httpd_conn" >>$mailtmpecho "http 80連接埠每個ip串連數統計如下:" >>$mailtmpcat $infotmp.tmp.80|awk '{print $5}'|awk -F ':' '{print $4}'|sort |uniq -c|sort >>$mailtmpecho "------------------------------------------------------------" >>$mailtmp#ssh串連數 8080cat $infotmp.tmp|grep 8080 |grep java|grep -v LISTEN > $infotmp.tmp.8080apache_conn=`cat $infotmp.tmp.8080|wc -l`echo "tomcat 8080連接埠串連數:$apache_conn" >>$mailtmpecho "tomcat 8080連接埠每個ip串連數統計如下:" >>$mailtmpcat $infotmp.tmp.8080|awk '{print $5}'|awk -F ':' '{print $4}'|sort |uniq -c|sort >>$mailtmpecho "------------------------------------------------------------" >>$mailtmpecho -e "$stat_help">>$mailtmpDT=`date +"%Y-%m-%d %H:%M:%S"`echo -e "\nBest Wishes! \n------------------------------------ \nCA system Monitor \n$DT" >> $mailtmpcat $mailtmp#cat $mailtmp| mailx -s "$warn_name[網路監測]:伺服器:$IP" $maillist
寄件提醒效果