Log Service コンソールで Logtail 構成を作成し、PostgreSQL のクエリ結果を収集します。
前提条件
-
サーバーに Linux 向けの Logtail 0.16.0 以降、または Windows 向けの Logtail 1.0.0.8 以降がインストールされていること。 詳細については、「Logtail のインストール (Linux)」または「Logtail のインストール (Windows)」をご参照ください。
重要Logtail がインストールされているサーバーがターゲットデータベースに接続できることを確認してください。
-
Logtail がインストールされているサーバーの IP アドレスが PostgreSQL データベースのホワイトリストに追加されていること。
例えば、RDS for PostgreSQL データベースのホワイトリストを設定するには、「ホワイトリストの設定」をご参照ください。
特徴
-
PostgreSQL データベースからのクエリ結果の収集。
-
ページネーション。
-
タイムゾーン設定。
-
タイムアウト設定。
-
チェックポイント状態の永続化。
-
1回の実行で収集されるレコードの最大数を設定可能。
操作手順
Simple Log Service コンソールにログインします。
-
データのインポート セクションで、カスタムデータプラグイン を選択します。
-
送信先のプロジェクトと Logstore を選択し、次へ をクリックします。
[マシングループ設定] ステップで、マシングループを設定します。
必要に応じて、シナリオとインストール環境のパラメーターを設定します。
重要マシングループが利用可能かどうかにかかわらず、シナリオとインストール環境のパラメーターを設定する必要があります。 パラメーター設定は後続の設定に影響します。
[適用済みサーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。
マシングループが利用可能な場合
[ソースマシングループ] セクションからマシングループを選択します。

マシングループが利用できない場合
[マシングループの作成] をクリックします。[マシングループの作成] パネルで、パラメーターを設定します。マシングループ識別子パラメーターを [IP アドレス] または [カスタム識別子] に設定できます。詳細については、「カスタム識別子ベースのマシングループを作成する」または「IP アドレスベースのマシングループを作成する」をご参照ください。
重要マシングループを作成した直後に適用すると、マシングループのハートビートステータスが [FAIL] になることがあります。 この問題は、マシングループが Simple Log Service に接続されていないために発生します。 この問題を解決するには、[自動リトライ] をクリックします。 問題が解決しない場合は、「Logtail でハートビート接続が検出されない場合の対処方法」をご参照ください。
-
データソースの設定 タブで、設定名 と プラグイン設定 を設定し、次へ をクリックします。
-
inputs は必須であり、Logtail 構成のデータソース設定に使用されます。
重要inputs では、1種類のデータソースしか指定できません。
-
processors は任意であり、Logtail 構成のデータ処理設定に使用され、データを解析します。 1つ以上の処理メソッドを指定できます。
ご利用のログが inputs の設定のみでは解析できない場合、[プラグイン設定] フィールドでプロセッサを設定して、データ処理用のプラグインを追加できます。 例えば、フィールドの抽出、ログ時間の抽出、データのマスク、ログのフィルタリングなどです。 詳細については、「データ処理のための Logtail プラグイン」をご参照ください。
{ "inputs": [ { "type": "service_pgsql", "detail": { "Address": "pgm-****.pg.rds.aliyuncs.com", "User": "****", "Password": "*******", "DataBase": "****", "Limit": true, "PageSize": 100, "StateMent": "select * from specialalarmtest where id > $1 order by id", "CheckPoint": true, "CheckPointColumn": "id", "CheckPointStart": "0", "CheckPointSavePerPage": true, "CheckPointColumnType": "int", "IntervalMs": 1000 } } ] }パラメーター
型
必須
説明
type
string
はい
データソースの型。 値を service_pgsql に設定します。
Address
string
いいえ
PostgreSQL データベースのエンドポイント。 例:
pgm-****.pg.rds.aliyuncs.com。デフォルト値:127.0.0.1:5432。
User
string
いいえ
PostgreSQL データベースのユーザー名。
デフォルト値:root。
Password
string
いいえ
指定されたユーザー名のパスワード。 設定しない場合、パスワードは使用されません。
機密性の高い認証情報については、ユーザー名とパスワードを
xxxに設定することを推奨します。 Logtail 構成がローカルマシンに同期された後、ローカルファイル /usr/local/ilogtail/user_log_config.json で構成を見つけて更新します。 詳細については、「ローカル設定の変更」をご参照ください。重要コンソールでこのパラメーターを変更すると、同期中にローカル設定が上書きされます。
DataBase
string
いいえ
PostgreSQL データベース名。
DialTimeOutMs
int
いいえ
PostgreSQL データベースの接続タイムアウト。 単位:ミリ秒 (ms)。
デフォルト値:5,000 ms。
ReadTimeOutMs
int
いいえ
PostgreSQL データベースからのクエリ結果の読み取りタイムアウト。 単位:ms。
デフォルト値:5,000 ms。
StateMent
string
いいえ
SELECT 文。
CheckPoint を true に設定した場合、StateMent の SELECT 文の WHERE 句には、チェックポイント列 (CheckPointColumn パラメーター) を含め、その値を $1 に設定する必要があります。 例:CheckPointColumn を id に設定した場合、StateMent を
SELECT * from ... where id > $1に設定します。Limit
boolean
いいえ
ページネーションに LIMIT を使用するかどうか。
デフォルト値:false (ページネーション無効)。
ページネーションを有効にすることを推奨します。 Limit を true に設定すると、SQL クエリの実行時に StateMent に LIMIT 句が自動的に追加されます。
PageSize
int
いいえ
ページサイズ。 Limit が true に設定されている場合に必須です。
MaxSyncSize
int
いいえ
1回の実行で収集されるレコードの最大数。
デフォルト値:0 (制限なし)。
CheckPoint
boolean
いいえ
チェックポイントを使用するかどうか。
デフォルト値:false。
CheckPointColumn
string
いいえ
チェックポイント列名。
このパラメーターは CheckPoint が true に設定されている場合に必須です。
警告この列の値は増分でなければなりません。 そうでない場合、収集中にデータ損失が発生する可能性があります。 各クエリ結果の最大値が、次のクエリの入力として使用されます。
CheckPointColumnType
string
いいえ
チェックポイント列のデータの型。 有効な値:
intとtime。int型は int64 として保存されます。time型は PostgreSQL の時間データ型をサポートします。このパラメーターは CheckPoint が true に設定されている場合に必須です。
CheckPointStart
string
いいえ
初期チェックポイント値。
このパラメーターは CheckPoint が true に設定されている場合に必須です。
CheckPointSavePerPage
boolean
いいえ
各ページが収集された後にチェックポイントを保存するかどうか。
-
true:各ページの後にチェックポイントを保存します。
-
false:各収集サイクルの後にチェックポイントを保存します。
IntervalMs
int
はい
収集間隔。 単位:ms。
-
インデックスを作成してデータをプレビューし、[次へ] をクリックします。 デフォルトでは、Simple Log Service でフルテキストインデックス作成が有効になっています。 収集したログのフィールドインデックスを手動で作成するか、[インデックス自動生成] をクリックすることもできます。 その後、Simple Log Service がフィールドインデックスを生成します。 詳細については、「インデックスの作成」をご参照ください。
重要ログのすべてのフィールドをクエリしたい場合は、フルテキストインデックスを使用することを推奨します。 特定のフィールドのみをクエリしたい場合は、フィールドインデックスを使用することを推奨します。 これにより、インデックストラフィックを削減できます。 フィールドを分析したい場合は、フィールドインデックスを作成する必要があります。 分析には、クエリ文に SELECT 文を含める必要があります。
-
ログ照会 をクリックして、Logstore のクエリ・分析ページに移動します。
インデックスが有効になるまで約1分待つ必要がある場合があります。 その後、Rawデータ タブで収集されたログを表示できます。 詳細については、「ログのクエリと分析のクイックスタート」をご参照ください。
ローカル設定の変更
プラグイン設定 で `Address`、`User`、`Password` などのパラメーターに実際の値を入力しなかった場合、Logtail 構成がサーバーに適用された後に手動で変更できます。
Linux
-
Logtail がインストールされているサーバーにログインします。
-
/usr/local/ilogtail/user_log_config.json ファイルを開き、service_pgsql を検索して、Address、User、Password などのフィールドを変更します。
-
次のコマンドを実行して Logtail を再起動します。
sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start
Windows
-
Logtail がインストールされているサーバーにログインします。
-
C:\Program Files\Alibaba\Logtail\user_log_config.json ファイルを開き、service_pgsql を検索して、Address、User、Password などのフィールドを変更します。
ファイルパスは 64 ビットと 32 ビットの Windows オペレーティングシステムで異なります。 詳細については、「ファイルパス」をご参照ください。
-
Logtail を再起動します:
を選択します。
[サービス] ダイアログボックスで、管理するサービスを選択します。
Logtail V0.x.x.x の場合は、LogtailWorker を選択します。
Logtail V1.0.0.0 以降の場合は、LogtailDaemon を選択します。
サービスを右クリックし、[開始]、[停止]、または [再起動] を選択します。
トラブルシューティング
Logtail を設定してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、「Logtail の収集エラーのトラブルシューティング」をご参照ください。
データベーステーブルとログのサンプル
以下に、PostgreSQL のテーブルスキーマのサンプルと、Logtail によって収集されたログの例を示します。
-
テーブルスキーマのサンプル
// テーブルを作成します。 CREATE TABLE IF NOT EXISTS specialalarmtest ( id BIGSERIAL NOT NULL, time TIMESTAMP NOT NULL, alarmtype varchar(64) NOT NULL, ip varchar(16) NOT NULL, COUNT INT NOT NULL, PRIMARY KEY (id) ); // データを挿入します。 insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 0); insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 1); insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 2); insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 3); -
ログのサンプル:データを挿入すると、ログクエリは `id` の値が 14、15、16、`count` の値が 1、2、3、`alarmtype` の値が `NO_ALARM`、`ip` の値が `10.10.***.***` の3つのレコードを返します。