すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:MySQLバイナリログの収集 (非推奨)

最終更新日:Aug 21, 2024

このトピックでは、Logtailを使用してMySQLバイナリログを収集する方法について説明します。

重要

Simple Log Serviceは、MySQLバイナリログを収集するためのLogtailプラグインをサポートしなくなりました。 新規ユーザーはMySQLバイナリログを収集するためのLogtail設定を作成できなくなりますが、既存のLogtail設定は影響を受けません。 DataWorksまたはFlinkを使用してMySQLバイナリログを収集することを推奨します。 詳細については、「MySQL connector」および「MySQL data source」をご参照ください。

原則

Logtailは、プライマリMySQLノードと通信するセカンダリMySQLノードとして機能します。 次のリストは、通信プロセスを説明しています。

  1. LogtailはセカンダリMySQLノードとして機能し、ダンプ要求をプライマリMySQLノードに送信します。

  2. プライマリMySQLノードがダンプ要求を受信すると、ノードはバイナリログをLogtailにリアルタイムで送信します。

  3. Logtailは、バイナリログに対してイベント解析、イベントフィルタリング、データ解析などの操作を実行します。 次に、Logtailは解析されたデータをSimple Log Serviceにアップロードします。

实现原理

特徴

  • バイナリログは段階的に収集できます。 これにより、データベースで実行される更新操作に関連するデータを収集できます。 MySQLプロトコルを使用するリレーショナルデータベースサービス (RDS) データベースなど、MySQLデータベースがサポートされます。

  • データベース内のデータをフィルタリングする複数の方法が提供される。

  • バイナリログチェックポイントを設定できます。

  • チェックポイントを使用して、データストレージのステータスを同期できます。

制限事項

  • Logtail V1.0.31以降は、MySQL 8.0データベースからバイナリログを収集できます。

  • MySQLデータベースに対してバイナリログ機能を有効にし、データベースに対してbinlog_formatパラメーターをROWに設定する必要があります。 デフォルトでは、この機能はRDSデータベースに対して有効になっています。

    # Check whether the binary logging feature is enabled.
    mysql> show variables like "log_bin";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin       | ON    |
    +---------------+-------+
    1 row in set (0.02 sec)
    # View the format of binary logs.
    mysql> show variables like "binlog_format";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | binlog_format | ROW   |
    +---------------+-------+
    1 row in set (0.03 sec)
  • Logtailが動作するセカンダリMySQLノードのIDは、データベースに対して一意である必要があります。

  • RDSデータベースの制限:

    • RDSインスタンスをホストするサーバーにLogtailをインストールすることはできません。 インスタンスに接続できるサーバーにLogtailをインストールする必要があります。

    • セカンダリRDSデータベースからバイナリログを収集することはできません。 バイナリログを収集するようにプライマリRDSデータベースを設定する必要があります。

  • データベースバージョンのアップグレード、テーブルスキーマの変更、ディスクの変更などの操作により、データの同期が中断される場合があります。 データ同期が中断された場合は、Logtailのチェックポイントディレクトリを削除し、Logtailを再起動して問題を解決できます。 問題が解決しない場合は、DataWorksまたはFlinkを使用してデータを収集することを推奨します。 デフォルトのチェックポイントディレクトリは /etc/ilogtail/checkpointです。

シナリオ

大量のデータを同期し、高いパフォーマンスを必要とする場合は、Logtailを使用してMySQLバイナリログを収集できます。

  • データベースの増分データをリアルタイムで照会および分析します。

  • データベースで実行される操作を監査します。

  • Simple Log Serviceを使用して、データベースの更新関連データを操作します。 たとえば、データに対してカスタムクエリと分析を実行したり、データを視覚化したり、ストリーム処理のためにデータをダウンストリームノードにプッシュしたり、バッチ処理のためにデータをMaxComputeにインポートしたり、長期保存のためにデータをOSS (Object Storage Service) にインポートしたりできます。

使用上の注意

Logtailのリソース使用量の制限を緩和して、トラフィックの急増に対処し、データリスクを軽減することを推奨します。 制限を超えると、Logtailが強制的に再起動される可能性があります。

/usr/local/ilogtail/ilogtail_config.jsonファイルの関連パラメーターを変更できます。 詳細については、「Logtailの起動パラメーターの設定」をご参照ください。

CPU使用率の制限を2コアに緩和し、メモリ使用率の制限を2,048 MBに緩和できます。 例:

{
    ...
    "cpu_usage_limit":2,
    "mem_usage_limit":2048,

    ...
}

データの信頼性

MySQLサーバーでグローバルトランザクション識別子 (GTID) 機能を有効にし、LogtailをV0.16.15以降にアップグレードすることを推奨します。 これにより、データベースでプライマリ /セカンダリの切り替えがトリガーされた後にデータが繰り返し収集されるのを防ぎ、データの信頼性を確保します。

  • 不完全なデータ収集: LogtailがMySQLサーバーから長期間切断された場合、一部のデータが収集されないことがあります。

    LogtailがプライマリMySQLノードから切断されると、プライマリMySQLノードはバイナリログを生成し続け、期限切れのバイナリログを削除します。 LogtailがプライマリMySQLノードに再接続された後、Logtailはローカルチェックポイントを使用してプライマリMySQLノードからバイナリログを要求します。 ただし、ネットワークの切断が長く続くと、チェックポイント以降に生成されたログが削除される場合があります。 この場合、回復メカニズムがトリガーされます。 このメカニズムは、収集を再開するために、プライマリMySQLノード上の最新のバイナリログを識別します。 チェックポイントと最新のバイナリログの間に生成されたログは収集されません。 これは不完全なデータ収集につながる。

  • 繰り返しデータ収集: プライマリMySQLノードとセカンダリMySQLノードの間でバイナリログのシーケンス番号が一致しない場合にプライマリ /セカンダリの切り替えがトリガーされると、バイナリログが繰り返し収集される可能性があります。

    MySQLデータベースのプライマリ /セカンダリ同期を設定すると、プライマリMySQLノードは自動的にバイナリログをセカンダリノードに同期します。 セカンダリノードは、ログをローカルバイナリログファイルに格納します。 プライマリMySQLノードとセカンダリMySQLノード間でシーケンス番号が一致せず、プライマリ /セカンダリの切り替えがトリガーされた場合、ログは繰り返し収集される可能性があります。 この問題は、チェックポイントメカニズムがバイナリログファイルの名前とファイルのオフセットに基づいているために発生します。

    たとえば、データは、プライマリMySQLノードでは (binlog.100, 4) から (binlog.105, 4) までのチェックポイント範囲にあり、セカンダリMySQLノードでは (binlog.1000, 4) から (binlog.1005, 4) までのチェックポイント範囲にあります。 LogtailはプライマリMySQLノードからデータを取得し、ローカルチェックポイントを (binlog.105, 4) に更新しました。 プライマリ /セカンダリスイッチオーバーがトリガーされ、エラーが発生しなかった場合、Logtailはローカルチェックポイント (binlog.105, 4) に基づいて新しいプライマリMySQLノードからバイナリログを収集し続けます。 ただし、新しいプライマリMySQLノードで (binlog.1000, 4) から (binlog.1005, 4) のチェックポイント範囲にあるデータのシーケンス番号は、Logtailが要求するデータのシーケンス番号よりも大きくなります。 新しいプライマリMySQLノードは、ギャップ範囲内のすべてのデータをLogtailに返します。 これにより、データ収集が繰り返される。

Logtail構成の作成

  1. にログインします。Simple Log Serviceコンソール.

  2. [データのインポート] セクションで、[MySQL BinLog - Plug-In] をクリックします。

  3. プロジェクトとLogstoreを選択します。 そして、[次へ] をクリックします。

  4. マシングループを作成します。

    • マシングループが利用可能な場合は、[既存のマシングループを使用] をクリックします。

    • 使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。

      1. [ECSインスタンス] タブで、[手動でインスタンスを選択] を選択します。 次に、使用するECSインスタンスを選択し、[作成] をクリックします。

        詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。

        重要

        Log Serviceとは異なるAlibaba Cloudアカウント、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーに属するECSインスタンスからログを収集する場合は、Logtailを手動でインストールする必要があります。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。

        Logtailを手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。

      2. Logtailをインストールしたら、[インストールの完了] をクリックします。

      3. [マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。

        Log Serviceでは、IPアドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。 詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。

  5. [応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。

    重要

    マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?

  6. データソースを指定し、次へ.

    JSONのフォーム設定またはエディター設定を使用して、データソースを指定できます。 詳細は、「Logtail設定の詳細」をご参照ください。

  7. データをプレビューし、インデックスを設定し、[次へ] をクリックします。

    デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。

  8. [ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。

    インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。

Logtail設定の詳細

JSONのフォーム設定またはエディター設定を使用して、データソースを指定できます。

フォーム設定

[データソースの指定] ステップで、次のパラメーターを設定します。

パラメーター

説明

設定名

Logtail設定の名前。

データベースホスト

データベースが存在するホストのアドレス。

データベースポート

データベースのポート番号です。

データベースユーザー名

データベースへのログインに使用されるアカウントのユーザー名。

アカウントにデータベースに対する読み取り権限とMySQL REPLICATION権限があることを確認します。 例:

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

DBパスワード

データベースへのログインに使用されるアカウントのパスワード。

データセキュリティの要件が高い場合は、ユーザー名とパスワードをxxxに設定することを推奨します。 Logtail設定がLogtailサーバーに同期されたら、/usr/local/ilogtail/user_log_config.jsonファイルで2つのパラメーターを見つけ、ビジネス要件に基づいて値を変更します。 詳細については、「Logtailサーバーの設定の変更」をご参照ください。

重要

Simple Log Serviceコンソールでこのパラメーターを変更すると、変更がサーバーに同期された後、LogtailサーバーのLogtail設定のパラメーター設定が上書きされます。

サーバーID

Logtailが動作するセカンダリMySQLノードのID。

重要

ServerIDパラメーターの値は、データベースに対して一意である必要があります。 そうでない場合、データの収集に失敗します。

含まれるテーブル

データが収集されるテーブルの名前。 テーブルの正確な名前を指定する場合は、テーブルが属するデータベースの名前とテーブルの名前を含める必要があります。 例: test_db.test_table このパラメーターに正規表現を指定することもできます。

  • 完全一致を実装する場合は、正規表現の先頭に ^ を追加し、末尾に $を追加します。 例: ^ test_db\\.test_table$

  • すべてのテーブルからデータを収集する場合は、.* \.. * を指定します。

  • テーブルの名前が [含まれるテーブル] パラメーターで指定された条件のいずれかを満たさない場合、テーブル内のデータは収集されません。

無視されたテーブル

データが収集されないテーブルの名前。 テーブルの正確な名前を指定する場合は、テーブルが属するデータベースの名前とテーブルの名前を含める必要があります。 例: test_db.test_table このパラメーターに正規表現を指定することもできます。

  • 完全一致を実装する場合は、正規表現の先頭に ^ を追加し、末尾に $を追加します。 例: ^ test_db\\.test_table$

  • テーブルの名前が [無視テーブル] パラメーターで指定された条件のいずれかを満たしている場合、テーブル内のデータは収集されません。

最初のコレクションのバイナリログファイル名

データが最初に収集されるバイナリログファイルの名前。 このパラメーターを設定しないと、Logtailは現在の時点からデータの収集を開始します。

Logtailが特定の位置からデータを収集する場合は、Binary Log File Name of First Collectionパラメーターを、Logtailがデータを収集するバイナリログファイルの名前に設定し、binary log file Offset of First Collectionパラメーターをファイルのオフセットに設定します。 例:

# Set the Binary Log File Name of First Collection parameter to mysql-bin.000063 and set the Binary Log File Offset of First Collection parameter to 0. 
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000063 |       241 |
| mysql-bin.000064 |       241 |
| mysql-bin.000065 |       241 |
| mysql-bin.000066 |     10778 |
+------------------+-----------+
4 rows in set (0.02 sec)
説明

[最初の収集のバイナリログファイル名] パラメーターを設定すると、最初にファイルからデータを収集するときに大量のトラフィックが生成されます。

最初の収集のバイナリログファイルのオフセット

データが最初に収集されるバイナリログファイルのオフセット。

GTIDの追加

Simple Log ServiceにアップロードされるデータにGTIDを追加するかどうかを指定します。 詳細については、「GTID形式とストレージ」をご参照ください。

INSERTイベントの収集

INSERTイベントのデータを収集するかどうかを指定します。

UPDATEイベントの収集

UPDATEイベントのデータを収集するかどうかを指定します。

DELETEイベントの収集

DELETEイベントのデータを収集するかどうかを指定します。

DDLイベントの収集

データ定義言語 (DDL) イベントに関するデータを収集するかどうかを指定します。

説明

[DDLイベントの収集] を選択した場合、[含まれるテーブル] および [無視されるテーブル] パラメーターの値は有効になりません。 値はデータのフィルタリングに使用されます。

エンコード方法

データのエンコード形式。

テキストを文字列に変換

テキスト型のデータを文字列型に変換するかどうかを指定します。

イベントをJSONに圧縮

イベントデータをJSON形式でパックするかどうかを指定します。 イベントをJSONに圧縮するを選択した場合、LogtailはイベントデータをJSON形式のdataフィールドとold_dataフィールドにパックします。 old_dataフィールドは、ROW_UPDATEイベントでのみ使用できます。

たとえば、テーブルには、c1、c2、およびc3という3つの列が含まれます。 [イベントをJSONに圧縮] をオフにすると、ROW_INSERTイベントのデータにはc1c2c3フィールドが含まれます。 [イベントをJSONに圧縮] を選択した場合、Logtailはc1、c2、c3列のすべてのデータをdataフィールドにパックし、フィールド値は {"c1": "..." 、"c2": "..." 、"c3": "..."} 形式になります。

重要

このパラメーターはLogtail V0.16.19以降でのみ使用できます。

イベントメタデータの収集

イベントのメタデータを収集するかどうかを指定します。 バイナリログイベントのメタデータには、event_time、event_log_position、event_size、およびevent_server_idが含まれます。

重要

このパラメーターはLogtail V0.16.21以降でのみ使用できます。

データ変換

データの処理に使用される構成。 たとえば、このパラメーターを設定して、フィールドの抽出、ログ時間の抽出、データのマスク、ログのフィルタリングを行うことができます。 このパラメーターはオプションです。 1つ以上のデータ処理方法を指定できます。 詳細については、「Logtailプラグインを使用したデータ処理」をご参照ください。

JSONでのエディター設定

[プラグインの設定] フィールドで、Logtailの設定に関する情報を指定します。 例:

  • 入力は必須であり、Logtail構成のデータソース設定を構成するために使用されます。

    重要

    inputsに指定できるデータソースの種類は1つだけです。

  • processorsはオプションで、データを解析するLogtail設定のデータ処理設定を設定するために使用されます。 1つ以上の処理方法を指定できます。

    入力の設定のみに基づいてログを解析できない場合は、[プラグイン設定] フィールドでプロセッサを設定して、データ処理用のプラグインを追加できます。 たとえば、フィールドの抽出、ログ時間の抽出、データのマスク、ログのフィルタリングができます。 詳細については、「Logtailプラグインを使用したデータ処理」をご参照ください。

{
 "inputs": [
     {
         "type": "service_canal",
         "detail": {
             "Host": "************.mysql.rds.aliyuncs.com",
             "Port": 3306,
             "User" : "user1",
             "ServerID" : 56321,
             "Password": "*******",
             "IncludeTables": [
                 "user_info\\..*"
             ],
             "ExcludeTables": [
                 ".*\\.\\S+_inner"
             ],
             "TextToString" : true,
             "EnableDDL" : true
         }
     }
 ]
}

パラメーター

データ型

必須

説明

タイプ

String

課金されます

データソースのタイプ。 値をservice_canalに設定します。

ホスト

String

課金されません

データベースが存在するホストのアドレス。 デフォルト値: 127.0.0.1

ポート

int

課金されません

データベースのポート番号です。 デフォルト値: 3306

ユーザー

String

課金されません

データベースへのログインに使用されるアカウントのユーザー名。 デフォルト値: root

アカウントにデータベースに対する読み取り権限とMySQL REPLICATION権限があることを確認します。 例:

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

Password

String

課金されません

データベースへのログインに使用されるアカウントのパスワード。 このパラメーターはデフォルトで空となります。

データセキュリティの要件が高い場合は、ユーザー名とパスワードをxxxに設定することを推奨します。 Logtail設定がLogtailサーバーに同期されたら、/usr/local/ilogtail/user_log_config.jsonファイルで2つのパラメーターを見つけ、ビジネス要件に基づいて値を変更します。 詳細については、「Logtailサーバーの設定の変更」をご参照ください。

重要

Simple Log Serviceコンソールでこのパラメーターを変更すると、変更がサーバーに同期された後、LogtailサーバーのLogtail設定のパラメーター設定が上書きされます。

サーバーID

int

課金されません

Logtailが動作するセカンダリMySQLノードのID。 デフォルト値: 125

重要

ServerIDパラメーターの値は、データベースに対して一意である必要があります。 そうでない場合、データの収集に失敗します。

インクルードテーブル

文字列配列

課金されます

データが収集されるテーブルの名前。 テーブルの正確な名前を指定する場合は、テーブルが属するデータベースの名前とテーブルの名前を含める必要があります。 例: test_db.test_table このパラメーターに正規表現を指定することもできます。

  • 完全一致を実装する場合は、正規表現の先頭に ^ を追加し、末尾に $を追加します。 例: ^ test_db\\.test_table$

  • すべてのテーブルからデータを収集する場合は、.* \.. * を指定します。

  • テーブルの名前がIncludeTablesパラメーターで指定された条件のいずれかを満たさない場合、テーブル内のデータは収集されません。

除外テーブル

文字列配列

課金されません

データが収集されないテーブルの名前。 テーブルの正確な名前を指定する場合は、テーブルが属するデータベースの名前とテーブルの名前を含める必要があります。 例: test_db.test_table このパラメーターに正規表現を指定することもできます。

  • 完全一致を実装する場合は、正規表現の先頭に ^ を追加し、末尾に $を追加します。 例: ^ test_db\\.test_table$

  • テーブルの名前がExcludeTablesパラメーターで指定された条件のいずれかを満たしている場合、テーブル内のデータは収集されません。

StartBinName

String

課金されません

データが最初に収集されるバイナリログファイルの名前。 デフォルトでは、Logtailは現在の時点からデータの収集を開始します。

Logtailが特定の位置からデータを収集する場合は、StartBinNameパラメーターを、Logtailがデータを収集するバイナリログファイルの名前に設定し、StartBinlogPosパラメーターをファイルのオフセットに設定します。 例:

# Set the StartBinName parameter to mysql-bin.000063 and set the StartBinlogPos parameter to 0.
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000063 |       241 |
| mysql-bin.000064 |       241 |
| mysql-bin.000065 |       241 |
| mysql-bin.000066 |     10778 |
+------------------+-----------+
4 rows in set (0.02 sec)
説明

StartBinNameパラメーターを設定すると、最初にファイルからデータを収集したときに大量のトラフィックが生成されます。

StartBinlogPos

int

課金されません

データが最初に収集されるバイナリログファイルのオフセット。 デフォルト値:0

EnableGTID

bool

課金されません

Simple Log ServiceにアップロードされるデータにGTIDを追加するかどうかを指定します。 詳細については、「GTID形式とストレージ」をご参照ください。 有効な値:

  • true (デフォルト)

  • false

EnableInsert

bool

課金されません

INSERTイベントのデータを収集するかどうかを指定します。 有効な値:

  • true (デフォルト)

  • false

EnableUpdate

bool

課金されません

UPDATEイベントのデータを収集するかどうかを指定します。 有効な値:

  • true (デフォルト)

  • false

EnableDelete

bool

課金されません

DELETEイベントのデータを収集するかどうかを指定します。 有効な値:

  • true (デフォルト)

  • false

EnableDDL

bool

課金されません

DDLイベントのデータを収集するかどうかを指定します。 有効な値:

  • true

  • false (デフォルト)

説明

EnableDDLパラメーターをtrueに設定した場合、IncludeTablesおよびExcludeTablesパラメーターの値は有効になりません。 値はデータのフィルタリングに使用されます。

Charset

String

課金されません

データのエンコード形式。 デフォルト値: utf8

TextToString

bool

課金されません

テキスト型のデータを文字列型に変換するかどうかを指定します。 有効な値:

  • true

  • false (デフォルト)

PackValues

bool

課金されません

イベントデータをJSON形式でパックするかどうかを指定します。 PackValuesパラメーターをtrueに設定すると、LogtailはイベントデータをJSON形式のdataフィールドとold_dataフィールドにパックします。 old_dataフィールドは、ROW_UPDATEイベントでのみ使用できます。 有効な値:

  • true

  • false (デフォルト)

たとえば、テーブルには、c1、c2、およびc3という3つの列が含まれます。 PackValuesパラメーターをfalseに設定した場合、ROW_INSERTイベントのデータにはc1c2、およびc3フィールドが含まれます。 PackValuesパラメーターをtrueに設定した場合、Logtailはc1、c2、c3列のすべてのデータをdataフィールドにパックし、フィールド値は {"c1": "..." 、"c2": "..." 、"c3": "..."} 形式になります。

重要

このパラメーターはLogtail V0.16.19以降でのみ使用できます。

EnableEventMeta

bool

課金されません

イベントのメタデータを収集するかどうかを指定します。 バイナリログイベントのメタデータには、event_time、event_log_position、event_size、およびevent_server_idが含まれます。

  • true

  • false (デフォルト)

重要

このパラメーターはLogtail V0.16.21以降でのみ使用できます。

Logtailサーバーの設定を変更する

Logtail設定を作成したときに、[プラグイン設定] フィールドにホスト、ユーザー、パスワードなどのパラメーターの実際の情報を入力しなかった場合、Logtail設定がLogtailサーバーに配信された後にパラメーターを変更できます。

  1. Logtailがインストールされているサーバーにログオンします。

  2. を開きます。Open the/usr/local/ilogtail/user_log_config.jsonファイルを検索し、service_canalなどのパラメータを変更します。ホスト,ユーザー、およびパスワード.

  3. 次のコマンドを実行してLogtailを再起動します。

    sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start

トラブルシューティング

Logtailを使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?

サンプルデータベースのテーブルとログ

たとえば、INSERTUPDATE、およびDELETE操作は、user_infoという名前のデータベース内のspecialalarmという名前のテーブルに対して実行されます。 次の一覧では、テーブルのスキーマ、テーブルで実行される操作、および収集されたログについて説明します。

  • テーブルのスキーマ

    CREATE TABLE `specialalarm` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `time` datetime NOT NULL,
    `alarmtype` varchar(64) NOT NULL,
    `ip` varchar(16) NOT NULL,
    `count` int(11) unsigned NOT NULL,
    PRIMARY KEY (`id`),
    KEY `time` (`time`) USING BTREE,
    KEY `alarmtype` (`alarmtype`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=1;
  • データベース操作

    INSERT、DELETE、およびUPDATE操作を実行します。

    insert into specialalarm (`time`, `alarmType`, `ip`, `count`) values(now(), "NO_ALARM", "10.10.**.***", 55);
    delete from specialalarm where id = 4829235  ;
    update specialalarm set ip = "10.11.***.**" where id = "4829234";

    zc.specialalarmインデックスを作成します。

    ALTER TABLE `zc`.`specialalarm` 
    ADD INDEX `time_index` (`time` ASC);
  • 収集されたログ

    Logtail設定で指定されたLogstoreのクエリおよび分析ページで、各操作で収集されたログを表示できます。 例:

    • INSERTステートメント

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu*****  
      __topic__:    
      _db_:  zc  
      _event_:  row_insert  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:536  
      _host_:  *********.mysql.rds.aliyuncs.com  
      _id_:  113  
      _table_:  specialalarm  
      alarmtype:  NO_ALARM  
      count:  55  
      id:  4829235  
      ip:  10.10.***.***  
      time:  2017-11-01 12:31:41
    • DELETEステートメント

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu****
      __topic__:    
      _db_:  zc  
      _event_:  row_delete  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:537  
      _host_:  *********.mysql.rds.aliyuncs.com  
      _id_:  114  
      _table_:  specialalarm  
      alarmtype:  NO_ALARM  
      count:  55  
      id:  4829235  
      ip:  10.10.**.***
      time:  2017-11-01 12:31:41
    • UPDATEステートメント

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu****  
      __topic__:    
      _db_:  zc  
      _event_:  row_update  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:538  
      _host_:  *********.mysql.rds.aliyuncs.com  
      _id_:  115  
      _old_alarmtype:  NO_ALARM  
      _old_count:  55  
      _old_id:  4829234  
      _old_ip:  10.10.22.133  
      _old_time:  2017-10-31 12:04:54  
      _table_:  specialalarm  
      alarmtype:  NO_ALARM  
      count:  55  
      id:  4829234  
      ip:  10.11.***.***
      time:  2017-10-31 12:04:54
    • DDLステートメント

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu****  
      __topic__:    
      _db_:  zc  
      _event_:  row_update  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:539  
      _host_:  *********.mysql.rds.aliyuncs.com  
      ErrorCode:  0
      ExecutionTime:  0
      Query:  ALTER TABLE `zc`.`specialalarm` 
      ADD INDEX `time_index` (`time` ASC)
      StatusVars:

    項目

    説明

    _host_

    データベースのホスト名。

    _db_

    データベースの名前。

    _テーブル_

    テーブルの名前。

    _event_

    イベントのタイプ。

    _id_

    自動インクリメントID。 IDは0から始まり、バイナリログイベントのデータが収集されるたびに1ずつ増加します。

    _gtid_

    GTID。

    _filename_

    バイナリログファイルの名前。

    _offset_

    バイナリログファイルのオフセット。 値は、COMMIT操作が実行された場合にのみ更新されます。