Wer in Check_MK mittels gespeicherter SNMP Walks Checks entwickelt möchte unter umständen auch gerne sich ändernde Werte haben und keine statischen aus dem Dump.
Check_MK hat 3 eingebaute Funktionen um steigende Counter etc. zu simulieren.
Ausschnitt aus dem Check_MK Code lib/python/cmk_base/agent_simulator.py (GPLv2):
def agentsim_uptime(rate = 1.0, period = None): # period = sinus wave if period == None: return int(our_uptime() * rate) else: a = (rate * period) / (2.0 * math.pi) u = our_uptime() return int(u * rate + int(a * math.sin(u * 2.0 * math.pi / period))) def agentsim_enum(values, period = 1): # period is in seconds hit = int(our_uptime()) / period % len(values) return values[hit] def agentsim_sinus(base = 50, amplitude = 50, period = 300): return int(math.sin(our_uptime() * 2.0 * math.pi / period) * amplitude + base)
Wie kann man die Simulatoren verwenden?
Im gespeicherten SNMP Walk müssen die Simulatoren eingefügt werden statt des statisch exportieren Werts. Die SNMP Walks liegen unter ~/var/check_mk/snmpwalks/<hostname>
Beispiel:
.1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.1.3 0 .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.2.1 0 .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.2.2 %{uptime(rate=10)} .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.2.3 %{sinus()} .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.3.1 %{enum([10,20,30,40,50,60,70,80,90])} .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.3.2 0 .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.3.3 31008 .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.4.1 5353 .1.3.6.1.4.1.9.9.189.1.3.5.1.4.10101.4.2 0