Von vielen Kunden haben wir die Frage gestellt bekommen, wie man Verbindungen mit Hilfe des Internet Control Message Protocol, aka ping, und dem OpenTelemetry Collector prüft. “Wozu?!” mögen manche von euch fragen. “Die 90er haben angerufen und wollen ihr ICMP zurück.” höre ich ein paar andere schon sagen – aber ein Grund kann z. B. sein, dass man dadurch auf das Erstellen und die Pflege umfangreicher Scripte verzichten kann. Und das kann initial gut und gerne einen ganzen Arbeitstag an Zeit einsparen (und dauerhaft die Nerven schonen).
Der umgangssprachliche ping kann uns einiges über den Zustand unserer Infrastruktur verraten. Gerade wenn wir nicht alle Details über die Komponenten zwischen zwei Endpunkten kennen. Mithilfe des ping können wir eine Einschätzung zur Lage vornehmen und die häufige Aussage “Das ist so langsam…” qualifizieren. Die bei einer Einzelmessung anfallenden Datenmengen sind sehr gering und die Erkenntnisse bei der Durchführung mittel- bis langfristiger Messungen helfen frühzeitig temporäre Degradierungen zu erkennen und zu alarmieren.
Zuerst installiert ihr den Splunk OpenTelemetry Collector (z. B. über Github hier). Die Anleitung für das jeweilige Betriebssystem findet ihr hier.
Damit habt ihr auch schon alle Komponenten, die für das Einsammeln von Latenz, Droprate und Standardabweichung eines ping benötigt werden.
Nun müsst ihr nur noch in der agent_config.yaml (üblicherweise zu finden unter Linux: /etc/otel/collector/) beschreiben, welche Hosts anzupingen sind. Das macht man mit folgenden Eintrag im Bereich der receivers:
receivers:
…
smartagent/myping:
type: collectd/custom
template: |
LoadPlugin ping
<Plugin ping>
Host "10.202.11.101"
</Plugin>
...
Mit den hier auf collectd.org hinterlegten Informationen kann der ping noch detaillierter konfiguriert werden. Diese Ergänzungen müsst ihr dann in das Plugin Tag eintragen, an die Stelle wo auch der Host konfiguriert wurde.
Wir haben hier einen “Receiver” im OTel Collector erstellt. Dieser erhält Daten vom smartagent und heißt myping. Der Name hinter dem smartagent kann fast beliebig gewählt werden. Den smartagent konfigurieren wir über den OTel Collector so, dass er collectd verwenden soll. Und dem collectd geben wir ebenso mit, dass es das ping Plugin laden muss. Alle Komponenten (smartagent, collectd, ping Plugin) wurden mit der Installation des Splunk OpenTelemetry Collectors mitgeliefert.
Hinweis: Warum so viele Komponenten?
Solange die oben beschriebenen Funktionalitäten nicht im standard OpenTelemetry Collector zur Verfügung stehen, liefern wir diese über die Splunk-eigene Distribution, den Splunk OpenTelemetry Collector, mit.
Zum Schluss muss man den neu geschaffenen Receiver noch in die metrics Pipeline unter service einbinden. Dies geschieht in der Konfigurationsdatei agent_config.yaml etwas weiter unten:
service:
...
pipelines:
...
metrics:
receivers: [..., smartagent/myping]
...
Ihr könnt so viele ping-Receiver anlegen, wie ihr benötigt. Achtet aber auf jeden Fall auf die richtige Benennung und die richtige Referenzierung.
Die Metriken werden nach der Standardinstallation des Splunk OpenTelemetry Collectors an Splunk Infrastructure Monitoring (IM) in die Splunk Observability Cloud geliefert. Ihr findet die Metriken sehr einfach über den Metric Finder (linke Navigation) wenn ihr im Suchfeld nach dem Stichwort “ping” sucht. Im Ergebnis tauchen dann die Metriken ping.[HOST] (Latenz), ping_droprate.[HOST] und ping_stddev.[HOST] (Standardabweichung) auf. Der HOST bezieht sich dabei auf das Ziel das wir unter dem Eintrag Host in der Konfigurationsdatei angegeben haben. Wenn ihr wissen möchtet, welcher Host die Quelle des Ping war, findet ihr diese Information im Tag host an der Metrik. Damit kann der Quellhost als Dimension zur Auswertung der Metrik verwendet werden. Zum Beispiel wenn ihr ein Ziel von unterschiedlichen Quellen aus anpingen möchtet.
Im Weiteren können diese Metriken ganz normal auf Dashboards visualisiert und auch für die Alarmierung durch einen Detector über Outlier Detection oder Historical Anomaly verwendet werden.
Mit diesem Vorgehen könnt ihr euch sehr schnell und einfach ein eigenes Netzwerk von Ping-Agenten auf Open Source Basis aufbauen.
Sollte nichts in eurer Splunk Observability Cloud ankommen bitte in den Logs (Linux: sudo journalctl -u splunk-otel-collector -n 100 -f) prüfen, ob der ping auch ausgeführt werden konnte. Wenn ihr da eine Fehlermeldung seht, die was von "operation not permitted" erzählt, bitte noch folgendes ausführen:
Wenn ihr mehr Informationen möchtet oder an anderen Beispielen interessiert seid, kommt gerne auf uns zu.
Die Splunk-Plattform beseitigt die Hürden zwischen Daten und Handlungen, damit Observability-, IT- und Security-Teams in ihren Unternehmen für Sicherheit, Resilienz und Innovation sorgen können.
Splunk wurde 2003 gegründet und ist ein globales Unternehmen – mit mehr als 7.500 Mitarbeitern, derzeit über 1.020 Patenten und einer Verfügbarkeit in 21 Regionen rund um den Globus. Mit seiner offenen, erweiterbaren Datenplattform, die die gemeinsame Nutzung von Daten in beliebigen Umgebungen unterstützt, bietet Splunk allen Teams im Unternehmen für jede Interaktion und jeden Geschäftsprozess End-to-End-Transparenz mit Kontext. Bauen auch Sie eine starke Datenbasis auf – mit Splunk.