Fehlerhafte Abfrage Plugin check-snmp-disk

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Fehlerhafte Abfrage Plugin check-snmp-disk

      Hi,

      ich habe seit ein paar Tagen ein eigenartiges Problem mit den Abfragen des Plugins check-snmp-disk.
      Vereinzelte Hosts, querbeet verschiedene OS Versionen, verschiedene Netze laufen mir immer wieder in ein Timeout wenn ich checks mit dem Plugin check-snmp-disk ausführe.
      Wenn ich versuche die Auslastung des Volumes per SNMP Walk auf die OID 1.3.6.1.2.1.25.2.3.1.6 (hrStorageUsed) zu machen funktioniert es einwandfrei. Leider ist der Wert den ich hier zurück bekomme nicht zu gebrauchen da dieser in Blocks und nicht in KB oder sowas angegeben wird, deshalb muss ich das Problem des Plugins irgendwie lösen können.
      Des weiteren verursachen die fehlerhaften Abfragen eine extrem hohe CPU Last auf den Remote Systemen - im Windows Taskmanager sieht man, dass das vom SNMP Dienst verursacht wird. Weitere Ausfälle von SNMP Abfragen sind die Folge.

      Hier ein paar Screenshots wie es auf der GUI aussieht:

      Screenshot1
      Screenshot2
      Screenshot3-SNMPWALKValue
      Screenshot4-CPULoad

      Das Plugin check-snmp-disk verwende ich schon seit vielen Monaten und hatte eigentlich noch keine Probleme damit. Update auf dem Server habe ich seit einem halben Jahr ca. keines mehr durchgeführt.

      Auszug aus dem Logfile


      Quellcode

      1. [May 08 2018 08:10:48] INFO 5996 0.000189 child 5996 status: done:1:{"99":{"timeout":60,"location_options":"0","command_options":{"critical":"95","community":""SNMPCOMMUNITY"","port":"161","host":""IPADRESSE"","snmp-version":"2","warning":"80"},"error_status":"UNKNOWN","kill_signal":9,"command":"check-snmp-cpu","timeout_status":"CRITICAL","set_tags":"","unknown_status":"UNKNOWN"},"106":{"command_options":{"host":""IPADRESSE"","port":"161","snmp-version":"2","warning":"usedper:gt:80","community":""SNMPCOMMUNITY"","critical":"usedper:gt:90","disk":"E:"},"location_options":"0","timeout":60,"error_status":"UNKNOWN"
      Wie man sieht, sieht man hier nichts :D

      Hat jemand noch eine Idee wie ich das Problem troubleshooten könnte? Bei Bedarf kann ich das Problem jederzeit rekonstruieren :thumbsup:
    • Quellcode

      1. # Parameter: agents
      2. #
      3. # With this parameter you can configure how many agents will be forked
      4. # to execute checks and collect the data. If the agent just checks itself,
      5. # then this value should not set higher than 1.
      6. #
      7. # Default: 4
      8. agents 250
      9. # Parameter: max_concurrent_checks
      10. #
      11. # With this parameter it's possible to set the maximum concurrent check
      12. # of a host. By default this parameter is set to 4.
      13. #
      14. max_concurrent_checks 50
      15. # Parameter: max_concurrent_hosts
      16. #
      17. # With this parameter it's possible to set the maximum concurrent hosts
      18. # that are checked. By default this value is determined automatically and
      19. # set to the half of the parameter "agents". Uncomment this parameter only
      20. # if you know what you are doing.
      21. #
      22. #max_concurrent_hosts auto
      Alles anzeigen
      Ich hab die Konfiguration schon vor einiger Zeit mal bearbeitet.
      Lt. der Doku müssten also 125 Hosts gleichzeitig (halber Wert von "agents") mit bis zu 50 Checks pro Host.

      Von dem Agent werden derzeit ca. 80 Hosts mit ca. 15-20 Services pro Host abgefragt. Das sollte mit der Konfiguration möglich sein. Der Agent läuft auf einem performanten Server, Auslastung ist bei ca 40% , RAM Auslastung bei 60%, da wären noch Reserven.
      Die betroffenen Hosts haben ca. 25 Services die überwacht werden.
    • Ich würde max_concurrent_checks deutlich niedriger einstellen, vielleicht so auf 20, denn mit der jetzigen Konfiguration könnten 5 Hosts den Agenten lahmlegen.

      Du musst dir das so vorstellen:

      Mal angenommen, die Services von 5 Hosts müssen geprüft werden, jeder hat 50 Services. Das bedeuted, dass mit 5 x 50 Services alle Agenten belegt werden, denn die Service-Checks werden auf alle Agenten aufgeteilt. Wenn jetzt genau diese 5 Hosts ein Problem haben, hängen die Agenten fest und warten auf Ergebnisse der Checks. Ein HTTP Check zum Beispiel hat einen Timeout von 30 Sekunden. Das kann dazu führen, dass der gesamte Agent hängt. Von daher würde ich die Anzahl maximaler Service-Checks pro Host runterdrehen. Meine Konfig sieht zum Beispiel so aus:

      agents 300
      max_concurrent_checks 20
      max_concurrent_hosts 100
      poll_interval 15

      poll_interval macht nur Sinn, wenn du Checks hast, die einen kleineren Check Intervall als 60 Sekunden haben. Ansonsten lass den Wert auf den Default stehen.
    • Ach ja, ein weiterer Vorteil eines kleineren Wertes von max_concurrent_checks ist natürlich, dass der Host, der da geprüft wird, nicht zu stark belastet wird. Wenn 50 Agenten gleichzeitig eine SNMP Abfrage auf einen Host ausführen, dann treibt das die CPU Auslastung des Hosts ganz gut nach oben. Dies könnte zum Beispiel ein Router sein... verkraftet der 50 SNMP Abfragen parallel? Gut möglich, kann aber auch ziemlich schlecht performen.
    • Hey, ich sehe gerade in deinen Screenshots, das tatsächlich der Host, der abgefragt wird, nicht schnell genug antwortet, das heißt der Agent fragt zum Beispiel die Disk Usage des Hosts ab und die SNMP Antwort kommt nicht schnell genug zurück. Eventuell lässt sich das beheben, in dem du den "Global timeout" Wert des Check in der WebGUI erhöhst, davon rate ich allerdings ab. Der Host sollte SNMP Abfragen zügiger beantworten.
    • Jonny schrieb:

      Ach ja, ein weiterer Vorteil eines kleineren Wertes von max_concurrent_checks ist natürlich, dass der Host, der da geprüft wird, nicht zu stark belastet wird. Wenn 50 Agenten gleichzeitig eine SNMP Abfrage auf einen Host ausführen, dann treibt das die CPU Auslastung des Hosts ganz gut nach oben. Dies könnte zum Beispiel ein Router sein... verkraftet der 50 SNMP Abfragen parallel? Gut möglich, kann aber auch ziemlich schlecht performen.
      Moin Jonny,
      der Host vom Screenshot ist ein Windows 7 Rechner der abgefragt wird, mit halbwegs guter Hardware , der sollte die SNMP Abfragen locker verkraften.
      Die Config von meinem Agent hab ich mal ein wenig überarbeitet , danke für die Optimierungsvorschläge!

      Ganz aktuell hatte ich das Thema jetzt gerade wieder, habe ein Template für eine spezielle Rechner-Gruppe (Windows) ca. 10 Rechner. Wenn ich die 2 Diskusage Checks einfüge C:/D:, initialisieren sie erst richtig, laufen aber in ein paar Minuten Querbeet in ein Timeout und nehmen ein paar andere SNMP Checks gleich noch mit ins Grab... Die Rechnergruppe aus dem Template haben aktuell pro Host 13 Checks die per SNMP abgefragt werden.
    • Hab gerade die Rechner des Templates mit einem SNMP Walk auf die OID von dem Plugin "check-snmp-process" einige male hintereinander abgefragt, die Antwortzeiten waren immer sehr gut, pro Rechner war die Ausgabe ca. 40-50 Prozesse, Performanceprobleme konnte ich hier keine Feststellen.
      Per Hand kann ich auch durch die Bank alle OIDs Abfragen die in dem Plugin "check-snmp-disk" aufgeführt werden, auch hier hab ich super Antwortzeiten von den Rechnern , pro OID hatte ich keinen der mehr wie 30ms Antwortzeit hatte.

      Performanceprobleme der Windows-Möhren kann ich ausschließen.