MySQL Telemetrie und OCI Log Analytics

Exportiert MySQL-Serverlogs in OCI Log Analytics.

Telemetrie bietet eine praktische Methode zum Anzeigen und Analysieren der MySQL-Serverlogs mit dem OCI Log Analytics Service, anstatt sich ausschließlich auf den MySQL-Befehlszeilenclient zu verlassen.

Voraussetzungen

Voraussetzungen für das Senden von MySQL-Logs an OCI Log Analytics.

Um MySQL-Logs an OCI Log Analytics zu senden, stellen Sie Folgendes sicher:

  • Sie haben Zugriff auf den OCI Log Analytics-Service und die entsprechenden Berechtigungen.
    Hinweis

    Log Analytics ist ein abrechenbarer Service. Er ist nicht in Ihrem MySQL HeatWave Service-Abonnement enthalten und muss separat aktiviert werden. Weitere Informationen finden Sie unter Log Analytics.
  • Sie haben mindestens eine Log Analytics-Loggruppe erstellt. Dies ist zum Speichern der MySQL-Logs erforderlich.
  • Ihr DB-System führt MySQL Version 9.6.1 oder höher aus.
  • Ihr DB-System ist eigenständig. Das Exportieren von MySQL-Logs in OCI Log Analytics wird derzeit nicht von High-Availability-DB-Systemen oder DB-Systemen mit Lesereplikaten unterstützt.
  • Das DB-System ist nicht "Immer kostenlos", da es keinen Zugriff auf Log Analytics hat.
  • Sie haben IAM-Policys wie unter Policys beschrieben definiert.
  • Um SQL-Anweisungen im Auditlog zu protokollieren, müssen Sie Auditlogfilter definieren. Siehe Auditlogfilterung.

MySQL-Logs

Exportiert MySQL-Serverlogs in OCI Log Analytics oder in benutzerdefinierte OpenTelemetry-Endpunkte.

Die folgenden Logs können exportiert werden:

  • Fehlerprotokoll: Enthält einen Datensatz mit mysqld-Start- und -Herunterfahrzeiten. Es enthält auch Diagnosemeldungen wie Fehler, Warnungen und Hinweise, die beim Hoch- und Herunterfahren des Servers und während der Ausführung des Servers auftreten.
  • Langsames Abfragelog: Besteht aus SQL-Anweisungen, deren Ausführung länger als long_query_time Sekunden dauert und die untersucht werden müssen, mindestens min_examined_row_limit Zeilen. Das Log für langsame Abfragen kann verwendet werden, um Abfragen zu finden, die lange dauern und daher zur Optimierung geeignet sind.
  • Auditlog: Enthält Details zur Clientverbindung und zum Trennen der Verbindung und welche Aktionen sie während der Verbindung ausführen, z.B. auf welche Datenbanken und Tabellen sie zugreifen.
  • Allgemeines Protokoll: Eine allgemeine Aufzeichnung dessen, was mysqld tut. Der Server schreibt Informationen in dieses Log, wenn Clients eine Verbindung herstellen oder trennen, und protokolliert jede SQL-Anweisung, die von Clients empfangen wurde.

MySQL-Logs in OCI Log Analytics anzeigen

Sie können die konfigurierten MySQL-Logs im OCI Log Analytics-Log-Explorer anzeigen.

Bei dieser Aufgabe wird davon ausgegangen, dass Sie alle erforderlichen Voraussetzungen konfiguriert haben.
  1. Navigieren Sie zum OCI Log Analytics-Log-Explorer.
  2. Wählen Sie das entsprechende Compartment im Filter aus, und klicken Sie auf "Anwenden".
  3. Die Logquellen Telemetrielogs öffnen und MySQL Database Audit-JSON-Logs werden in der Logquelltabelle angezeigt.
    Telemetrielogs öffnen enthält die Logs "Fehler", "Allgemein" und "Langsame Abfrage". MySQL Database Audit-JSON-Logs enthält die Auditlogs.

MySQL-Telemetrie- und OCI-Log Analytics-Tabelle anzeigen

In der Tabelle "MySQL Telemetrie" und "OCI Log Analytics" werden Überwachungsdaten für exportierte Logs im Performance Schema von MySQL Server gespeichert.

Verwenden eines Befehlszeilenclients

Verwenden Sie einen Befehlszeilenclient wie MySQL-Client oder MySQL Shell, um die MySQL-Telemetrie- und OCI-Log Analytics-Tabelle anzuzeigen.

Diese Aufgabe erfordert Folgendes:
  1. Wechseln Sie bei MySQL Shell in den SQL-Modus, indem Sie den Befehl \sql eingeben.
  2. Geben Sie die folgende SQL-Anweisung ein, und geben Sie die Tabelle an, die Sie anzeigen möchten:
    SELECT * FROM performance_schema.<table_name>;

    Beispiel: Um den Status der exportierten Logs anzuzeigen, verwenden Sie den folgenden SQL-Befehl:

    SELECT * FROM performance_schema.telemetry_oci_export_status;
    Hinweis

    Eine vollständige Liste der Tabellen finden Sie unter <table_name>. Informationen hierzu finden Sie unter MySQL-Telemetrie und OCI-Log Analytics-Tabelle.
Sie erhalten eine ähnliche Antwort wie im folgenden Beispiel:
+--------------+---------------+----------------------+--------------------+------------------------+----------------------+-----------------+--------------------+-----------------------+
| CHANNEL_NAME | SERVICE_STATE | EXPORT_SUCCESS_COUNT | EXPORT_ERROR_COUNT | LAST_SUCCESS_TIMESTAMP | LAST_ERROR_TIMESTAMP | LAST_ERROR_CODE | LAST_ERROR_MESSAGE | LAST_ERROR_REQUEST_ID |
+--------------+---------------+----------------------+--------------------+------------------------+----------------------+-----------------+--------------------+-----------------------+
| ERROR_LOG    | OFF           |                    0 |                  0 | NULL                   | NULL                 | NULL            | NULL               | NULL                  |
| GENERAL_LOG  | OFF           |                    0 |                  0 | NULL                   | NULL                 | NULL            | NULL               | NULL                  |
| SLOW_LOG     | OFF           |                    0 |                  0 | NULL                   | NULL                 | NULL            | NULL               | NULL                  |
+--------------+---------------+----------------------+--------------------+------------------------+----------------------+-----------------+--------------------+-----------------------+                

MySQL-Telemetrie und OCI Log Analytics-Tabelle

Das Performance Schema umfasst die folgende MySQL-Telemetrie- und OCI-Log Analytics-Tabelle:

performance_schema.telemetry_oci_export_status-Tabelle

Tabelle 17-14: Performance-Schematabelle telemetry_oci_export_status

Spalte Beschreibung
CHANNEL_NAME Gibt an, welche Logtypen an OCI Log Analytics gesendet wurden.

Gültige Werte sind: ERROR_LOG, GENERAL_LOG und SLOW_LOG.

SERVICE_STATE Gibt an, ob Daten für jeden Logtyp erfasst werden.
EXPORT_SUCCESS_COUNT Gibt die Anzahl der erfolgreichen Exporte an.
EXPORT_ERROR_COUNT Gibt die Anzahl der nicht erfolgreichen Exporte an.
LAST_SUCCESS_TIMESTAMP Zeitstempel des letzten erfolgreichen Exports.
LAST_ERROR_TIMESTAMP Zeitstempel des letzten nicht erfolgreichen Exports.
LAST_ERROR_CODE Fehlercode des letzten fehlgeschlagenen Exports.
LAST_ERROR_MESSAGE Fehlermeldung des letzten fehlgeschlagenen Exports.
LAST_ERROR_REQUEST_ID Anforderungs-ID des OCI Log Analytics-REST-API-Aufrufs für den letzten nicht erfolgreichen Export, sofern vorhanden.

MySQL-Telemetrie- und OCI-Log Analytics-Statusvariablen anzeigen

MySQL-Telemetrie- und OCI-Log Analytics-Statusvariablen sind statische Indikatoren, mit denen Sie den Status verschiedener MySQL-Telemetrie- und OCI-Log Analytics-Komponenten überwachen können. Sie können die Werte dieser Variablen nicht ändern.

Verwenden eines Befehlszeilenclients

Verwenden Sie einen Befehlszeilenclient wie MySQL-Client oder MySQL Shell, um die Statusvariablen und deren Werte anzuzeigen.

Diese Aufgabe erfordert Folgendes:
Gehen Sie wie folgt vor, um die Variablen des Zustandsmonitors anzuzeigen:
  1. Wechseln Sie bei MySQL Shell in den SQL-Modus, indem Sie den Befehl \sql eingeben.
  2. Geben Sie die folgende SQL-Anweisung ein:
    show status like '<variable_name>';

    Beispiel:

    show status like 'telemetry_oci.run_level';
Sie erhalten eine ähnliche Antwort wie im folgenden Beispiel:
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| telemetry_oci.run_level | CONFIGURE |
+-------------------------+-----------+

MySQL Telemetrie- und OCI Log Analytics-Statusvariablen

Tabelle 17-15: MySQL-Telemetrie- und OCI Log Analytics-Statusvariablen

Systemvariable Beschreibung Mögliche Werte
log_offload.log_analytics_last_error_code Fehlercode des letzten fehlgeschlagenen Exports. Ein Zeichenfolgenwert.
log_offload.log_analytics_last_error_message Fehlermeldung des letzten fehlgeschlagenen Exports. Ein Zeichenfolgenwert.
log_offload.log_analytics_last_error_opc_request_id Anforderungs-ID des OCI Log Analytics-REST-API-Aufrufs für den letzten nicht erfolgreichen Export. Ein Zeichenfolgenwert, ähnlich dem folgenden Beispiel: /C8DBC62DADE6ECAC222ABF9CAABBC11C/13B10A00F071D7C39DAE333C3CB0DCD8
log_offload.log_analytics_last_error_timestamp Zeitstempel des letzten nicht erfolgreichen Exports. Ein Zeichenfolgenwert, der die lokale Zeit mit 6 Mikrosekunden-Dezimalen angibt, ähnlich wie im folgenden Beispiel: 2025-01-29 04:46:44.009907.
log_offload.log_analytics_ops_skipped Gibt die Anzahl der Dateien an, die beim Export übersprungen wurden. Ein ganzzahliger Wert.
telemetry_oci.exports_failed_error_log Gibt die Anzahl der nicht erfolgreichen Exporte für das Fehlerlog an. Ein ganzzahliger Wert.
telemetry_oci.exports_failed_general_log Gibt die Anzahl der nicht erfolgreichen Exporte für das allgemeine Log an. Ein ganzzahliger Wert.
telemetry_oci.exports_failed_slow_log Gibt die Anzahl der nicht erfolgreichen Exporte für das allgemeine Log an. Ein ganzzahliger Wert.
telemetry_oci.exports_success_error_log Gibt die Anzahl der erfolgreichen Exporte für das Fehlerlog an. Ein ganzzahliger Wert.
telemetry_oci.exports_success_general_log Gibt die Anzahl der erfolgreichen Exporte für das allgemeine Log an. Ein ganzzahliger Wert.
telemetry_oci.exports_success_slow_log Gibt die Anzahl der erfolgreichen Exporte für das langsame Log an. Ein ganzzahliger Wert.
telemetry_oci.run_level Gibt den Komponentenstatus an.
  • BOOT: Die Komponente wird geladen, und die Initialisierung wurde gestartet. Dieser Zustand ist vorübergehend.
  • CONFIGURE: Die Komponente ist zur Konfiguration bereit.
  • READY: Die Konfiguration wurde erfolgreich abgeschlossen.
  • FAILED: Konfiguration nicht erfolgreich.
  • UNINSTALL: Die Komponente wird deinstalliert und anschließend entladen.