So nachdem wir nun unsere Windows Hosts ordentlich hinzugefügt haben, wird es nun Zeit einen Schritt weiter zu gehen. Dieses Mal befasse ich mich mit dem Thema, wie man den Netzwerktraffic der Windows Clients überwacht.
Bei meiner suche bin ich auf das Plugin von Claudio Künzler gestoßen: check windows network traffic
Da man hier leider keine warning und critical thresholds hat und auch keine entsprechenden exit codes vorhanden waren, habe ich das ein wenig modifiziert. Das modifizierte Script und wie man es am Ende nutzen kann erläutere ich nun hier:
- Zuerst müssen wir feststellen, wie der Name vom Interface ist:
- als nächstes in unserer host.conf folgenden Eintrag ergänzen: vars.interfaces = [ "Realtek PCIe GBE Family Controller" ]
- Auf dem Server in das Pluginverzeichnis wechseln und mit wget https://www.devlink.de/download/check_win_net_usage.sh die Datei herunterladen.
- Mit chmod 775 check_win_net_usage.sh die Datei ausführbar machen.
Wer das Plugin für Nagios nutzen will, muss erst noch die Pluginlocation im Script ändern
Auf der Commandline funktioniert das Plugin so:
[root@icinga plugins]# ./check_win_net_usage.sh -H 192.168.1.1 -p 12489 -s password -i 'Realtek PCIe GBE Family Controller' -w 100000 -c 200000
OK - 21 KB received/sec, 894 Bytes sent/sec|bytes_in=21835B;;;; bytes_out=894B;;;;
Als nächstes wird in der commands.cfg der entsprechende Check definiert:
object CheckCommand "check_win_net_usage" { import "plugin-check-command" command = [ PluginDir + "/check_win_net_usage.sh" ] arguments = { "-H" = "$win_net_usage_address$" "-p" = "$win_net_usage_port$" "-s" = "$win_net_usage_password$" "-i" = "$win_net_usage_interface$" "-w" = "$win_net_usage_warning$" "-c" = "$win_net_usage_critical$" } vars.win_net_usage_address = "$address$" vars.win_net_usage_port = "12489" vars.win_net_usage_password = "password" }
Zum Schluss dann noch die Service Definition:
apply Service "Network Traffic" { import "generic-service" check_command = "check_win_net_usage" vars.win_net_usage_interface = host.vars.interfaces vars.win_net_usage_warning = "104857600" vars.win_net_usage_critical = "157286400" assign where host.vars.interfaces && host.vars.os == "Windows" }
Und wenn man alles richtig gemacht hat sollte das am Ende so aussehen: