Wie behebe ich langsame Protokolle in Amazon OpenSearch Service?

Letzte Aktualisierung: 30.07.2021

Ich habe langsame Suchprotokolle für meine Amazon OpenSearch Service (Nachfolger von Amazon Elasticsearch Service)-Domäne aktiviert. Ich erhalte jedoch eine Fehlermeldung oder die langsamen Protokolle werden nicht in meiner Amazon-CloudWatch-Protokollgruppe angezeigt. Wie kann ich dies beheben?

Auflösung

Ich erhalte eine Fehlermeldung, wenn ich versuche, langsame Protokolle einzurichten

Wenn Ihr AWS-Konto zehn Ressourcenrichtlinien für Ihre Region überschreitet, wird in Amazon CloudWatch Logs die folgende Fehlermeldung angezeigt:

"Unable to create the Resource Access Policy - You have reached the maximum limit for number of Resource Access Policies for CloudWatch Logs. Please select an existing policy and edit it or delete an older policy and try again."

Um diese Fehlermeldung zu beheben, erstellen Sie eine Ressourcenrichtlinie, die mehrere Protokollgruppen enthält.

Beispiel:

{
    "Version": "2012-10-17",
    "Statement": [
        {
         "Effect": "Allow",
         "Principal": {
         "Service": "es.amazonaws.com"
        },
        "Action": [
         "logs:PutLogEvents",
         "logs:CreateLogStream"
        ],
        "Resource": [
         "ARN-Log-Group-1",
         "ARN-Log-Group-2",
         "ARN-Log-Group-3",
         "ARN-Log-Group-4"
        }
    ]
}

Hinweis: Das Richtlinienlimit für AWS Identity and Access Management (IAM) kann nicht erhöht werden.

Ich sehe keine langsamen Protokolle, die übermittelt werden

Wenn Sie nicht sehen, dass Ihre langsamen Protokolle an CloudWatch übermittelt werden, überprüfen Sie Ihre IAM-Richtlinie oder OpenSearch-Service-Schwellenwerte.

Da OpenSearch Service die Berechtigung zum Schreiben in CloudWatch Logs benötigt, benötigen Sie die richtige IAM-Richtlinie, um Ihre Abfragen zu protokollieren. Um Ihre IAM-Richtlinie zu aktualisieren, navigieren Sie zu Langsame Protokolle suchen und wählen Sie dann Einrichtung auswählen.

Beispiel:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "es.amazonaws.com"
      },
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream"
      ],
      "Resource": "arn:aws:logs:us-east-1:588671893395:log-group:/aws/aes/domains/myes/search-logs:*"
    }
  ]
}

Stellen Sie außerdem sicher, dass Sie einen geeigneten Zeitschwellenwert für Ihre Domäne festlegen. Wenn beispielsweise alle Ihre Anfragen vor dem festgelegten Schwellenwert abgeschlossen sind, werden Ihre Protokolle nicht an Ihre Protokollgruppe gesendet.

Sie können auch individuelle INDEX-Level-Schwellenwerte für jede Debug-Ebene festlegen (TRACE, DEBUG, INFO und WARN).

Beispielsweise können Sie den Schwellenwert für WARN-Debug-Ebenen für den YOURINDEXNAME-Index in OpenSearch Dashboards auf zehn Sekunden festlegen:

PUT /YOURINDEXNAME/_settings{"index.search.slowlog.threshold.query.warn": "10s"}

Hinweis: Sie können TRACE auf „0" Millisekunden setzen, um alle Abfragen für Ihre Domäne zu protokollieren. Da die Protokollierung aller Abfragen jedoch ressourcenintensiv ist, kann die Leistung Ihrer Domäne beeinträchtigt werden.

Überprüfen Sie dann Ihren Schwellenwert mit dem folgenden Befehl:

GET/YOURINDEXNAME/_settings?pretty

OpenSearch Service protokolliert alle Abfragen, die den definierten Schwellenwert überschreiten.

Bewährte Methoden

  • Vermeiden Sie es, mehrere Konfigurationsänderungen gleichzeitig vorzunehmen (z. B. das Aktivieren oder Deaktivieren von Protokollen, die auf CloudWatch veröffentlicht werden). Zu viele Konfigurationsänderungen auf einmal lösen mehrere Blau/Grün-Bereitstellungen aus. Mehrere Blau/Grün-Bereitstellungen können dazu führen, dass die OpenSearch-Service-Domäne in einem Verarbeitungsstatus stecken bleibt. Weitere Informationen zur Blau/Grün-Bereitstellung finden Sie unter Konfigurationsänderungen in OpenSearch Service vornehmen.
  • Legen Sie Ihren Schwellenwert sowohl für die Abfragephase als auch für die Abrufphase fest, um langsame Suchanfragen zu identifizieren.
  • Testen Sie mit einem niedrigen Schwellenwert und erhöhen Sie langsam den Schwellenwert, um nur die Abfragen zu protokollieren, die die Leistung beeinträchtigen oder optimiert werden müssen.
  • Wählen Sie die geeignete Anzahl von Shards für Ihren Cluster aus, um die Clusterleistung zu optimieren. Weitere Informationen zur Shard-Wartung finden Sie unter Bewährte Methoden für Amazon OpenSearch Service.
  • Aktivieren Sie für langsame Protokolle die Protokollierung auf den Debug-Ebenen TRACE, DEBUG, INFO und WARN. Da jede Debug-Ebene verschiedene Informationskategorien protokolliert, empfiehlt es sich, die Protokollierung entsprechend dem Anforderungsstatus zu aktivieren.