Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
OpenSearch Protokolle mit Amazon CloudWatch Logs überwachen
Amazon OpenSearch Service stellt die folgenden OpenSearch Protokolle über Amazon CloudWatch Logs zur Verfügung:
Search Shard Slow-Logs, Indexing Shard Slow-Logs und Fehlerprotokolle sind nützlich, um Leistungs- und Stabilitätsprobleme zu beheben. Prüfungsprotokolle verfolgen Benutzeraktivitäten zu Compliance-Zwecken. Alle Protokolle sind standardmäßig deaktiviert. Wenn diese Option aktiviert ist, gelten die Standardpreise CloudWatch
Anmerkung
Fehlerprotokolle sind nur für OpenSearch Elasticsearch-Versionen 5.1 und höher verfügbar. Langsame Logs sind für alle Versionen OpenSearch und für Elasticsearch verfügbar.
OpenSearch Verwendet für seine Logs Apache Log4j 2TRACE
,DEBUG
, INFO
WARN
, ERROR
und. FATAL
Wenn Sie Fehlerprotokolle aktivieren, veröffentlicht OpenSearch Service die Protokollzeilen von WARN
ERROR
, und FATAL
bis. CloudWatch OpenSearch Service veröffentlicht auch mehrere Ausnahmen von der DEBUG
Ebene, darunter die folgenden:
-
org.opensearch.index.mapper.MapperParsingException
-
org.opensearch.index.query.QueryShardException
-
org.opensearch.action.search.SearchPhaseExecutionException
-
org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException
-
java.lang.IllegalArgumentException
Fehlerprotokolle können bei der Fehlerbehebung in zahlreichen Situationen helfen, unter anderem:
-
Probleme bei der Kompilierung von Painless-Skripts
-
Ungültige Abfragen
-
Probleme bei der Indizierung
-
Snapshot-Fehler
-
Migrationsfehler beim Indexstatusmanagement
Anmerkung
OpenSearch Der Service protokolliert nicht alle auftretenden Fehler.
Themen
- Aktivieren der Veröffentlichung von Protokollen (Konsole)
- Aktivieren der Veröffentlichung von Protokollen (AWS CLI)
- Aktivieren der Protokollveröffentlichung ()AWS SDKs
- Aktivieren der Veröffentlichung von Protokollen (CloudFormation)
- Schwellenwerte für langsame Suchanfragen festlegen
- Schwellenwerte für Shard Slow Log festlegen
- Langsame Protokolle testen
- Anzeigen von -Protokollen
Aktivieren der Veröffentlichung von Protokollen (Konsole)
Die OpenSearch Servicekonsole ist die einfachste Methode, um die Veröffentlichung von Protokollen zu ermöglichen CloudWatch.
Um die Veröffentlichung von Protokollen in CloudWatch (Konsole) zu aktivieren
-
Rufen Sie die Webseite https://aws.amazon.com
auf und klicken Sie dann auf Sign In to the Console (Bei der Konsole anmelden). -
Wählen Sie unter Analytics Amazon OpenSearch Service aus.
-
Wählen Sie die Domain aus, die Sie aktualisieren möchten.
-
Wählen Sie auf der Registerkarte Protokolle einen Protokolltyp aus und wählen Sie Aktivieren aus.
-
Erstellen Sie eine neue CloudWatch Protokollgruppe oder wählen Sie eine bestehende aus.
Anmerkung
Wenn Sie die mehrere Protokolle aktivieren möchten, sollten Sie jedes Protokoll in einer eigenen Protokollgruppe veröffentlichen. Diese Trennung ermöglicht ein einfacheres Scannen der Protokolle.
-
Wählen Sie eine Zugriffsrichtlinie, die die entsprechenden Berechtigungen enthält, oder erstellen Sie eine Richtlinie mithilfe der JSON von der Konsole bereitgestellten Richtlinien:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "
cw_log_group_arn
:*" } ] }Wir empfehlen Ihnen, die
aws:SourceAccount
- undaws:SourceArn
-Bedingungsschlüssel zur Richtlinie hinzuzufügen, um sich vor dem Problem des verwirrten Stellvertreters zu schützen. Das Quellkonto ist der Eigentümer der Domain und die Quelle ARN ist das Konto ARN der Domain. Ihre Domain muss zum Hinzufügen dieser Bedingungsschlüssel über Service-Software R20211203 oder höher verfügen.Beispielsweise können Sie der Richtlinie den folgenden Bedingungsblock hinzufügen:
"Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region
:account-id
:domain/domain-name
" } }Wichtig
CloudWatch Logs unterstützt 10 Ressourcenrichtlinien pro Region. Wenn Sie beabsichtigen, Protokolle für mehrere OpenSearch Dienstdomänen zu aktivieren, sollten Sie eine umfassendere Richtlinie erstellen und wiederverwenden, die mehrere Protokollgruppen umfasst, um zu verhindern, dass dieses Limit erreicht wird. Anweisungen zum Aktualisieren Ihrer Richtlinie finden Sie unter Aktivieren der Veröffentlichung von Protokollen (AWS CLI).
-
Wählen Sie Enable (Aktivieren) aus.
Der Status Ihrer Domain ändert sich von Active (Aktiv) zu Processing (In Verarbeitung). Der Status muss auf Active (Aktiv) zurückgesetzt werden, bevor die Veröffentlichung von Protokollen aktiviert wird. Diese Änderung dauert in der Regel 30 Minuten, kann jedoch je nach Domain-Konfiguration auch länger dauern.
Wenn Sie eines der Shard Slow-Logs aktiviert haben, finden Sie weitere Informationen unterSchwellenwerte für Shard Slow Log festlegen. Wenn Sie Prüfungsprotokolle aktiviert haben, siehe Schritt 2: Aktivieren Sie die Audit-Logs in den OpenSearch Dashboards. Wenn Sie nur Fehlerprotokolle aktiviert haben, müssen Sie keine weiteren Konfigurationsschritte ausführen.
Aktivieren der Veröffentlichung von Protokollen (AWS CLI)
Bevor Sie die Protokollveröffentlichung aktivieren können, benötigen Sie eine CloudWatch Protokollgruppe. Wenn Sie noch keine Gruppe vorliegen haben, können Sie mit dem folgenden Befehl eine Gruppe erstellen:
aws logs create-log-group --log-group-name
my-log-group
Geben Sie den nächsten Befehl ein, um die Protokollgruppe zu findenARN, und notieren Sie sich diesen dann:
aws logs describe-log-groups --log-group-name
my-log-group
Jetzt können Sie dem OpenSearch Dienst Schreibberechtigungen für die Protokollgruppe erteilen. Sie müssen die Protokollgruppen ARN gegen Ende des Befehls angeben:
aws logs put-resource-policy \ --policy-name my-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com"}, "Action":[ "logs:PutLogEvents","logs:CreateLogStream"],"Resource": "
cw_log_group_arn
:*"}]}'
Wichtig
CloudWatch Logs unterstützt 10 Ressourcenrichtlinien pro Region. Wenn Sie planen, Shard Slow Logs für mehrere OpenSearch Dienstdomänen zu aktivieren, sollten Sie eine umfassendere Richtlinie erstellen und wiederverwenden, die mehrere Protokollgruppen umfasst, um zu verhindern, dass dieses Limit erreicht wird.
Wenn Sie diese Richtlinie zu einem späteren Zeitpunkt überprüfen müssen, verwenden Sie den aws logs
describe-resource-policies
-Befehl. Um die Richtlinie zu aktualisieren, geben Sie denselben aws
logs put-resource-policy
-Befehl für ein neues Richtliniendokument aus.
Schließlich können Sie die Option --log-publishing-options
zum Aktivieren der Veröffentlichung verwenden. Die Syntax für die Option ist identisch für die create-domain
- und update-domain-config
-Befehle.
Parameter | Zulässige Werte |
---|---|
--log-publishing-options |
SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn= |
INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn= |
|
ES_APPLICATION_LOGS={CloudWatchLogsLogGroupArn= |
|
AUDIT_LOGS={CloudWatchLogsLogGroupArn= |
Anmerkung
Wenn Sie die mehrere Protokolle aktivieren möchten, sollten Sie jedes Protokoll in einer eigenen Protokollgruppe veröffentlichen. Diese Trennung ermöglicht ein einfacheres Scannen der Protokolle.
Beispiel
Das folgende Beispiel ermöglicht die Veröffentlichung von Shard Slow-Protokollen für die Suche und Indizierung von Shard Slow für die angegebene Domäne:
aws opensearch update-domain-config \ --domain-name my-domain \ --log-publishing-options "SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group,Enabled=true},INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-other-log-group,Enabled=true}"
Um das Veröffentlichen in zu deaktivieren CloudWatch, führen Sie denselben Befehl mit aus. Enabled=false
Wenn Sie eines der Shard Slow-Logs aktiviert haben, finden Sie weitere Informationen unterSchwellenwerte für Shard Slow Log festlegen. Wenn Sie Prüfungsprotokolle aktiviert haben, siehe Schritt 2: Aktivieren Sie die Audit-Logs in den OpenSearch Dashboards. Wenn Sie nur Fehlerprotokolle aktiviert haben, müssen Sie keine weiteren Konfigurationsschritte ausführen.
Aktivieren der Protokollveröffentlichung ()AWS SDKs
Bevor Sie die Protokollveröffentlichung aktivieren können, müssen Sie zunächst eine CloudWatch Protokollgruppe erstellenARN, ihre Daten abrufen und dem OpenSearch Dienst Schreibberechtigungen für diese Gruppe erteilen. Die entsprechenden Vorgänge sind in der Amazon CloudWatch API Logs-Referenz dokumentiert:
-
CreateLogGroup
-
DescribeLogGroup
-
PutResourcePolicy
Sie können auf diese Operationen zugreifen, indem Sie AWS SDKs
Die AWS SDKs (außer Android und iOSSDKs) unterstützen alle Operationen, die in der Amazon OpenSearch Service API Reference definiert sind, einschließlich der --log-publishing-options
Option für CreateDomain
undUpdateDomainConfig
.
Wenn Sie eines der Shard Slow-Logs aktiviert haben, finden Sie weitere Informationen unterSchwellenwerte für Shard Slow Log festlegen. Wenn Sie nur Fehlerprotokolle aktiviert haben, müssen Sie keine weiteren Konfigurationsschritte ausführen.
Aktivieren der Veröffentlichung von Protokollen (CloudFormation)
In diesem Beispiel erstellen wir eine Protokollgruppe mit dem Namenopensearch-logs
, weisen die entsprechenden Berechtigungen CloudFormation zu und erstellen dann eine Domäne, in der die Protokollveröffentlichung für Anwendungsprotokolle, Shard-Slow-Logs für die Suche und Indexierung von Slow-Logs aktiviert ist.
Bevor Sie die Protokollveröffentlichung aktivieren können, müssen Sie eine CloudWatch Protokollgruppe erstellen:
Resources: OpenSearchLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName:
opensearch-logs
Outputs: Arn: Value: 'Fn::GetAtt': - OpenSearchLogGroup - Arn
Die Vorlage gibt die ARN der Protokollgruppe aus. In diesem Fall hat ARN den Wert arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs
.
Erstellen Sie mithilfe von eine Ressourcenrichtlinie, die dem OpenSearch Dienst Schreibberechtigungen für die Protokollgruppe erteilt: ARN
Resources: OpenSearchLogPolicy: Type: AWS::Logs::ResourcePolicy Properties: PolicyName:
my-policy
PolicyDocument: "{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"es.amazonaws.com\"}, \"Action\":[ \"logs:PutLogEvents\",\"logs:CreateLogStream\"],\"Resource\": \"arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs:*\"}]}"
Erstellen Sie abschließend den folgenden CloudFormation Stack, der eine OpenSearch Dienstdomäne mit Protokollveröffentlichung generiert. Die Zugriffsrichtlinie ermöglicht es dem Benutzer, alle HTTP Anfragen AWS-Konto an die Domäne zu stellen.
Resources: OpenSearchServiceDomain: Type: "AWS::OpenSearchService::Domain" Properties: DomainName:
my-domain
EngineVersion: "OpenSearch_1.0" ClusterConfig: InstanceCount: 2 InstanceType: "r6g.xlarge.search" DedicatedMasterEnabled: true DedicatedMasterCount: 3 DedicatedMasterType: "r6g.xlarge.search" EBSOptions: EBSEnabled: true VolumeSize: 10 VolumeType: "gp2" AccessPolicies: Version: "2012-10-17" Statement: Effect: "Allow" Principal: AWS: "arn:aws:iam::123456789012
:user/es-user" Action: "es:*" Resource: "arn:aws:es:us-east-1:123456789012
:domain/my-domain
/*" LogPublishingOptions: ES_APPLICATION_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012
:log-group:opensearch-logs" Enabled: true SEARCH_SLOW_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012
:log-group:opensearch-logs" Enabled: true INDEX_SLOW_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012
:log-group:opensearch-logs" Enabled: true
Ausführliche Syntaxinformationen finden Sie unter Optionen für die Protokollveröffentlichung im AWS CloudFormation -Benutzerhandbuch.
Schwellenwerte für langsame Suchanfragen festlegen
Protokolle für langsame Suchanfragen
Sie können Logs für langsame Suchanfragen mit Clustereinstellungen angeben. Dies unterscheidet sich von Shard Slow Logs, die Sie mit Indexeinstellungen aktivieren. Sie können beispielsweise die folgenden Einstellungen über Folgendes OpenSearch REST API angeben:
PUT
domain-endpoint
/_cluster/settings { "transient": { "cluster.search.request.slowlog.threshold.warn": "5s", "cluster.search.request.slowlog.threshold.info": "2s" } }
Schwellenwerte für Shard Slow Log festlegen
OpenSearch deaktiviert standardmäßig Shard Slow Logs
Sie können diese Einstellungen beispielsweise wie folgt angeben: OpenSearch REST API
PUT
domain-endpoint
/index
/_settings { "index.search.slowlog.threshold.query.warn": "5s", "index.search.slowlog.threshold.query.info": "2s" }
Langsame Protokolle testen
Um zu testen, ob sowohl die Protokolle für Suchanfragen als auch für Shard Slow erfolgreich veröffentlicht werden, sollten Sie mit sehr niedrigen Werten beginnen, um zu überprüfen, ob die Protokolle auch angezeigt werden CloudWatch, und dann die Schwellenwerte auf sinnvollere Werte erhöhen.
Wenn die Protokolle nicht angezeigt werden, überprüfen Sie Folgendes:
-
Existiert die CloudWatch Protokollgruppe? Überprüfen Sie die CloudWatch Konsole.
-
Hat OpenSearch Service die Rechte, in die Protokollgruppe zu schreiben? Überprüfen Sie die OpenSearch Servicekonsole.
-
Ist die OpenSearch Dienstdomäne für die Veröffentlichung in der Protokollgruppe konfiguriert? Überprüfen Sie die OpenSearch Servicekonsole, verwenden Sie die AWS CLI
describe-domain-config
Option oder rufen SieDescribeDomainConfig
mit einer der folgenden Optionen anSDKs. -
Sind die Schwellenwerte für die OpenSearch Protokollierung so niedrig, dass Ihre Anfragen sie überschreiten?
Verwenden Sie den folgenden Befehl, um die Schwellenwerte für die langsame Protokollierung Ihrer Suchanfrage für eine Domain zu überprüfen:
GET
domain-endpoint
/_cluster/settings?flat_settingsVerwenden Sie den folgenden Befehl, um die Schwellenwerte für das Shard Slow-Log für einen Index zu überprüfen:
GET
domain-endpoint
/index
/_settings?pretty
Wenn Sie Slow-Protokolle für einen Index deaktivieren möchten, setzen Sie alle geänderten Schwellenwerte wieder auf die Standardwerte von -1
zurück.
Wenn Sie die Veröffentlichung CloudWatch über die OpenSearch Service Console deaktivieren oder AWS CLI nicht die Erstellung OpenSearch von Protokollen beenden, sondern nur die Veröffentlichung dieser Protokolle beenden. Überprüfen Sie unbedingt Ihre Indexeinstellungen, falls Sie die Shard Slow-Logs nicht mehr benötigen, und Ihre Domain-Einstellungen, falls Sie die Slow-Logs für Suchanfragen nicht mehr benötigen.
Anzeigen von -Protokollen
Das Anzeigen der Anwendung und die langsame Anmeldung CloudWatch sind wie die Anzeige jedes anderen CloudWatch Protokolls. Weitere Informationen finden Sie unter Protokolldaten anzeigen im Amazon CloudWatch Logs-Benutzerhandbuch.
Hier finden Sie einige Überlegungen zur Anzeige der Protokolle:
-
OpenSearch Service veröffentlicht nur die ersten 255.000 Zeichen jeder Zeile an CloudWatch. Alle verbleibenden Inhalte werden abgeschnitten. Bei Prüfungsprotokollen sind es 10 000 Zeichen pro Nachricht.
-
In CloudWatch haben die Namen der Protokolldatenströme die Suffixe
-index-slow-logs
,,, und-search-slow-logs
-application-logs
,-audit-logs
um den Inhalt leichter zu identifizieren.