pixel
Seite wählen

Selbstentwickelte Anwendungen überwachen

von | Mai 6, 2016 | Development, Icinga, Linux, Technology

Die Basis

Bei selbstentwickelten Anwendungen stellt sich häufig die Frage wie sich diese im Monitoringsystem überwachen lassen.
Häufig läuft es dann darauf hinaus das einzelne Komponenten der Anwendung überwacht werden. Der Webserver, die Datenbank, eventuell der Applicationserver oder die Messagequeue die von der Anwendung benötigt wird. Das alles ist ein Solides Grundgerüst auf dem sich aufbauen lässt.

Die Anwendung verrät Ihren Status

In einer agilen (Web-)Plattform ist es aber hilfreich wenn die Anwendung etwas über ihren Status verrät. Welches Softwarelease ist ausgerollt und passt die Version des Datenbank Schemas zu dieser Version? Erreicht der Server seine Failover Systeme und sind diese OK?
Die Software kann aber noch mehr über sich verraten. Wie ist der Gesamtstatus der Software? Dieser ist nur OK wenn alle einzelnen Prüfungen OK sind.
Wünschen sich Entwickler oder Admins bestimmte Infos auf einer Infoseite oder einer API, lassen sich diese häufig recht einfach implementieren.
Hier das Beispiel einer möglichen API Ausgabe:

{
  "health": {
    "status": "OK"
  },
  "checks": [
    {
      "version": "1.0.1"
    },
    {
      "commit": "338308edb94efb7e54e609d5a8ee3f5df78595d0"
    },
    {
      "nodeid": "node2"
    }
  ],
  "cluster": [
    {
      "node1": [
        {
          "status": "OK"
        },
        {
          "version": "1.0.2"
        },
        {
          "commit": "f28d07c9ec90a4f17b446de060c44cf6ff379de5"
        }
      ]
    },
    {
      "node2": [
        {
          "status": "MAINTENANCE"
        },
        {
          "version": "1.0.1"
        },
        {
          "commit": "338308edb94efb7e54e609d5a8ee3f5df78595d0"
        }
      ]
    },
    {
      "node3": [
        {
          "status": "OK"
        },
        {
          "version": "1.0.2"
        },
        {
          "commit": "f28d07c9ec90a4f17b446de060c44cf6ff379de5"
        }
      ]
    }
  ]
}

Die Informationen im Monitoring nutzen

Im Monitoring lassen sich einzelne Werte zum Beispiel mit check_http auswerten, indem man auf den zu erwartenden String prüft. Mit check_multi lassen sich diese Infos dann mit anderen Checks verknüpfen. Die Kollegen in der Rufbereitschaft freuen sich über weitere Anhaltspunkte, wo das Problem zu suchen ist.

Hilfe bei der Automatisierung

Diese Infos sind zum Beispiel bei Continuous Delivery Szenarien enorm hilfreich. Das CI System kann prüfen ob der Rollout der ersten Knotens erfolgreich war und diesen dann z.B. über einen API Call wieder als Live markieren, das Monitoring System beendet die Downtime und der Loadbalancer nimmt den Knoten wieder in die Verteilung.

Mehr Beiträge zum Thema Development | Icinga | Linux | Technology

Icinga Camp Berlin 2022

Das erste Icinga Camp nach 2019 fand nun fast 3 Jahre später statt. NETWAYS hat als Sponsor und Hilfe in der Organisation zusammen mit der Icinga das Event zusammen auf die Beine gestellt und zu einem vollen Erfolg gemacht. Es wurde der aktuelle Stand der Dinge...

Elasticsearch: Herzstück des Elastic Stack

Nachdem wir uns im letzten Blogpost den Elastic Stack im Allgemeinen angesehen haben, wollen wir uns heute auf den Teil Elasticsearch konzentrieren. Gerade zum Thema Elasticsearch gibt es aufgrund der Mächtigkeit des Tools eine Vielzahl an Fakten und Features. Wie im...

Divide and Conquer – Verteilte Git-Konfiguration

In meinem zehnten Monat als Consultant bei NETWAYS angekommen, bin ich inzwischen gut in verschiedenste Kundenprojekte integriert. Das sorgt einerseits für einen abwechslungsreichen Alltag mit immer neuen Herausforderungen, andererseits stellte sich irgendwann ein...

Icinga for Windows Preview: Visualisiert eure Metriken!

Icinga hat in seinem Blogpost mitgeteilt, dass es mit Icinga for Windows v1.10.0 einige Änderungen an den Performance Metriken geben wird. Hier wollen wir einmal grob zusammenfassen, worum es geht und welche Auswirkungen diese Änderungen haben. Für alle Details ist...