MySQL TelemetryとOCI Log Analytics

MySQLサーバー・ログをOCI Log Analyticsにエクスポートします。

Telemetryは、MySQLコマンドライン・クライアントのみに依存するのではなく、OCI Log Analytics Serviceを使用してMySQLサーバー・ログを表示および分析するための便利な方法を提供します。

前提条件

MySQLログをOCI Log Analyticsに送信するための前提条件。

MySQLログをOCI Log Analyticsに送信するには、次のことを確認してください。

  • OCI Log Analyticsサービスへのアクセス権と適切な権限があります。
    ノート

    Log Analyticsは、請求可能なサービスであり、MySQL HeatWaveサービス・サブスクリプションに含まれていないため、個別にアクティブ化する必要があります。詳細は、Log Analyticsを参照してください。
  • 少なくとも1つのLog Analyticsログ・グループを作成しました。これは、MySQLログを格納するために必要です。
  • DB Systemは、MySQLバージョン9.6.1以上を実行します。
  • DB Systemはスタンドアロンです。MySQLログのOCI Log Analyticsへのエクスポートは、現在、高可用性DBシステムまたは読取りレプリカを使用するDBシステムではサポートされていません。
  • DB Systemは、Log AnalyticsにアクセスできないAlways-free層ではありません。
  • ポリシーの説明に従ってIAMポリシーを定義しました。
  • 監査ログにSQL文をログに記録するには、監査ログ・フィルタを定義する必要があります。Audit Log Filteringを参照してください。

MySQLログ

MySQLサーバー・ログをOCI Log AnalyticsまたはカスタムOpenTelemetryエンドポイントにエクスポートします。

次のログをエクスポートできます。

  • エラー・ログ: mysqldの起動時間と停止時間のレコードが含まれます。また、サーバーの起動および停止中およびサーバーの実行中に発生するエラー、警告、ノートなどの診断メッセージも含まれます。
  • スロー・クエリー・ログ: 実行に要した時間が long_query_time秒を超えるSQLステートメントで構成され、少なくとも min_examined_row_limit行を検査する必要があります。スロークエリーログは、実行に長い時間がかかっているため最適化の候補となるクエリーを見つけるために使用できます。
  • 監査ログ: クライアント接続および切断の詳細、および接続中に実行するアクション(アクセスするデータベースや表など)が含まれます。
  • 一般ログ: mysqldが実行している操作の一般的なレコード。サーバーは、クライアントが接続または切断するときこのログに情報を書き込み、クライアントから受け取った各SQLステートメントを記録します。

OCI Log AnalyticsでのMySQLログの表示

構成されたMySQLログは、OCI Log Analyticsログ・エクスプローラで表示できます。

このタスクでは、必要なすべての前提条件を構成済であることを前提としています。
  1. OCI Log Analyticsログ・エクスプローラに移動します。
  2. フィルタで適切なコンパートメントを選択し、「適用」をクリックします。
  3. ログ・ソース表には、Open Telemetry LogsおよびMySQL Database Audit JSON Logs のログ・ソースが表示されます。
    Open Telemetry LogsにはError、GeneralおよびSlow Queryのログが含まれ、MySQL Database Audit JSON Logs にはAudit Logsが含まれます。

MySQL TelemetryおよびOCI Log Analytics表の表示

MySQL TelemetryおよびOCI Log Analyticsテーブルには、エクスポートされたログのモニタリング・データがMySQL Serverのパフォーマンス・スキーマに格納されます。

コマンドライン・クライアントの使用

MySQLクライアントやMySQLシェルなどのコマンドライン・クライアントを使用して、MySQL TelemetryおよびOCI Log Analytics表を表示します。

このタスクでは次が必要です:
  • DBシステムに接続されているMySQLシェルなどのコマンドライン・クライアント。DB Systemへの接続を参照してください。
  1. MySQLシェルの場合は、\sqlコマンドを入力してSQLモードに切り替えます。
  2. 表示する表を指定して、次のSQL文を入力します。
    SELECT * FROM performance_schema.<table_name>;

    たとえば、エクスポートされたログのステータスを表示するには、次のSQLコマンドを使用します。

    SELECT * FROM performance_schema.telemetry_oci_export_status;
    ノート

    表の完全なリストを表示するには、<table_name>で指定できます。MySQL TelemetryおよびOCI Log Analytics表を参照してください。
次のようなレスポンスが返されます:
+--------------+---------------+----------------------+--------------------+------------------------+----------------------+-----------------+--------------------+-----------------------+
| 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 TelemetryおよびOCI Log Analytics表

パフォーマンス・スキーマには、次のMySQL TelemetryおよびOCI Log Analytics表が含まれます。

performance_schema.telemetry_oci_export_statusテーブル

表17-14 telemetry_oci_export_statusパフォーマンス・スキーマ表

カラム 摘要
CHANNEL_NAME OCI Log Analyticsに送信されたログ・タイプを示します。

有効な値は、ERROR_LOGGENERAL_LOGおよびSLOW_LOGです。

SERVICE_STATE ログ・タイプごとにデータが収集されるかどうかを示します。
EXPORT_SUCCESS_COUNT 成功したエクスポートの数を示します。
EXPORT_ERROR_COUNT エクスポートに失敗した回数を示します。
LAST_SUCCESS_TIMESTAMP 最後に成功したエクスポートのタイムスタンプ。
LAST_ERROR_TIMESTAMP 最後に失敗したエクスポートのタイムスタンプ。
LAST_ERROR_CODE 最後に失敗したエクスポートのエラー・コード。
LAST_ERROR_MESSAGE 最後に失敗したエクスポートのエラー・メッセージ。
LAST_ERROR_REQUEST_ID 最後に失敗したエクスポートに対するOCI Log Analytics REST APIコールのリクエストID(存在する場合)。

MySQL TelemetryおよびOCI Log Analyticsステータス変数の表示

MySQL TelemetryおよびOCI Log Analyticsステータス変数は、様々なMySQL TelemetryおよびOCI Log Analyticsコンポーネントのステータスをモニターできる静的インジケータです。これらの変数の値は変更できません。

コマンドライン・クライアントの使用

MySQLクライアントやMySQLシェルなどのコマンドライン・クライアントを使用して、ステータス変数とその値を表示します。

このタスクでは次が必要です:
  • 実行中のDBシステム。
  • DBシステムに接続されているMySQLクライアントやMySQLシェルなどのコマンドライン・クライアント。DB Systemへの接続を参照してください。
ヘルス・モニターの変数を表示するには、次を実行します:
  1. MySQLシェルの場合は、\sqlコマンドを入力してSQLモードに切り替えます。
  2. 次のSQL文を入力します。
    show status like '<variable_name>';

    次に例を示します。

    show status like 'telemetry_oci.run_level';
次のようなレスポンスが返されます:
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| telemetry_oci.run_level | CONFIGURE |
+-------------------------+-----------+

MySQL TelemetryおよびOCI Log Analyticsのステータス変数

表17-15 MySQL TelemetryおよびOCI Log Analyticsのステータス変数

システム変数 摘要 可能な値
log_offload.log_analytics_last_error_code 最後に失敗したエクスポートのエラー・コード。 文字列値
log_offload.log_analytics_last_error_message 最後に失敗したエクスポートのエラー・メッセージ。 文字列値
log_offload.log_analytics_last_error_opc_request_id 最後に失敗したエクスポートのOCI Log Analytics REST APIコールのリクエストID。 次の例のような文字列値: /C8DBC62DADE6ECAC222ABF9CAABBC11C/13B10A00F071D7C39DAE333C3CB0DCD8
log_offload.log_analytics_last_error_timestamp 最後に失敗したエクスポートのタイムスタンプ。 次の例のような6マイクロ秒の小数点を持つローカル時間を示す文字列値: 2025-01-29 04:46:44.009907
log_offload.log_analytics_ops_skipped エクスポートからスキップされたファイルの数を示します。 整数値。
telemetry_oci.exports_failed_error_log エラー・ログの失敗したエクスポートの数を示します。 整数値。
telemetry_oci.exports_failed_general_log 一般ログの失敗したエクスポートの数を示します。 整数値。
telemetry_oci.exports_failed_slow_log 一般ログの失敗したエクスポートの数を示します。 整数値。
telemetry_oci.exports_success_error_log エラー・ログの正常なエクスポートの数を示します。 整数値。
telemetry_oci.exports_success_general_log 一般ログの正常なエクスポートの数を示します。 整数値。
telemetry_oci.exports_success_slow_log 低速ログの正常なエクスポートの数を示します。 整数値。
telemetry_oci.run_level コンポーネントの状態を示します。
  • BOOT: コンポーネントがロードされ、初期化が開始されました。この状態は一時的なものです。
  • CONFIGURE: コンポーネントの構成準備が完了しました。
  • READY: 構成が正常に完了しました。
  • FAILED: 構成に失敗しました。
  • UNINSTALL: コンポーネントをアンインストールしてからアンロードしています。