このトピックでは、Simple Log ServiceコンソールでLogtail設定を作成してMySQLクエリ結果を収集する方法について説明します。
前提条件
Logtail V0.16.0以降はLinuxサーバーにインストールされ、Logtail V1.0.0.8以降はWindowsサーバーにインストールされます。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。
重要Logtailがインストールされているサーバーが、MySQLクエリ結果を収集するMySQLデータベースに接続できることを確認します。
LogtailがインストールされているサーバーのIPアドレスが、MySQLクエリ結果を収集するMySQLデータベースのホワイトリストに追加されます。
ホワイトリストの設定方法の詳細については、「ApsaraDB RDS For MySQLインスタンスのIPアドレスホワイトリストの設定」をご参照ください。
原則
Logtailは、Logtail設定で指定されたSELECTステートメントを定期的に実行し、クエリ結果をSimple Log Serviceにアップロードします。
Logtailがクエリ結果を取得した後、Logtailは結果のCheckPointフィールドの値をLogtailサーバーに保存します。 次回LogtailがSELECTステートメントを実行するとき、LogtailはCheckPointフィールドの値をSELECTステートメントに追加します。 これにより、Logtailは増分データを収集できます。
データ収集中にチェックポイントを使用する場合は、SELECTステートメントのCheckPointフィールドの値を並べ替える必要があります。 そうしないと、データの重複やその他の問題が発生します。
特徴
MySQLデータベースからクエリ結果を収集できます。
ページ化されたクエリ設定を構成できます。
タイムゾーンを指定できます。
タイムアウト期間を指定できます。
CheckPointフィールドの値を保存できます。
SSLがサポートされています。
一度に収集できるログの最大数を指定できます。
シナリオ
自動インクリメントIDや時点などのマークに基づいて増分データを収集します。
フィルター条件に基づいてデータを同期します。
手順
にログインします。Simple Log Serviceコンソール.
クイックデータのインポートセクションで、[データのインポート] をクリックします。 [データのインポート] ダイアログボックスで、[MySQLクエリ結果-プラグイン] をクリックします。
プロジェクトとLogstoreを選択します。 [次へ] をクリックします。
マシングループの設定ステップで、マシングループを設定します。
ビジネス要件に基づいて、シナリオとインストール環境のパラメーターを設定します。
重要マシングループが使用可能かどうかに関係なく、シナリオパラメーターとインストール環境パラメーターを設定する必要があります。 パラメーター設定は、以降の設定に影響します。
[応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。
マシングループ利用可能
[ソースマシングループ] セクションからマシングループを選択します。
マシングループがありません
[マシングループの作成] をクリックします。 マシングループの作成パネルで、パラメーターを設定します。 マシングループ識別子パラメーターをIPアドレスまたはカスタム識別子に設定できます。 詳細については、「カスタム識別子ベースのマシングループの作成」または「IPアドレスベースのマシングループの作成」をご参照ください。
重要マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?
[データソースの設定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 次に、[次へ] をクリックします。
データソースを指定するには、フォーム設定とJSONでのエディター設定のいずれかの方法を使用します。 詳細については、「Logtail設定の詳細」をご参照ください。
インデックスの作成とプレビュー 次に、[次へ] をクリックします。 デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 収集したログのフィールドインデックスを手動で作成するか、[自動インデックス生成] をクリックすることもできます。 その後、Simple Log Serviceはフィールドインデックスを生成します。 詳細については、「インデックスの作成」をご参照ください。
重要ログのすべてのフィールドをクエリする場合は、フルテキストインデックスを使用することを推奨します。 特定のフィールドのみをクエリする場合は、フィールドインデックスを使用することを推奨します。 これは、インデックストラフィックを減らすのに役立ちます。 フィールドを分析する場合は、フィールドインデックスを作成する必要があります。 分析のために、クエリ文にSELECT文を含める必要があります。
[ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。
インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。
Logtail設定の詳細
データソースを指定するには、フォーム設定とJSONでのエディター設定のいずれかの方法を使用します。
フォーム設定
[データソースの設定] ステップで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター | 説明 |
設定名 | Logtail設定の名前。 |
MySQLアドレス | MySQLデータベースのアドレス。 例: |
データベースユーザー名 | MySQLデータベースへのログインに使用されるアカウントのユーザー名。 |
データベースパスワード | MySQLデータベースへのログインに使用されるアカウントのパスワード。 データセキュリティの要件が高い場合は、ユーザー名とパスワードを 重要 Simple Log Serviceコンソールでこのパラメーターを変更すると、変更がサーバーに同期された後、LogtailサーバーのLogtail設定のパラメーター設定が上書きされます。 |
データベース名 | MySQLデータベースの名前。 |
データベース接続タイムアウト期間 | MySQLデータベースへの接続のタイムアウト期間。 単位:ミリ秒。 |
クエリタイムアウト期間 | MySQLデータベースからの読み取りのタイムアウト期間。 単位:ミリ秒。 |
SELECTステートメント | SELECTステートメント。 [チェックポイントの使用] を選択した場合、[チェックポイント列名] パラメーターに指定した列を、selectステートメントパラメーターに指定したSELECTステートメントのWHERE句に含める必要があります。 疑問符 (?) を使用して置換文字を示すことができます。 SELECTステートメントで疑問符 (?) を使用する場合は、CheckPoint Column Nameパラメーターも設定する必要があります。 重要 たとえば、CheckPoint Column Nameパラメーターを |
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データベースのアドレス。 例: デフォルト値: 127.0.0.1:3306 |
ユーザー | String | 課金されません | MySQLデータベースへのログインに使用されるアカウントのユーザー名。 デフォルト値: root。 |
Password | String | 課金されません | MySQLデータベースへのログインに使用されるアカウントのパスワード。 デフォルトでは、このパラメータは空のままです。 データセキュリティの要件が高い場合は、ユーザー名とパスワードを 重要 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パラメーターをid、CheckPointStartパラメーターを0、およびStateMentパラメーターを |
制限事項 | Boolean | 課金されません | LIMIT句を使用してクエリ結果をページ分割するかどうかを指定します。 有効な値:
Limitパラメーターをtrueに設定することを推奨します。 Limitパラメーターをtrueに設定すると、LogtailがSQLステートメントを実行するときにstatementパラメーターに指定するSELECTステートメントにLIMIT句が自動的に追加されます。 |
PageSize | int | 課金されません | 各ページで返すことができるログの最大数。 Limitパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。 |
MaxSyncSize | int | 課金されません | 一度に同期できるログの最大数。 デフォルト値: 0。これは、数値が無制限であることを示します。 |
チェックポイント | Boolean | 課金されません | データ収集時にチェックポイントを使用するかどうかを指定します。 有効な値:
チェックポイントは、次のデータ収集の開始点として使用することができる。 このようにして、増分データが収集される。 |
CheckPointColumn | String | 課金されません | チェックポイントを格納する列の名前。 CheckPointパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。 警告 チェックポイント列の値は増分である必要があります。 そうでなければ、一部のデータは収集されない。 クエリ操作の結果の最大値は、次のクエリ操作の入力として使用されます。 |
CheckPointColumnType | String | 課金されません | チェックポイント列のタイプ。 有効な値: intとtime。 このパラメーターをintに設定すると、チェックポイント列の値はint64型になります。 このパラメーターをtimeに設定した場合、チェックポイント列の値は、MySQLでサポートされている日付、日時、または時刻タイプになります。 CheckPointパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。 |
CheckPointStart | String | 課金されません | チェックポイント列の初期値。 CheckPointパラメーターをtrueに設定した場合、このパラメーターを設定する必要があります。 |
CheckPointSavePerPage | Boolean | 課金されません | クエリ結果がページ分割されるたびにチェックポイントを保存するかどうかを指定します。 有効な値:
|
IntervalMs | int | 課金されます | 同期間隔。 単位:ミリ秒。 デフォルト値: 60000 |
LogtailサーバーのLogtail設定の変更
Logtail設定を作成したときに、[プラグイン設定] フィールドにアドレス、ユーザー、パスワードなどのパラメーターの実際の情報を入力しなかった場合、Logtail設定がLogtailサーバーに配信された後にパラメーターを変更できます。
Linux
Logtailサーバーにログインします。
を検索するFind theservice_mysqlキーワードの/usr/local/ilogtail/user_log_config.jsonファイルのようなパラメータを変更します。住所,ユーザー、およびパスワード.
次のコマンドを実行してLogtailを再起動します。
sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start
Windows
Logtailサーバーにログインします。
を検索するFind theservice_mysqlキーワードのC:\Program Files\Alibaba\Logtail\user_log_config.jsonなどのパラメータを変更します。住所,ユーザー、およびパスワード.
ファイルの場所は、Windows 64ビットオペレーティングシステムとWindows 32ビットオペレーティングシステムで異なります。 詳細については、「ファイルパス」をご参照ください。
次のコマンドを実行してLogtailを再起動します。
を選択します。
[サービス] ダイアログボックスで、管理するサービスを選択します。
Logtail V0.x.x.xの場合は、LogtailWorkerを選択します。
Logtail V1.0.0.0以降の場合は、LogtailDaemonを選択します。
サービスを右クリックし、[開始] 、[停止] 、または [再起動] を選択します。
トラブルシューティング
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"