データの収集、変換[Logstash]
今月の気になるオープンソース情報(2017年3月号)
OSS研究室 森 彰吾
今回は、Logstashをご紹介します。
Logstashは、Elastic searchの開発元であるElastic社が開発しているオープンソースソフトウェアです。主な特徴としてはログなどのデータの収集・変換を行うことができるということです。
システム管理上、ログというのは扱うのが難しいものです。多すぎるログを管理しきれなかったり、形式の異なるログの解析に困ったり、貯めておくだけで特になにも利用しない・できない、ということはよくあると思います。
Logstashを使うことで、ログなどのデータを集めて、他のシステムと連携しやすい形に変換・出力することで、実現できることが広がります。イメージしやすい内容として、以下の例を挙げることができます。
- Apache HTTP ServerのログをLogstashで解析して、Elasticsearchに保存、統計を取れるようにする
- 特定のログを監視して、メールを送信する
- 一定インターバルでコマンドを実行して、その出力を整形してSyslogに出力する
Logstashの特徴としては、上記の例のようにいろいろなものと組み合わせができるという点です。これはLogstashのデータの読み取り・変換・出力の処理が、すべてプラグインとして提供されているためです。 「入力はファイルから行い」、「変換は正規表現でマッチングし」、「出力はElasticsearchへ」など、用途に合ったプラグインを、処理毎に選択することで、用途が無数に広がっています。
上記の例では、ログファイルやコマンドの出力を扱う方法のみを紹介していますが、Logstashには、比較的新しいサービスやソフトウェアを利用するためのプラグインも存在しています。
例えば、データの入力では、AWSのCloud Watchからイベントを読み取るプラグインや、RabbitMQからイベントを取得するプラグインなどがあります。またデータの出力では、mongodbにデータを保存するためのプラグインや、Zabbixサーバにイベントを送信するプラグイン、Redmineのチケットを作成するプラグインが存在します。
デージーネットでは、Unboundが出力するDNSのクエリログを、Logstashを経由してElasticsearchに格納する検証を行いました。検証結果としては、Elasticsearchにクエリログを保存することができ、そのデータをグラフとして可視化することもできました。可視化することにより、クエリの数や送信元IPアドレ スの数がひと目でわかるようになり、監視用途や状態確認などに利用できるということがわかっています。
Logstashを使って他のシステムと連携することで、データをただ貯めておくだけではなく、監視や統計など様々な用途にデータを活用することができます。ログの有効利用のために、Logstashの導入を検討してはいかがでしょうか?