このトピックでは、MySQL クエリ結果を収集するための Logtail 構成を作成する方法について説明します。
前提条件
Linux サーバーに Logtail V0.16.0 以降がインストールされているか、Windows サーバーに Logtail V1.0.0.8 以降がインストールされている。詳細については、「Logtail のインストール、実行、アップグレード、アンインストール」をご参照ください。
重要Logtail がインストールされているサーバーが MySQL データベースに接続できることを確認してください。
Logtail がインストールされているサーバーの IP アドレスが、MySQL クエリ結果を収集する MySQL データベースのホワイトリストに追加されている。
たとえば、ApsaraDB RDS for MySQL インスタンスのホワイトリストを構成するには、「IP アドレスホワイトリストを構成する」をご参照ください。
CRD-AliyunPipelineConfig を使用して MySQL クエリ結果を収集するには、Logtail コンポーネントがクラスターにインストールされていることを確認してください。
詳細については、「Logtail コンポーネントをインストールする」をご参照ください。
手順
Simple Log Service コンソール
Simple Log Service コンソール にログインします。
表示されるページの右側にある [クイックデータインポート] カードをクリックします。

[データインポート] ページで、[MySQL クエリ結果 - プラグイン] を選択します。
プロジェクトとログストアを選択します。次に、[次へ] をクリックします。
[マシン グループ構成] ステップで、マシン グループを構成します。
必要に応じて、シナリオとインストール環境のパラメーターを構成します。
重要マシン グループが使用可能かどうか に関係なく、シナリオとインストール環境のパラメーターを構成する必要があります。パラメーターの設定は、後続の構成に影響します。
[適用済みサーバー グループ] セクションにマシン グループが表示されていることを確認し、[次へ] をクリックします。
マシン グループが使用可能な場合
[ソース マシン グループ] セクションからマシン グループを選択します。

マシン グループが使用できない場合
[マシン グループの作成] をクリックします。[マシン グループの作成] パネルで、パラメーターを構成します。マシン グループ ID パラメーターを [IP アドレス] または [カスタム ID] に設定できます。詳細については、「カスタム ID ベースのマシン グループを作成する」または「IP アドレスベースのマシン グループを作成する」をご参照ください。
重要マシン グループを作成した直後にマシン グループを適用すると、マシン グループのハートビート ステータスが [失敗] になる場合があります。この問題は、マシン グループが Simple Log Service に接続されていないために発生します。この問題を解決するには、[自動再試行] をクリックします。問題が解決しない場合は、「Logtail でハートビート接続が検出されない場合の対処方法」をご参照ください。
[データ ソースの構成] ステップで、[構成名] パラメーターと [プラグイン構成] パラメーターを構成します。次に、[次へ] をクリックします。
フォームまたはエディター (JSON 構成) を使用してデータ ソースを構成できます。詳細については、「拡張入力構成: MySQL 入力プラグイン」をご参照ください。

インデックスを作成してデータをプレビューし、[次へ] をクリックします。デフォルトでは、Simple Log Service でフルテキストインデックスが有効になっています。収集されたログのフィールド インデックスを手動で作成するか、[自動インデックス生成] をクリックすることもできます。その後、Simple Log Service はフィールド インデックスを生成します。詳細については、「インデックスを作成する」をご参照ください。
重要ログ内のすべてのフィールドをクエリするには、フルテキスト インデックスを使用することをお勧めします。特定のフィールドのみをクエリするには、フィールド インデックスを使用することをお勧めします。これは、インデックストラフィックの削減に役立ちます。フィールドを分析するには、フィールド インデックスを作成します。分析のクエリ文には SELECT 文を含める必要があります。
[ログのクエリ] をクリックします。ログストアのクエリと分析ページにリダイレクトされます。
インデックスが有効になるまで約 1 分待ちます。次に、[未処理ログ] タブで収集されたログを表示します。詳細については、「ログクエリと分析のガイド」をご参照ください。
CRD-AliyunPipelineConfig
このセクションでは、ACK クラスターで収集構成を作成する方法について説明します。
ACK コンソール にログインします。左側のナビゲーション ウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、ターゲット クラスターを見つけます。[アクション] 列で、[その他] をクリックし、[クラスターの管理] をクリックします。
example-k8s-file.yaml という名前のファイルを作成します。
パラメーターの説明
サンプル
apiVersion: telemetry.alibabacloud.com/v1alpha1 # ClusterAliyunPipelineConfig CRD から CR を作成します。 kind: ClusterAliyunPipelineConfig metadata: # リソースの名前。名前は、現在の Kubernetes クラスター内で一意である必要があります。名前は、作成される Logtail 構成の名前と同じです。 name: example-crd-mysql spec: # ログが収集されるプロジェクトを指定します。 project: name: k8s-log-clusterid # ログを格納するログストアを作成します。 logstores: - name: crd-mysql-test # Logtail 構成のパラメーターを構成します。 config: # サンプルログを入力します。このパラメーターは空のままにすることができます。 sample: '' inputs: - Type: service_mysql Address: "rm-*.mysql.rds.aliyuncs.com" CheckPoint: true CheckPointColumn: id CheckPointColumnType: int CheckPointSavePerPage: true CheckPointStart: "0" Database: **** IntervalMs: 1000 Limit: true MaxSyncSize: 100 PageSize: 100 User: **** Password: ******* StateMent: "select * from test where id > ? order by id" # 出力プラグインを構成します。 flushers: # flusher_sls プラグインを使用して、ログを特定のログストアに送信します。 - Type: flusher_sls Logstore: crd-mysql-test Endpoint: cn-hangzhou.log.aliyuncs.com Region: cn-hangzhou TelemetryType: logsタイプ
string(必須)データ ソースのタイプ。service_mysql の値を設定します。
アドレス
string(オプション)MySQL アドレス。例:
rm-****.mysql.rds.aliyuncs.com。デフォルト値: 127.0.0.1:3306。
アドレスタイプ:
内部 (VPC): 同じ VPC 内のインスタンス (ECS インスタンスや ACK インスタンスなど) からの内部アクセスにのみ使用されます。
パブリック エンドポイント: ビジネスが別の VPC またはオンプレミス マシンにデプロイされていて、インターネット経由でインスタンスにアクセスする必要がある場合に使用されます。事前にパブリック エンドポイントを手動で申請する必要があります。詳細については、「パブリックエンドポイントの申請またはリリース」をご参照ください。
説明インターネット経由の接続は変動しやすい傾向があるため、内部読み取り/書き込み分割エンドポイントを使用して RDS インスタンスに接続することをお勧めします。
ユーザー
string(オプション)MySQL データベースにログインするために使用されるアカウントのユーザー名。デフォルト値: root。
パスワード
string(オプション)MySQL データベースにログインするために使用されるアカウントのパスワード。
セキュリティ要件が高い場合は、ユーザー名とパスワードを
xxxに設定することをお勧めします。収集構成がローカル サーバーに同期された後、ローカル サーバーの /usr/local/ilogtail/user_log_config.json ファイルで対応する構成を見つけて、構成を変更します。詳細については、「MySQL クエリ結果を収集する」をご参照ください。重要Simple Log Service コンソールでこのパラメーターを変更すると、変更がサーバーに同期された後、Logtail サーバーの Logtail 構成のパラメーター設定が上書きされます。
データベース
string(オプション)MySQL データベース名。
ダイヤル タイムアウト (ミリ秒)
int(オプション)MySQL データベースへの接続のタイムアウト期間。単位: ミリ秒。デフォルト値: 5000。
読み取りタイムアウト (ミリ秒)
int(オプション)MySQL データベースからの読み取りのタイムアウト期間。単位: ミリ秒。デフォルト値: 5000。
ステートメント
string(オプション)SELECT 文。
CheckPoint を true に設定した場合、Statement の WHERE 条件には CheckPoint 列 (CheckPointColumn) が含まれている必要があります。疑問符 (?) を使用して置換文字を示すことができます。SELECT 文で疑問符 (?) を使用する場合は、CheckPointColumn パラメーターも構成する必要があります。
たとえば、CheckPointColumn を id に設定し、CheckPointStart を 0 に設定し、StateMent を
SELECT * from ... where id > ?に設定した場合、クエリが実行されるたびに、システムは最後のデータ レコードの ID をチェックポイントとして保存します。次のクエリでは、SELECT 文で指定された疑問符 (?) は、保存されたチェックポイントに対応する ID に置き換えられます。制限
boolean(オプション)LIMIT 句を使用してクエリ結果をページ分割するかどうかを指定します。有効な値:
true: LIMIT 句を使用します。
false (デフォルト): LIMIT 句を使用しません。
LIMIT 句を使用してクエリ結果をページ分割することをお勧めします。Limit を true に設定すると、SQL クエリが実行されるときに、システムは SELECT 文に LIMIT 句を自動的に追加します。
ページサイズ
int(オプション)1 ページあたりのエントリ数。Limit を true に設定した場合は、このパラメーターが必要です。
最大同期サイズ
int(オプション)一度に同期できるログの最大数。デフォルト値: 0。制限が課されていないことを示します。
チェックポイント
boolean(オプション)データ収集中にチェックポイントを使用するかどうかを指定します。有効な値:
true: チェックポイントを使用します。
false (デフォルト): チェックポイントを使用しません。
チェックポイントは、次のデータ収集の開始点として使用できます。このようにして、増分データが収集されます。
チェックポイント列
string(オプション)チェックポイントを格納する列の名前。
CheckPoint を true に設定した場合は、このパラメーターが必要です。
警告チェックポイント列の値は増分する必要があります。そうしないと、一部のデータが収集されない場合があります。クエリ操作の結果の最大値が、次のクエリ操作の入力として使用されます。
チェックポイント列タイプ
string(オプション)CheckPoint を true に設定した場合は、このパラメーターが必要です。
CheckPoint 列のデータ型。有効な値: int と time。このパラメーターを int に設定すると、チェックポイント列の値は 64 ビット整数として格納されます。このパラメーターを time に設定すると、チェックポイント列の値は、MySQL でサポートされている date、time、または datetime 型にすることができます。
チェックポイント開始
string(オプション)CheckPoint を true に設定した場合は、このパラメーターが必要です。
チェックポイント列の初期値。
ページごとのチェックポイント保存
boolean(オプション)CheckPoint を true に設定した場合は、このパラメーターが必要です。
クエリ結果がページ分割されるたびにチェックポイントを保存するかどうかを指定します。
true (デフォルト): クエリ結果がページ分割されるたびにチェックポイントを保存します。
false: クエリ結果が同期されるたびにチェックポイントを保存します。
間隔 (ミリ秒)
int(必須)同期間隔。単位: ミリ秒。デフォルト値: 60000。
kubectl apply -f example-k8s-file.yamlを実行します。Logtail は MySQL データの収集を開始します。Simple Log Service コンソール にログインします。[プロジェクト] セクションで、目的のプロジェクトをクリックします。
対応するログストアの右側にある
アイコンをクリックし、[検索と分析] を選択してクエリ ログを表示します。