Anzahl der eingerichteten Sockets mit Monit überwachen?

Anzahl der eingerichteten Sockets mit Monit überwachen?

Ich kann nicht herausfinden, wie ich Monit dazu bringe, die Anzahl der offenen/hergestellten TCP/IP-Verbindungen auf einem Server zu überwachen, sodass eine Warnung gesendet werden kann, wenn „zu viele“ offen sind. Wissen Sie, wie das eingerichtet werden kann?

Antwort1

hier ist eine andere Lösung

definieren Sie folgenden Konfigurationsmonitor:

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

Skript: 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

Protokolle überwachen

[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

Antwort2

Es scheint nicht direkt unterstützt zu werden, aber ich habe einen Hack gefunden.

Bestimmen Sie die Anzahl der HERGESTELLTEN Verbindungen pro Minute und schreiben Sie eine Datei mit der gleichen Anzahl von Nullbytes.

Richten Sie Monit dann so ein, dass die Dateigröße dieser Nullendatei überprüft wird. Wenn die Datei „zu groß“ ist, wird eine Warnung ausgegeben.

In Crontab für einige Benutzer:

* * * * * /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'

In der Monit-Konfiguration:

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

verwandte Informationen