Szenario: Nachrichten nach Metrikstream aufteilen

Hier wird ein Alarm eingerichtet, um eine Nachricht für jeden Metrikstream zu senden. In diesem Beispiel möchten Sie benachrichtigt werden, wenn ein Server einen Schwellenwert überschreitet. Bei diesem Setup erhalten Sie serverspezifische Nachrichten.

Achtung

Wenn Nachrichten nach Metrikstream aufgeteilt werden, sollten Sie die Anzahl der vom Alarm überwachten Ressourcen berücksichtigen. Wenn mehrere Hundert Ressourcen gleichzeitig den Alarm auslösen, werden mehrere Nachrichten gleichzeitig gesendet. Viele Nachrichten können das Telefon (SMS), den Posteingang (E-Mail) oder andere Messagingendpunkte überlasten. Einige Nachrichten werden aufgrund von Servicelimits möglicherweise verzögert gesendet. Weitere Informationen zu Limits und Best Practices finden Sie unter Limits für Alarmnachrichten.

Erforderliche IAM Policy

In diesem Thema werden die Zugriffsanforderungen für das Szenario beschrieben.

Um Oracle Cloud Infrastructure verwenden zu können, muss ein Administrator Mitglied einer Gruppe sein, der von einem Mandantenadministrator Sicherheitszugriff in einer Policy erteilt wurde. Dieser Zugriff ist unabhängig davon erforderlich, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie eine Nachricht erhalten, dass Sie keine Berechtigung haben oder nicht autorisiert sind, fragen Sie den Mandantenadministrator, welcher Zugriffstyp Ihnen erteilt wurde und in welchem Compartment Ihr Zugriff funktioniert.

Wenn Sie Mitglied der Administratorengruppe sind, besitzen Sie bereits die erforderliche Berechtigung, um dieses Szenario durchzuführen.

Administratoren: Informationen zu allgemeinen Policys, mit denen Benutzer Alarme verwalten und Themen erstellen können, finden Sie unter Alarmzugriff für Gruppen.

Ziel

Ziel dieses hypothetischen Szenarios ist es, separate Alarmnachrichten pro Server zu erhalten. Beispiel: Sie überwachen 50 Server, die eine benutzerdefinierte Metrik für die CPU-Auslastung ausgeben, und möchten wissen, ob eine CPU-Auslastung von über 80 Prozent vorliegt. Sie möchten eine Nachricht erhalten, wenn die Metriken eines einzelnen Servers den Alarm auslösen.

Szenario einrichten

Beim Setup wird ein Schwellenwertalarm erstellt und für metrikstreamspezifische Nachrichten aktiviert. In diesem hypothetischen Szenario wählen Sie die benutzerdefinierte Metrik MyCustomCPUMetric und die Ressourcengruppe MyServerResourceGroup aus.

Sie können diese Aufgaben in der Oracle Cloud Infrastructure-Konsole, in der CLI oder in der API ausführen.

    1. Wählen Sie auf der Listenseite Alarmdefinitionen die Option Alarm erstellen aus. Wenn Sie Hilfe beim Suchen der Listenseite benötigen, finden Sie weitere Informationen unter Alarme auflisten.
    2. Geben Sie auf der Seite Alarm erstellen unter Alarm definieren einen Alarmnamen ein.

      Beispiel: Serverspezifische Nachrichten

      Ändern Sie optional den Alarmschweregrad, und geben Sie unter Alarmtext den Nachrichtentext ein.

    3. Wählen Sie unter Metrikbeschreibung die benutzerdefinierte Metrik aus, und definieren Sie die Abfrage.
      • Compartment: Wählen Sie das Compartment aus.
      • Metrik-Namespace: Wählen Sie den Namespace für die benutzerdefinierte Metrik aus.
      • Ressourcengruppe: MyServerResourceGroup
      • Metrikname: MyCustomCPUMetric

        Hinweis

        Jede OCI-Metrik oder benutzerdefinierte Metrik kann ausgewählt werden.
      • Intervall: 1m
      • Statistik: Anzahl
    4. Überspringen Sie Metrikdimensionen.
    5. Setzen Sie unter Triggerregel den Schwellenwert auf 80, und verzögern Sie Nachrichten um 10 Minuten:
      • Operator: größer als
      • Wert: 80
      • Triggerverzögerung in Minuten: 10
    6. Geben Sie unter Alarmbenachrichtigungen festlegen, Ziel, die folgenden Werte an:
      • Zielservice: Benachrichtigungen
      • Compartment: Wählen Sie das Compartment mit dem Thema aus.
      • Thema: Wählen Sie das Thema aus, an das Sie Benachrichtigungen senden möchten. In diesem Szenario ist das Thema bereits vorhanden und enthält die gewünschten Abonnements (SMS, E-Mail und andere).
      In diesem Szenario wird ein Thema für Alarmbenachrichtigungen verwendet. Sie können stattdessen einen Stream verwenden, was hilfreich ist, wenn Sie zahlreiche Alarmbenachrichtigungen erwarten. Weitere Informationen finden Sie unter Limits für Alarmnachrichten.
    7. Wählen Sie unter Nachrichtengruppierung die Option Benachrichtigungen nach Metrikstream teilen aus.
      Diese Option ist erforderlich, um eine Nachricht für jeden Metrikstream zu erhalten.
    8. Wählen Sie Wiederholungsbenachrichtigung? aus, und behalten Sie die Standardeinstellung 60 Minuten bei.
      Nachrichten werden jede Stunde gesendet, solange der Alarm den Status Firing für mindestens einen Metrikstream aufweist.
    9. Wählen Sie Alarm speichern aus.
    Monitoring beginnt mit der Auswertung von Metriken für Server im ausgewählten Compartment und sendet eine Alarmnachricht (pro Abonnement) für jeden Metrikstream.
  • Erstellen Sie den Alarm mit dem Befehl oci monitoring alarm create. Um den Alarm für nach Metrikstream aufgeteilte Nachrichten zu konfigurieren, setzen Sie --is-notifications-per-metric-dimension-enabled auf true.

    Beispielbefehl
    oci monitoring alarm create 
    --compartment-id "<compartment_OCID>"
    --destinations ["<topic_OCID>"]
    --display-name "Server-Specific Messages"
    --is-enabled true
    --is-notifications-per-metric-dimension-enabled true
    --message-format "ONS_OPTIMIZED"
    --metric-compartment-id "<metric_compartment_OCID>"
    --namespace "<custom_metric_namespace>"
    --query-text "MyCustomCPUMetric[1m].count() > 80"
    --repeat-notification-duration "PT1H"
    --resource-group "MyServerResourceGroup"
    --severity "CRITICAL"

    Eine vollständige Liste der Kennzeichen und Variablenoptionen für CLI-Befehle finden Sie in der Befehlszeilenreferenz.

  • Verwenden Sie den Vorgang CreateAlarm, um den Alarm zu erstellen. Um den Alarm für nach Metrikstream aufgeteilte Nachrichten zu konfigurieren, setzen Sie isNotificationsPerMetricDimensionEnabled auf true.

    Beispielanforderung
    POST /20180401/alarms
    Host: telemetry.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "body": "Server exceeded CPU utilization threshold",
      "compartmentId": "<compartment_OCID>",
      "destinations": ["<topic_OCID>"],
      "displayName": "Server-Specific Messages",
      "isEnabled": true
      "isNotificationsPerMetricDimensionEnabled": true
      "messageFormat": "ONS_OPTIMIZED",
      "metricCompartmentId": "<metric_compartment_OCID>",
      "namespace": "<custom_metric_namespace>",
      "query": "MyCustomCPUMetric[1m].count() > 80",
      "repeatNotificationDuration": "PT1H",
      "resourceGroup": "MyServerResourceGroup",
      "severity": "CRITICAL"
    }