Logstashは、リアルタイムのパイプライン機能を備えたオープンソースのデータ収集エンジンです。 まず、ログデータをElastic Stackに書き込むために使用されます。 オープンソースコミュニティが発展するにつれて、Logstashは異なるソースからのデータを動的に統合し、選択した宛先にデータを正規化することができます。
たとえば、Java Database Connectivity (JDBC) はAnalyticDB For MySQLにアクセスできます。 logstashのLogstash-output-jdbcプラグインを使用して、後の分析のためにログデータをAnalyticDB for MySQLにインポートできます。 ただし、JDBCは単一のレコードを書き込みます。 JDBCを使用して大量のログデータをAnalyticDB for MySQL data Warehouse Edition (V3.0) に書き込む場合、システムは高い書き込みパフォーマンスを提供しませんが、大量のCPUリソースを消費します。 このコンテキストでは、AnalyticDB for MySQLは、ログデータをanalyticdb for MySQLに集約して書き込むための最適化されたlogstash-ouput-AnalyticDBプラグインを提供します。
logstash-output-analyticdbプラグインは、より低いCPU使用率で、logstash-output-jdbcプラグインの5倍の書き込みパフォーマンスを提供します。
Logstash のインストール
Logstashのインストール方法については、「Logstashのインストール」をご参照ください。
Logstashの設定
configディレクトリにlogstash-analyticdb.conf
という名前の設定ファイルを作成します。 ファイルのカスタム名を指定することもできます。 logstash-analyticdb.conf
には次のコンテンツが含まれています。
入力
{
stdin { }
}
output {
analyticdb {
driver_class => "com.mysql.jdbc.Driver"
connection_string => "jdbc:mysql:// HOSTNAME:PORT/DATABASE?user=USER&password=PASSWORD"
statement => [ "INSERT INTO log (host, timestamp, message) VALUES(?, ?, ?)", "host", "@ timestamp", "message"]
commit_size => 4194304
}
}
connect_string
: AnalyticDB for MySQLへの接続に使用されるURL。文
: INSERT文で宣言された配列。
その他のパラメータ:
max_flush_exceptions
: データ書き込み中に例外が発生した場合に許可される再試行の最大数。 デフォルト値:100skip_exception
: 例外をスキップするかどうかを指定します。 デフォルト値は FALSE です。max_flush_exceptions
で指定された最大再試行回数が試行された後もデータインポートタスクが失敗した場合、例外がスローされてデータインポートが終了します。 このパラメーターをTRUEに設定し、すべての再試行が失敗した場合、例外はスキップされ、ログに書き込まれます。flush_size
: 同時にバッファリングできるデータレコードの最大数。 このパラメーターは、committ_size
パラメーターと組み合わせて使用されます。committ_size
: 同時にバッファリングできるデータの最大量。 このパラメーターは、flush_size
パラメーターと組み合わせて使用されます。 上限に達すると、データ書き込みタスクが送信されます。
構成例は、参考のためだけに提供される。 ビジネスニーズに基づいてlogstash-analyticdb.conf
ファイルを設定する必要があります。 AnalyticDB For MySQLに関連する設定の詳細については、GitHubをご参照ください。 Logstashの設定とルールの詳細については、Logstashのドキュメントを参照してください。
上記のパラメーターを設定すると、設定は完了です。
タスクの開始
Logstashのインストールディレクトリで次のコマンドを実行し、タスクを開始します。bin/logstash -f config/logstash-analyticdb.conf
注意事項
AnalyticDB for MySQLにデータを書き込む前に、次のコマンドを実行してLogstashを最新バージョンにアップグレードすることを推奨します。
bin/logstash-plugin update logstash-output-analyticdb