Direkt zum Hauptinhalt

Process Speicherüberwachung

Beschreibung:

Ein lokal check der alle Prozesses nach Speichergröße sortiert.
Auf Grund der Prozessmenge auf 20 Stück Limitiert.
Bei diesem Check gehts auch nur darum die Speicherfresser zu finden.

Das Script

#!/bin/bash

# Schwellenwerte in Megabyte
WARN=1000  # Beispiel: 1000 MB
CRIT=2000  # Beispiel: 2000 MB
COUNT_PROC=20 #Anzahl der prozesse die ausgeben werden sollen -1 maximal 20
#diese werden nach speicherverbrauch sortiert


#Programm Variablen, bitte nicht verändern
#Laufvariable
i=0
#da bei null angefangen wird zu zählen-proccount um einen dezimieren
COUNT_PROC=$((COUNT_PROC-1))
# Anfang der Ausgabe für den Service
output="P \"Speicherverbrauch der Prozesse in MB\" "

# ps Befehl, um Prozessname und Speicherverbrauch (RSS) zu bekommen
while IFS= read -r line; do
    memory=$(echo $line | awk '{print $1}')
    #teilen durch 1024
    memory=$((memory/1000))
    process=$(echo $line | awk '{print $2}' | sed 's/[^a-zA-Z0-9]/_/g')

    # Hinzufügen der Performance-Daten für jeden Prozess zum Output
    printf -v format_i "%02d" $i
    output+="NR-$format_i-${process}=${memory};${WARN};${CRIT}|"
    if [ $i == $COUNT_PROC ]
    then
      break
    fi
    if [ $COUNT_PROC > -1 ]
    then
      i=$((i+1))
    fi
done <<< $(ps -eo rss,comm --sort=-rss | awk 'NR>1')





#letztes semikolon entfernen
output="${output%?}"
#entferne , aus dem string
output=${output//[,]/}
#enterfne leerzeichnen aus dem string
output=${output//[_]/}
# Ausgabe des gesammelten Outputs
echo "$output"

Ausgabe:

P "Speicherverbrauch der Prozesse in MB" NR-00-kvm=67338;1000;2000|NR-01-kvm=4382;1000;2000|NR-02-kvm=4307;1000;2000|NR-03-cephosd=3305;1000;2000|NR-04-cephosd=3099;1000;2000|NR-05-cephosd=2875;1000;2000|NR-06-cephosd=2679;1000;2000|NR-07-kvm=1879;1000;2000|NR-08-kvm=1264;1000;2000|NR-09-kvm=916;1000;2000|NR-10-java=576;1000;2000|NR-11-cephmon=491;1000;2000|NR-12-kvm=436;1000;2000|NR-13-kvm=420;1000;2000|NR-14-cephmgr=325;1000;2000|NR-15-mongod=167;1000;2000|NR-16-corosync=165;1000;2000|NR-17-pveproxy=157;1000;2000|NR-18-launcher=154;1000;2000|NR-19-pveproxy=144;1000;2000

Installation

Auf dem zu überwachenden Server nach

/usr/lib/check_mk_agent/local/process.sh

kopieren