
Ping-Metriken mit Prometheus und Grafana
Ein einfacher Beitrag, von denen ich glaube, dass sie in jedem Bereich einen Beitrag leisten können, Und es ist nichts anderes als ein Pingen 😊😂, Mal sehen, ich lache, Aber es liefert bei vielen Gelegenheiten interessante Informationen. In diesem Beitrag werden wir sehen, wie man Pings an interne/externe IP-Adressen sendet, an denen wir interessiert sind, deren Latenz wir kennen, wenn es Schnitte gibt… und verstehen Sie es visuell mit Grafana.
Wenn wir daran interessiert wären, in Echtzeit zu wissen (auf der Ebene der 1 Sekunde, 5…) Konnektivität zu bestimmten IP-Adressen, um minimal zu wissen, wann wir ein Netzwerkproblem haben, ob wir das Internet nicht erreichen, ein Service, den wir veröffentlicht haben, oder interne IP-Adressen von Delegationen, Rechenzentrum… IP-Adressen, an denen wir interessiert sind (Ich) wenn Pakete fallen und (Ii) Ihre Reaktionszeit (Latenzen kennen). In diesem Beitrag werden wir sehen, wie wir es auf sehr einfache und schnelle Weise zusammengebaut haben.
Wie ich Ihnen schon sagte, In diesem Jahr habe ich vor, ein wenig auf diese Art von Themen zu achten, die wir im Blog noch nicht viel angesprochen haben, vor allem solche, die einfach zu implementieren sind und auf eine Mehrheit 🙂 angewendet werden können Also fangen wir an! Angenommen, wir haben bereits in unserer Umwelt setzte eine Prometheus und eine Grafana ein, Wir können loslegen.
Der effektivste Weg besteht darin, einen weiteren Docker-Container bereitzustellen, In diesem Fall verwenden wir 'ping-exporter’ Das ermöglicht es uns, seine Daten im Handumdrehen in einem Grafana-Dashboard zu visualisieren, Wir erstellen den Ordner und wir kommen rein:
cd mkdir ping-exporter mkdir ping-exporter/config cd ping-exporter
Wir erstellen die docker compose-Konfigurationsdatei für diesen Container mit 'nano docker-compose.yaml’
Version: '3.9' services: ping_exporter: Bild: czerwonk/ping_exporter container_name: ping_exporter Volumina: - './config:/Konfiguration:ro' ports: - '9427:9427' restart: Es sei denn, Netzwerke werden gestoppt: ping_exporter_default: Netzwerke: ping_exporter_default: Fahrer: Brücke Ipam: Konfiguration: - Subnetz: XX.XX.XX.0/24 Tor: XX.XX.XX.1
Hier erstellen Sie einen Container mit dem Namen ping_exporter, Basierend auf dem Bild von ping_exporter, Dadurch wird der Konfigurationsordner gemountet und die Ping-Metriken auf Port 9427tcp verfügbar gemacht., Besonderheiten von mir, die ich gerne definiere, um spezifische Netzwerkbereiche zu definieren, sonst, Die letzten habe ich übersprungen 4 Linien.
Der nächste Schritt, besteht darin, die Konfigurationsdatei für ping_exporter zu erstellen, Ich verabschiede mich mit diesem Beispiel:
Ziele: - 8.8.8.8 - 1.1.1.1 - 192.168.0.1 - 192.168.1.1 anpingen: Intervall: 5s Zeitüberschreitung: 5s History-Größe: 42 Nutzlast-Größe: 120 Optionen: deaktivierenIPv6: STIMMT
Wie Sie sehen können, Im Abschnitt "Ziele"’ wir können die IP-Adressen hinzufügen, die wir anpingen möchten,. Sowie die Standardparameter, Um die Pings jedoch alle 5 Nachschlag, Definieren eines Timeouts, Größe… Zuallererst, Ich vergaß, Ich überlasse dir die Offizieller Link des Projekts, falls Sie weitere Informationen wünschen.
Damit haben wir es, Jetzt muss der Behälter nur noch aufgeklappt und in Betrieb genommen werden, hierfür:
sudo docker compose up -d
Sobald der Container bereitgestellt ist, wir werden in der Lage sein zu überprüfen, ob die Metriken der PINGs bereits verfügbar gemacht werden, hierfür, wenn wir uns von einem Browser mit http mit der Docker-IP-Adresse verbinden, zum Hafen von ping_exporter (9427Standardmäßig TCP) und setzen Sie das Ende der URL '/metrics'.
Was wir nun übrig haben, besteht darin, Prometheus anzuweisen, diese Metriken zu erfassen, hierfür, Es wird so einfach sein wie das Bearbeiten der Prometheus-Konfigurationsdatei (Zum Beispiel: 'nano~/prometheus/prometheus/prometheus.yml’ und wir fügen einen Job hinzu, um eine Verbindung zur IP und zum Port des ping_exporter herzustellen:
... - job_name: ping-prometheus scrape_interval: 5scrape_timeout: 5static_configs: - Ziele: - DIRECCION_IP_DOCKER:PUERTO_PING_EXPORTER ...
Standardmäßig werden alle 5 Nachschlag.
Und vergessen Sie nicht, den Prometheus-Container neu zu starten, um die Einstellungen neu zu laden:
sudo Docker Prometheus neu starten
Und das ist es, Wir haben es bereits!! Was bleibt uns übrig? Nun, sehen Sie es in Grafana 😊. Um dies zu tun,, Unter der Annahme, dass wir die Schritte des vorherigen Dokuments befolgen, Wir haben bereits Grafana bereitgestellt und die Datenquelle für Prometheus erstellt, Nun, es ist nur so, dass wir ein Dashboard importieren müssen, das uns gefällt und das die Community erstellt hat, zum Beispiel empfehle ich diese ID: 19761. So auch bei Grafana, Es wird nichts anderes sein, als in Dashboards zu klicken > Neu > Importieren > Fügen Sie die ID ein und das Dashboard wird importiert, Sie werden aufgefordert, das Dashboard zu benennen und den Prometheus-Konnektor auszuwählen. Von dort aus sind Sie bereit!
Von dort aus können Sie das Dashboard nach Ihren Wünschen anpassen, wenn Sie es in Betracht ziehen, oder was auch immer Sie brauchen. Aber wow, Sie werden sehen, dass Sie in einem Moment ein Dashboard haben, in dem es einfach zu interpretieren ist, ob eine IP-Adresse in einem bestimmten Zeitraum ein Problem hatte, sowie wenn Pakete verworfen werden oder wir Latenzzeiten sehen möchten, Bessere Zeiten, durchschnittliche oder schlechtere Ergebnisse. Um die Farben zu schmecken, die einfache Pings sind.
Bei einigen Gelegenheiten, Dank dieser Art von Informationen, Wir konnten feststellen, wann ein WAN schief ging, oder wenn es ein Problem mit der Netzwerkelektronik gibt, und von einem Switch fallen Pakete, da es ein Problem/eine Belastung haben kann…
Wie Kristian Pielholf in Bricomanía sagen würde… leicht, Einfach und familienfreundlich 🤣, Ich hoffe wie immer, dass Sie es interessant fanden und mit Tipps von diesen und anderen unsere Infrastrukturen kennen und meistern können.
Ich schicke dir eine Umarmung, Tragen Sie sich gut 😉