Fehlender Context bei SNMPv3 Check bei HP Druckern

(Wir nutzen: 2.0.0p8 momentan)

Hallo,

ich habe die Beiträge zu dem Thema gelesen und dieser hier ([Check_mk (deutsch)] SNMPv3 Context mit HP Drucker) trifft es recht genau, aber… :slight_smile:

Wir haben neue HP Color Laserjet M554 seit kurzem im Einsatz. SNMP Abfragen via SNMP v2c und public funktionieren wunderbar und schnell (unter 2 Sekunden).

Wenn ich auf v3 umstelle, funktioniert es nicht mehr! HP Will unbedingt den Context wissen, aber nicht nur für eine OID - scheinbar für mehrere (alle?).

Habe eine Description Regel erstellt - Angezeigter Fehler der nur bei v3 auftritt ist damit behoben. Aber in der Folge dann meckert Checkmk weiter, das die nächste OID auch ein Context benötigt und ich diese nicht mitliefern kann. Oder ich nicht weiß wie.

Die Regel “SNMPv3 contexts to use in requests…” kenne ich, da habe ich alles mögliche ausprobiert. Aber entweder übersehe ich die korrekte “Section Name”, oder es funktioniert schlicht nicht.

Die SNMP Context ID ist ja “Jetdirect”. Auf der Konsole funktioniert das wunderbar:

OMD[XYZ]:~$ snmpbulkwalk -v 3 -l authPriv -a md5 -A Kennwort1 -x DES -X Kennwort2 -u monitoringuser -n Jetdirect DRUCKERNAME

SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM none,JETDIRECT,JD153,EEPROM JSI25020013,CIDATE 03/31/2021
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.11.2.3.9.1
SNMPv2-MIB::sysUpTime.0 = Timeticks: (43752374) 5 days, 1:32:03.74
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: PHW401300
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 64
IF-MIB::ifNumber.0 = INTEGER: 2
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifDescr.1 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM none,JETDIRECT,JD153,EEPROM JSI25020013
IF-MIB::ifDescr.2 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM none,JETDIRECT,JD153,EEPROM JSI25020013
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifMtu.1 = INTEGER: 1536
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifSpeed.1 = Gauge32: 0
IF-MIB::ifSpeed.2 = Gauge32: 1000000000
IF-MIB::ifPhysAddress.1 = STRING:
IF-MIB::ifPhysAddress.2 = STRING: b0:22:7a:85:c3:
usw.

Ohne Context:
snmpbulkwalk -v 3 -l authPriv -a md5 -A Kennwort1 -x DES -X Kennwort2 -u monitoring DRUCKERNAME
snmpbulkwalk: Bad context specified

Wenn ich es nun mit dem Check direkt versuche:

OMD[XYZ]:~$ cmk --debug -vv DRUCKERNAME
Checkmk version 2.0.0p8
Try license usage history update.
[…Lizenzinfos usw. gekürzt]
Loading autochecks from /omd/sites/XYZ/var/check_mk/autochecks/DRUCKERNAME.mk

  • FETCHING DATA
    Source: SourceType.HOST/FetcherType.SNMP
    [cpu_tracking] Start [7f3aeb401640]
    [SNMPFetcher] Fetch with cache settings: SNMPFileCache(base_path=PosixPath(’/omd/sites/XYZ/tmp/check_mk/data_source_cache/snmp/DRUCKERNAME’), max_age=MaxAge(checking=0, discovery=120, inventory=120), disabled=False, use_outdated=False, simulation=False)
    Not using cache (Too old. Age is 2471 sec, allowed is 0 sec)
    [SNMPFetcher] Execute data source
    No persisted sections loaded
    SNMP scan:
    Skipping system description OID (Set .1.3.6.1.2.1.1.1.0 and .1.3.6.1.2.1.1.2.0 to “”)
    Using cached OID .1.3.6.1.2.1.1.1.0: ‘’
    Using cached OID .1.3.6.1.2.1.1.1.0: ‘’
    Getting OID .1.3.6.1.4.1.1139.21.2.2.8.1.*: Executing SNMP GETNEXT of ‘.1.3.6.1.4.1.1139.21.2.2.8.1’ on DRUCKERNAME
    [cpu_tracking] Stop [7f3aeb401640 - Snapshot(process=posix.times_result(user=0.4099999999999997, system=0.019999999999999962, children_user=0.0, children_system=0.0, elapsed=0.46000000089406967))]
    Failed to initiate SNMP: 1.3.6.1.6.3.12.1.5.0

Ich hoffe ich konnte deutlich machen, wo es klemmt und würde mich über Hinweise/Anregungen sehr freuen. Danke!

Andre

Das Problem ist genau das was in dem verlinkten Beitrag beschrieben ist nur mit 2.0 hat sich da bisl was geändert.
Hier gibt es meiner Meinung nach nur eine Lösung im Moment.
Für den Host nur die SNMP Sektionen aktivieren welche gebraucht werden. Alle Abfragen welche beim Discovery ausgeführt werden welche versuchen einzelne OIDs laufen in einen Fehler wegen des Problems SNMPGET ohne Context.
Er crasht bei nem Check für EMC vPlex welches einfach schaut ob eine bestimmte OID vorhanden ist.

Schau mal nach der Regel “Disabled or enabled sections (SNMP)” und versuche nur die Printer Sektionen zu aktivieren.
Sowas wie in der Art hier

Hallo Andreas,

Danke für deine schnelle Rückmeldung. Leider funktioniert das bei mir nicht. Selbst wenn ich nur die Section printer_alert oder printer_pages aktiviere und dieser den Kontext “Jetdirect” mitgebe, bekomme ich den “Failed to initiate SNMP: 1.3.6.1.6.3.12.1.5.0” Fehler.

Diese OID bedeutet wohl schlicht, dass der Context fehlt, so wie ich das verstehe. Das wiederum bedeutet das es ein eigenen Check für die Drucker bedarf, der den Context Parameter einfach immer mit gibt, oder? Über Regeln lässt sich das scheinbar nicht lösen.

Ich steck weder in SNMP noch in eigene Checks erstellen sehr tief drin. Danke für deine Unterstützung!

Das hat erstmal nix mit den Checks selbst zu tun. Was schonmal gut ist :slight_smile:
Das Problem liegt hier direkt im SNMP System von CMK.
Es gibt bei SNMPv3 mit Context zwei Varianten welche ich in freier Wildbahn bis jetzt gesehen habe - 1. Context ist optional und wird nur für bestimmte OIDs gebraucht (Beispiel Cisco Devices wo der Context nur für das Auslesen von bestimmten VLAN Informationen gebraucht wird) - 2. Context ist obligatorisch für jede Abfrage egal was sonst gibts gar nix. (Beispiel ist hier dein Drucker)

Von CMK werden Geräte vom Typ 2 nicht unterstützt jedenfalls nicht ohne basteln.
Wäre eine Frage für die Münchner Kollegen ob das so bekannt ist als Problem. Besprochen wurde das ja wie der verlinkte Beitrag zeigt schon öfters mal.
Ping an @_rb oder @LaMi :slight_smile:

Wenn CMK Typ 2 könnte wäre das sicher eine super Sache!! :wink:

Wir haben aktuell mehrere dutzend Drucker des gleichen Modells gekauft, die alle den Context Parameter so abfragen. Und es sollen noch mehr angeschafft werden. Und es soll SNMPv3 genutzt werden.

Die HP Geräte wirken recht hochwertig und wir sind bisher zufrieden. Kann mir gut vorstellen das HP den Context als Feature sieht und in Zukunft nur noch so neue Enterprise Geräte ausliefert. Dann müsste CMK früher oder später ja eh an das Thema ran räusper

Beste Grüße aus Frankfurt

For me this worked:
-Separate rules under “SNMPv3 contexts to use in requests”

With this:
printer_alerts, printer_input, printer_pages, hr_mem, snmp_uptime, snmp_info

And checking with cmk -vv --debug

I tried it with separate rules. The way you wrote. But no success with the HP device.

Debug log does not help either. Supposedly snmp check was successful. But it does not deliver snmpv3 data. I only get data about v2 without context.

[snmp] Success, execution time 0.1 sec | execution_time=0.120 user_time=0.090 system_time=0.020 children_user_time=0.000 children_system_time=0.000 cmk_time_snmp=0.000

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.