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

Simple Log Service:MySQLクエリ結果の収集

最終更新日:Aug 21, 2024

このトピックでは、Simple Log ServiceコンソールでLogtail設定を作成してMySQLクエリ結果を収集する方法について説明します。

前提条件

原則

Logtailは、Logtail設定で指定されたSELECTステートメントを定期的に実行し、クエリ結果をSimple Log Serviceにアップロードします。

Logtailがクエリ結果を取得した後、Logtailは結果のCheckPointフィールドの値をLogtailサーバーに保存します。 次回LogtailがSELECTステートメントを実行するとき、LogtailはCheckPointフィールドの値をSELECTステートメントに追加します。 これにより、Logtailは増分データを収集できます。

重要

データ収集中にチェックポイントを使用する場合は、SELECTステートメントのCheckPointフィールドの値を並べ替える必要があります。 そうしないと、データの重複やその他の問題が発生します。

image

特徴

  • MySQLデータベースからクエリ結果を収集できます。

  • ページ化されたクエリ設定を構成できます。

  • タイムゾーンを指定できます。

  • タイムアウト期間を指定できます。

  • CheckPointフィールドの値を保存できます。

  • SSLがサポートされています。

  • 一度に収集できるログの最大数を指定できます。

シナリオ

  • 自動インクリメントIDや時点などのマークに基づいて増分データを収集します。

  • フィルター条件に基づいてデータを同期します。

手順

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

  2. クイックデータのインポートセクションで、[データのインポート] をクリックします。 [データのインポート] ダイアログボックスで、[MySQLクエリ結果-プラグイン] をクリックします。

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

  4. マシングループの設定ステップで、マシングループを設定します。

    1. ビジネス要件に基づいて、シナリオとインストール環境のパラメーターを設定します。

      重要

      マシングループが使用可能かどうかに関係なく、シナリオパラメーターとインストール環境パラメーターを設定する必要があります。 パラメーター設定は、以降の設定に影響します。

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

      マシングループ利用可能

      [ソースマシングループ] セクションからマシングループを選択します。

      image

      マシングループがありません

      [マシングループの作成] をクリックします。 マシングループの作成パネルで、パラメーターを設定します。 マシングループ識別子パラメーターをIPアドレスまたはカスタム識別子に設定できます。 詳細については、「カスタム識別子ベースのマシングループの作成」または「IPアドレスベースのマシングループの作成」をご参照ください。

      重要

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

  5. [データソースの設定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 次に、[次へ] をクリックします。

    データソースを指定するには、フォーム設定とJSONでのエディター設定のいずれかの方法を使用します。 詳細については、「Logtail設定の詳細」をご参照ください。

  6. インデックスの作成プレビュー 次に、[次へ] をクリックします。 デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 収集したログのフィールドインデックスを手動で作成するか、[自動インデックス生成] をクリックすることもできます。 その後、Simple Log Serviceはフィールドインデックスを生成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログのすべてのフィールドをクエリする場合は、フルテキストインデックスを使用することを推奨します。 特定のフィールドのみをクエリする場合は、フィールドインデックスを使用することを推奨します。 これは、インデックストラフィックを減らすのに役立ちます。 フィールドを分析する場合は、フィールドインデックスを作成する必要があります。 分析のために、クエリ文にSELECT文を含める必要があります。

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

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

Logtail設定の詳細

データソースを指定するには、フォーム設定とJSONでのエディター設定のいずれかの方法を使用します。

フォーム設定

[データソースの設定] ステップで、パラメーターを設定します。 下表に、各パラメーターを説明します。

パラメーター

説明

設定名

Logtail設定の名前。

MySQLアドレス

MySQLデータベースのアドレス。 例: rm-**** .mysql.rds.aliyuncs.com

データベースユーザー名

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

データベースパスワード

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

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

重要

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

データベース名

MySQLデータベースの名前。

データベース接続タイムアウト期間

MySQLデータベースへの接続のタイムアウト期間。 単位:ミリ秒。

クエリタイムアウト期間

MySQLデータベースからの読み取りのタイムアウト期間。 単位:ミリ秒。

SELECTステートメント

SELECTステートメント。

[チェックポイントの使用] を選択した場合、[チェックポイント列名] パラメーターに指定した列を、selectステートメントパラメーターに指定したSELECTステートメントのWHERE句に含める必要があります。 疑問符 (?) を使用して置換文字を示すことができます。 SELECTステートメントで疑問符 (?) を使用する場合は、CheckPoint Column Nameパラメーターも設定する必要があります。

重要

たとえば、CheckPoint Column Nameパラメーターをidに、CheckPoint Columnの初期値パラメーターを0に、SELECTステートメントパラメーターをSELECT * FROM xxx WHERE ID > ? に設定します。 LogtailがSELECTステートメントを実行するたびに、システムは最後のデータレコードのIDをチェックポイントとして保存します。 次回LogtailがSELECTステートメントを実行すると、SELECTステートメントで指定された疑問符 (?) が、保存されたチェックポイントに対応するIDに置き換えられます。

LIMIT句を使用したページングクエリの実行

LIMIT句を使用してクエリ結果をページ分割するかどうかを指定します。

[LIMIT句を使用してページングクエリを実行する] を選択することを推奨します。 [LIMIT句を使用してページングクエリを実行する] を選択した場合、LogtailがSQLステートメントを実行するときにselectステートメントパラメーターに指定するSELECTステートメントにLIMIT句が自動的に追加されます。

ページサイズ

各ページで返すことができるログの最大数。

[LIMIT句を使用してページングクエリを実行する] を選択した場合、このパラメーターを設定する必要があります。

同期あたりの最大レコード数

一度に同期できるログの最大数。 デフォルト値: 0。これは、数値が無制限であることを示します。

チェックポイントの使用

データ収集時にチェックポイントを使用するかどうかを指定します。 [チェックポイントを使用] を選択した場合、データ収集時にチェックポイントが使用されます。 チェックポイントは、次のデータ収集の開始点として使用することができる。 このようにして、増分データが収集される。

チェックポイント列名

チェックポイントを格納する列の名前。

[チェックポイントの使用] を選択した場合、このパラメーターを設定する必要があります。

警告

チェックポイント列の値は増分である必要があります。 そうでなければ、一部のデータは収集されない。 クエリ操作の結果の最大値は、次のクエリ操作の入力として使用されます。

チェックポイント列のデータ型

チェックポイント列のタイプ。 有効な値: intとtime。 このパラメーターをintに設定すると、チェックポイント列の値はint64型になります。 このパラメーターをtimeに設定した場合、チェックポイント列の値は、MySQLでサポートされている日付、日時、または時刻タイプになります。

[チェックポイントの使用] を選択した場合、このパラメーターを設定する必要があります。

チェックポイント列の初期値

チェックポイント列の初期値。

[チェックポイントの使用] を選択した場合、このパラメーターを設定する必要があります。

ページごとにチェックポイントを保存

[ページごとにチェックポイントを保存] を選択した場合、クエリ結果がページ付けされるたびにチェックポイントが保存されます。 [ページごとにチェックポイントを保存] を選択しない場合、クエリ結果が同期されるたびにチェックポイントが保存されます。

同期時間

同期間隔。 単位:ミリ秒。

JSONでのエディター設定

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

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

    重要

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

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

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

{
  "inputs": [
    {
      "type": "service_mysql",
      "detail": {
        "Address": "************.mysql.rds.aliyuncs.com",
        "User": "****",
        "Password": "*******",
        "DataBase": "****",
        "Limit": true,
        "PageSize": 100,
        "StateMent": "select * from db.VersionOs where time > ?",
        "CheckPoint": true,
        "CheckPointColumn": "time",
        "CheckPointStart": "2018-01-01 00:00:00",
        "CheckPointSavePerPage": true,
        "CheckPointColumnType": "time",
        "IntervalMs": 60000
      }
    }
  ]
}

パラメーター

データ型

必須

説明

タイプ

String

課金されます

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

アドレス

String

課金されません

MySQLデータベースのアドレス。 例: rm-**** .mysql.rds.aliyuncs.com

デフォルト値: 127.0.0.1:3306

ユーザー

String

課金されません

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

Password

String

課金されません

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

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

重要

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

データベース

String

課金されません

MySQLデータベースの名前。

DialTimeOutMs

int

課金されません

MySQLデータベースへの接続のタイムアウト期間。 単位:ミリ秒。 デフォルト値: 5000。

ReadTimeOutMs

int

課金されません

MySQLデータベースからの読み取りのタイムアウト期間。 単位:ミリ秒。 デフォルト値: 5000。

StateMent

String

課金されません

SELECTステートメント。

CheckPointパラメーターをtrueに設定した場合、statementパラメーターに指定したSELECTステートメントのWHERE句に、CheckPointColumnパラメーターに指定した列を含める必要があります。 疑問符 (?) を使用して置換文字を示すことができます。 SELECTステートメントで疑問符 (?) を使用する場合は、CheckPointColumnパラメーターも設定する必要があります。

たとえば、CheckPointColumnパラメーターをidCheckPointStartパラメーターを0、およびStateMentパラメーターをSELECT * from... どこid > ?. LogtailがSELECTステートメントを実行するたびに、システムは最後のデータレコードのIDをチェックポイントとして保存します。 次回LogtailがSELECTステートメントを実行すると、SELECTステートメントで指定された疑問符 (?) が、保存されたチェックポイントに対応するIDに置き換えられます。

制限事項

Boolean

課金されません

LIMIT句を使用してクエリ結果をページ分割するかどうかを指定します。 有効な値:

  • true

  • false (デフォルト)

Limitパラメーターをtrueに設定することを推奨します。 Limitパラメーターをtrueに設定すると、LogtailがSQLステートメントを実行するときにstatementパラメーターに指定するSELECTステートメントにLIMIT句が自動的に追加されます。

PageSize

int

課金されません

各ページで返すことができるログの最大数。 Limitパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。

MaxSyncSize

int

課金されません

一度に同期できるログの最大数。 デフォルト値: 0。これは、数値が無制限であることを示します。

チェックポイント

Boolean

課金されません

データ収集時にチェックポイントを使用するかどうかを指定します。 有効な値:

  • true

  • false (デフォルト)

チェックポイントは、次のデータ収集の開始点として使用することができる。 このようにして、増分データが収集される。

CheckPointColumn

String

課金されません

チェックポイントを格納する列の名前。

CheckPointパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。

警告

チェックポイント列の値は増分である必要があります。 そうでなければ、一部のデータは収集されない。 クエリ操作の結果の最大値は、次のクエリ操作の入力として使用されます。

CheckPointColumnType

String

課金されません

チェックポイント列のタイプ。 有効な値: intとtime。 このパラメーターをintに設定すると、チェックポイント列の値はint64型になります。 このパラメーターをtimeに設定した場合、チェックポイント列の値は、MySQLでサポートされている日付、日時、または時刻タイプになります。

CheckPointパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。

CheckPointStart

String

課金されません

チェックポイント列の初期値。

CheckPointパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。

CheckPointSavePerPage

Boolean

課金されません

クエリ結果がページ分割されるたびにチェックポイントを保存するかどうかを指定します。 有効な値:

  • true (デフォルト): クエリ結果がページ付けされるたびにチェックポイントを保存します。

  • false: クエリ結果が同期されるたびにチェックポイントが保存されます。

IntervalMs

int

課金されます

同期間隔。 単位:ミリ秒。 デフォルト値: 60000

LogtailサーバーのLogtail設定の変更

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

Linux

  1. Logtailサーバーにログインします。

  2. を検索するFind theservice_mysqlキーワードの/usr/local/ilogtail/user_log_config.jsonファイルのようなパラメータを変更します。住所,ユーザー、およびパスワード.

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

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

Windows

  1. Logtailサーバーにログインします。

  2. を検索するFind theservice_mysqlキーワードのC:\Program Files\Alibaba\Logtail\user_log_config.jsonなどのパラメータを変更します。住所,ユーザー、およびパスワード.

    ファイルの場所は、Windows 64ビットオペレーティングシステムとWindows 32ビットオペレーティングシステムで異なります。 詳細については、「ファイルパス」をご参照ください。

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

    1. [スタート] メニュー > [コントロールパネル] > [管理ツール] > [サービス] を選択します。

    2. [サービス] ダイアログボックスで、管理するサービスを選択します。

      • Logtail V0.x.x.xの場合は、LogtailWorkerを選択します。

      • Logtail V1.0.0.0以降の場合は、LogtailDaemonを選択します。

    3. サービスを右クリックし、[開始][停止] 、または [再起動] を選択します。

トラブルシューティング

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

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

このセクションでは、サンプルデータベーステーブルと、Logtailによって収集されるサンプルログを提供します。

  • サンプルデータベース表

    CREATE TABLE `VersionOs` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
      `time` datetime NOT NULL,
      `version` varchar(10) NOT NULL DEFAULT '',
      `os` varchar(10) NOT NULL,
      `count` int(11) unsigned NOT NULL,
      PRIMARY KEY (`id`),
      KEY `timeindex` (`time`)
    )
  • サンプルログ

    "count":  "4"  
    "id:  "721097"  
    "os:  "Windows"  
    "time:  "2022-08-25 13:00:00"  
    "version":  "1.3.0"