Infrastruktur-Metriken in der Cloud sammeln Monitoring mit AWS CloudWatch

Autor / Redakteur: Sascha Möllering * / Stephan Augsten

„Wir würden gerne unsere Infrastruktur, beispielsweise Amazon-EC2-Instanzen und auch die darauf laufenden Anwendungen, überwachen. Welche Dienste kommen für das Monitoring von Basisinfrastruktur und Software in der AWS Cloud in Frage?“

Anbieter zum Thema

Die Funktionsweise von Amazon CloudWatch.
Die Funktionsweise von Amazon CloudWatch.
(Bild: AWS Germany GmbH)

Die Überwachung von Infrastruktur und Software ist ein wichtiger Aspekt bei dem produktiven Betrieb einer Anwendung. Amazon CloudWatch erlaubt es, AWS Ressourcen und Anwendungen, die in AWS laufen, in Echtzeit zu überwachen. So lassen sich beispielsweise Metriken sammeln und visualisieren. Darüber hinaus ist es möglich, mit Hilfe von CloudWatch-Alarmen Benachrichtigungen zu versenden.

Auf Basis von Regeln kann der Admin sogar die überwachte Infrastruktur automatisiert ändern. So könnte er ohne Weiteres die CPU-Auslastung einer EC2-Instanz und die Schreib- und Leseoperationen überwachen. Anhand der ermittelten Daten zeigt sich dann, ob es notwendig ist, weitere EC2-Instanzen zu starten, um die gestiegene Auslastung der Infrastruktur bewältigen zu können. Das Stoppen kaum oder nicht ausgelasteter EC2-Instanzen wiederum spart unnötige Kosten.

Die Funktionsweise von Amazon CloudWatch.
Die Funktionsweise von Amazon CloudWatch.
(Bild: AWS Germany GmbH)

Eine besonders interessante Möglichkeit neben der Überwachung der AWS-Infrastruktur besteht darin, dass Amazon CloudWatch Schnittstellen bietet, um eigene Metriken zu nutzen. Ein beliebter Anwendungsfall hierfür ist das Senden der RAM-Auslastung durch eine Anwendung.

Visualisierung von Metrikdaten

Neben dem Sammeln von Metriken bietet CloudWatch natürlich auch eine Möglichkeit zur Visualisierung. Dazu muss lediglich die gewünschte Metrik gewählt werden. CloudWatch unterstützt Average, Minimum, Maximum, Sum und SampleCount als statistische Auswertungen.

Die gewünschten Daten lassen sich mit unterschiedlicher Granularität darstellen. Beispielsweise ist es möglich, eine detaillierte Betrachtung (zum Beispiel eine Minute) zu wählen, was sich für die Fehlersuche anbietet. Um einen Trend abzulesen, kann der Betrachtungszeitraum deutlich größer (zum Beispiel drei Tage) gewählt werden.

Visualisierung der TotalIOBytes-Metrik eines Amazon EFS-Volumes.
Visualisierung der TotalIOBytes-Metrik eines Amazon EFS-Volumes.
(Bild: AWS Germany GmbH)

Zusätzlich bietet die CloudWatch-Konsole auch die Möglichkeit, eigene Dashboards zu erstellen. Diese angepassten Darstellungen zeigen bei richtiger Konfiguration die wichtigsten Ressourcen auf einen Blick. Das ist auch über Regionengrenzen hinweg möglich, was es einfach gestaltet, weltweit verteilte Anwendungen zu überwachen.

Eigene Metriken an CloudWatch senden

Wie bereits angedeutet ist es sehr einfach möglich, über die Programmierschnittstelle eigene Metriken an CloudWatch zu senden und diese zu visualisieren. Folgendes Beispiel zeigt, wie das mit dem AWS SDK für Java implementiert werden kann:

final AmazonCloudWatch cw =
  AmazonCloudWatchClientBuilder.defaultClient();

Dimension dimension = new Dimension()
  .withName("UNIQUE_PAGES")
  .withValue("URLS");

MetricDatum datum = new MetricDatum()
  .withMetricName("PAGES_VISITED")
  .withUnit(StandardUnit.None)
  .withValue(data_point)
  .withDimensions(dimension);

PutMetricDataRequest request = new PutMetricDataRequest()
  .withNamespace("SITE/TRAFFIC")
  .withMetricData(datum);

PutMetricDataResult response = cw.putMetricData(request);

In diesem Beispiel werden die eindeutigen Seitenbesuche (unique page visits) einer Webseite als Wert in Amazon CloudWatch unter dem Namespace SITE/TRAFFIC abgelegt. Ein Namespace in CloudWatch ist eine Art Container für Metriken, einzelnen Namespaces sind voreinander isoliert. Damit wird verhindert, dass die Metriken unterschiedlicher Anwendungen fälschlicherweise aggregiert werden.

Fazit

Sascha Möllering
Sascha Möllering
(Bild: AWS Germany GmbH)

Amazon CloudWatch ist ein flexibles und mächtiges Instrument zur Überwachung von AWS-Infrastruktur und eigener Anwendungen. Neben einer einfachen Visualisierung und der Nutzung von Dashboards bietet CloudWatch auch eine einfach zu nutzende Programmierschnittstelle, mit der eigene Metriken an CloudWatch gesendet werden können.

* Sascha Möllering arbeitet als Solutions Architect bei der Amazon Web Services Germany GmbH.

(ID:45479187)