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