Translations of this page:

Linux Beispiele

Anmerkung: Alle diese Beispiele gelten fuer Linux. Sie koennen sich daher auf anderen Betriebssystemen unterscheiden und eventuell erfordern, die Befehlszeilen bzw. die Bewertungsausdruecke anzupassen.
Das soll konkret heissen: wenn sie auf einem Solaris-Server laufen sollen, so ist vermutlich noch einige Recherche und Testerei noetig ;-)
Aber das ist auch eines der Hauptziele dieser Beispielsammlung: Ihr Interesse zu wecken, eigene Befehlszeilen zu entwickeln.

Netzwerk

Netzwerk Pakete eingehend

check_generic -n "net_pkt_in" -e "IF=`awk '\$2 == "00000000" {print \$1}' /proc/net/route`; grep \$IF /proc/net/dev | awk -F: '{print \$2}' | awk '{print \$2}'" -w '>1000' -c '>2000' -y delta -p "pkt_in"\\

Netzwerk Pakete ausgehend

check_generic -n "net_pkt_out" -e "IF=`awk '\$2 == "00000000" {print \$1}' /proc/net/route`; grep \$IF /proc/net/dev | awk -F: '{print \$2}' | awk '{print \$10}'" -w '>1000' -c '>2000' -y delta -p "pkt_out"

Netzwerk Bytes eingehend

check_generic -n "net_bytes_in" -e "IF=`awk '\$2 == "00000000" {print \$1}' /proc/net/route`; grep \$IF /proc/net/dev | awk -F: '{print \$2}' | awk '{print \$1}'" -w '>1000000' -c '>2000000' -y delta -p "bytes_in"

Network Bytes ausgehend

check_generic -n "net_bytes_out" -e "IF=`awk '\$2 == "00000000" {print \$1}' /proc/net/route`; grep \$IF /proc/net/dev| awk -F: '{print \$2}' | awk '{print \$9}'" -w '>1000000' -c '>2000000' -y delta -p "bytes_out"

Netzwerk Fehler eingehend

check_generic -n "net_errs_in" -e "IF=`awk '\$2 == "00000000" {print \$1}' /proc/net/route`; grep \$IF /proc/net/dev | sed 's/^.*\$IF://' | awk '{print \$3}'" -w '>5' -c '>10' -y delta -p "errs_in"

Netzwerk Fehler ausgehend

check_generic -n "net_errs_out" -e "IF=`awk '\$2 == "00000000" {print \$1}' /proc/net/route`; grep \$IF /proc/net/dev| sed 's/^.*\$IF://' | awk '{print \$11}'" -w '>5' -c '>10' -y delta -p "errs_out"

ifconfig output direkt parsen

Eine andere Moeglichkeit wurde dankenswerterweise von coffy vom deutschen Nagios Forum zur Verfuegung gestellt.
Er parst den Output von ifconfig direkt, um Probleme mit den Zugriffsrechten auf /proc/net-Dateien zu vermeiden. Auf der anderen Seite ist fuer diesen Ansatz die Kenntnis des Interfaces noetig, das ueberwacht werden soll.
Beispiel: Netzwerk-Fehler ueberpruefen:

check_generic -n Net_TX_Errors -e "ifconfig eth0 | grep 'TX packets' | cut -d: -f3 | awk '{print \$1}'"  -w ">5" -c ">10"

Hauptspeicher / Swap

Freier Speicher

check_generic -n "proc_meminfo_memfree" -e "grep -i memfree /proc/meminfo | awk '{print \$2}'" -w '<5000' -c '<2000' -p "free_KB"

Memory nicht konsistent

check_generic -n "proc_meminfo_dirty"   -e "grep -i dirty /proc/meminfo | awk '{print \$2}'" -w '>50000' -c '>100000' -p "dirty_KB"

Swap in Benutzung

check_generic -n "proc_meminfo_swapinuse" -e "grep -i swapcached /proc/meminfo | awk '{print \$2}'" -w '>50000' -c '>100000' -p "swap_KB"

Prozessumgebung

Anzahl Interrupts

check_generic -n "proc_stat_intr" -e "grep -i intr /proc/stat | awk '{print \$2}'" -w '>500' -c '>1000' -y delta -p "intr"

Kontextwechsel

check_generic -n "proc_stat_context" -e "grep -i ctxt /proc/stat | awk '{print \$2}'" -w '>1000' -c '>2000' -y delta -p "ctxt"

Blockierte Prozesse

Prozesse koennen z.B. durch Ein-/Ausgabeoperationen blockiert sein

check_generic -n "proc_stat_blocked" -e "grep -i procs_blocked /proc/stat | awk '{print \$2}'" -w '>3' -c '>5' -y delta -p "procs"

Programm-Forks pro Sekunde

check_generic -n forks -e "vmstat -f | awk '{print \$1}'" -c ">20" -w ">10" -y delta -p forks 

Verschiedenes

RTC Uhr

check_generic -n "proc_driver_rtc" -e "grep -i batt_status /proc/driver/rtc | awk '{print \$3}'" -c '!~/okay/'

Smartctl Plattendevice /dev/hda

check_generic -n smartctl_hda -e "smartctl -H /dev/hda | grep 'test result' | awk '{print \$6}'" -c '!~/PASSED/'

mount read-only (here /opt)

check_generic -n "mount /opt" -e "mount | grep 'on /opt ' | sed 's/.*(\([^,]*\).*/\1/'" -c 'eq ro' -u 'eq ""'

ACPI verbleibende Batteriekapazitaet (Letzter Voll-Ladezustand in % der Nenn-Kapazitaet)

check_generic -n ACPI_battery_capacity -e "DC=`grep 'design capacity:' /proc/acpi/battery/BAT0/info | awk '{print \$3}'`; LC=`grep 'last full capacity:' /proc/acpi/battery/BAT0/info | awk '{print \$4}'`; echo \"$LC/($DC/100)\" | bc" -c "<50" -w "<70"

Nagios

Service checks Anzahl

check_generic -n nagios_services_number -e "/usr/local/nagios/bin/nagiostats -m -d NUMSERVICES" -w ">1800" -c ">2000" -p "service_checks_number"

Service checks pro Minute

check_generic -n nagios_services_checks -e "/usr/local/nagios/bin/nagiostats -m -d NUMACTSVCCHECKS1M" -w ">300" -c ">500" -p "service_checks_/_min"

Service check Ausfuehrungsverzoegerung

check_generic -n nagios_services_latency -e "/usr/local/nagios/bin/nagiostats -m -d AVGACTSVCLAT" -w ">30000" -c ">60000" -p "ms_average"

Host checks Anzahl

check_generic -n nagios_hosts_number -e "/usr/local/nagios/bin/nagiostats -m -d NUMHOSTS" -w ">400" -c ">500" -p "host_checks_number"

Host checks pro Minute

check_generic -n nagios_hosts_checks -e "/usr/local/nagios/bin/nagiostats -m -d NUMHSTACTCHK1M" -w ">100" -c ">200" -p "host_checks_/_min"

Host check Ausfuehrungsverzoegerung

check_generic -n nagios_hosts_latency -e "/usr/local/nagios/bin/nagiostats -m -d AVGACTHSTLAT" -w ">30000" -c ">60000" -p "ms_average"
de/projects/check_generic/examples/linux.txt · Zuletzt geƤndert: 2008/10/09 11:11 von flackem
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0