监视与Monitbuild立的套接字的#

我不知道如何让Monit监视服务器上打开/build立的TCP / IP连接的数量,以便在打开“太多”时发送警报。 你知道如何设置?

这是另一个解决scheme

定义下面的configuration监视:

check program OpenSocket with path "/bin/checkn_socket.sh" if status > 0 then alert group admin 

脚本:checkn_socket.sh

 #!/bin/bash Threshold=4 # Set Threshold TotalEstSocket=$(netstat -t | awk '{/ESTABLISHED/ && n++} END{ print n }') if (( TotalEstSocket >= Threshold )) then echo >&2 "Too Many OpenSocket" exit $TotalEstSocket else exit 0 fi 

Monit日志

 [IST Sep 12 22:32:14] error : 'OpenSocket' status failed (4) for /bin/checkn_socket.sh. Error: Too Many OpenSocket .. [IST Sep 12 22:32:17] info : 'OpenSocket' status succeeded [IST Sep 12 22:32:26] error : 'OpenSocket' status failed (4) for /bin/checkn_socket.sh. Error: Too Many OpenSocket .. [IST Sep 12 22:32:29] error : 'OpenSocket' status failed (4) for /bin/checkn_socket.sh. Error: Too Many OpenSocket .. [IST Sep 12 22:32:32] error : 'OpenSocket' status failed (4) for /bin/checkn_socket.sh. Error: Too Many OpenSocket .. [IST Sep 12 22:32:35] info : 'OpenSocket' status succeeded 

它似乎没有直接支持,但我想出了一个黑客。

每分钟确定一次ESTABLISHED连接的数量,并写入一个相同数量的零字节的文件。

然后,设置Monit来检查这个零文件的文件大小。 如果得到“太大”的警觉。

在某些用户的crontab中:

 * * * * * /bin/sh -c '/bin/dd if=/dev/zero of=/tmp/tcp_connections.monit count=$(/bin/netstat -t | /bin/grep ESTABLISHED | /usr/bin/wc -l) bs=1 >/dev/null 2>&1' 

在Monitconfiguration中:

 check file tcp_connections with path /tmp/tcp_connections.monit if size > 16KB then alert