Elastic Stackって何?
Elastic Stackって何?
「Elastic StackはElastic社が提供しているツールっていうのはわかったけど、どれを使えばいいのかな?公式サイトを見るといっぱい種類があるみたいだけど…。」
おや?もふもふちゃん、なんだかお困りのようです。それもそうですね。Elastic Stackにはたくさん便利ツールがあるのはわかりますが、ログ分析にはどのツールが必要なのかわかりません。この章でElastic Stackを構成するツールには何があり、どのように使えば良いのか一緒にみてみましょう。
Logstash
Logstashは、各環境に散らばっているログを集め、指定した対象に連携できるツールです。ログの連携だけではなく、ログの加工機能も持ち合わせています。コード自体はRuby言語で記載されています。
肝心のどんなログが取り込みできるかですが、ログの出力形式としてよくあるテキストファイルはもちろん、xmlやjsonファイルも対象として指定できます。ファイルの情報以外にもTwitter APIと連携してTwitterのつぶやき情報を取り込む事や、データベース(RDB)に接続して情報を取得する事も可能です。RSDBと連携する際はSQL文を用いて情報を取得するため、欲しい情報だけSQLで取得し、情報を付け足す事も可能です。
ログの出力先は、このあと出てくるElasticsearchだけでなく、プロジェクトの進捗状況管理ツールであるRedmineにも送信できます。取り込んだ情報をCSVファイルとして出力する事や、syslogとして転送することも可能です。利用方法によってはログ解析以上の威力を発揮するツールだと言えます。
Elasticsearch
Elasticsearchは、Javaで作られている分散処理型の検索エンジンです。クラスタ構成を組むことができるのが特徴なので、大規模な環境で検索エンジンとして利用されることがあります。GitHubのリポジトリ情報や、Dockerのコンテナ検索、Facebook上での検索などが導入事例として有名です。
クラスタとは、物理的には複数存在しているにも関わらず、論理的には1つとして見せることができる技術です。処理の負荷分散ができるため、高い性能を求められる環境で多く選択されています。
Kibana
Kibanaは、Elasticsearchに貯めた情報を整形し可視化するツールです。KibanaはJavaScriptで開発されており、Node.js上で実行されています。Google Chrome等のブラウザからKibanaが指定するURLにアクセスすることで、データ情報を表示することができます。
Kibanaでは知りたい情報の件数だけでなく、折れ線グラフ・棒グラフ・円グラフを用いてログの詳細な情報を解析し、色分けして表示することが可能です。グラフの大きさを決める際にコンフィグファイルなどを編集する必要がなく、ブラウザ上での操作で全て完結する仕組みとなっています。また、情報をリアルタイムで閲覧できるため、サーバーのリソース情報をKibanaで常に監視するという使い方もできます。
Beats
BeatsはOSにインストールすることで、機器のデータをElasticsearchやLogstashに転送する簡易的なデータ収集ツールです。例えばネットワークのパケット情報・Windowsのイベントログ・死活監視の情報などを収集可能なため、Logstashでカバーできないような情報を集めてくることができます。例えばMetricbeatを使用することで、CPU使用率やメモリ使用率などサーバー情報を自動で収集し、Kibanaで可視化することができるようになります。
また、センサーデータなどもBeatsを用いて収集できるため、IoT分野でのデータ分析もElastic Stackを用いて行うことができます。
さらにBeatsでは、特定のログであればその収集・Elasticsearchへのデータ連携・Kibanaでの情報分析用グラフの描画までを自動で行うModulesという新機能が登場しました。
X-PackはElasticsearchやKibanaの機能を補完するツール群の総称です。Elasticsearch、Logstash、KIbana、BeatsはOSSなので、自由に利用することができます。対してX-Packはライセンス契約を行わないと利用できません(ただし、期間限定の評価版をインストールすることは可能です)。
以下にX-Packの機能を簡単に紹介します。この本では詳しく扱いませんので、Elastic社のホームページ(https://www.elastic.co/jp/products/x-pack)を参照してください。
・KibanaやElasticsearchへのアクセス制御など、データ保護を行う(Security)
・データ情報の通知をSlackなどに送付する(Alerting)
・Elastic Stackの状態を監視する(Monitoring)
・KibanaのグラフをPDF出力するなど、報告用データを作成する(Reporting)
・Elasticsearch内のデータで、関連性の高いものを紐付ける(Graph)
・取得したデータから基準値を作成し、データの傾向を分析する(Machine Learning)
Elastic Cloud
Elastic CloudはElastic社が提供するクラウド環境です。Elasticsearchの中に大量のデータを保存する場合など、高性能の基盤を準備する必要がある場合に利用すると良いでしょう。Elasticsearchのクラスターを組むことも簡単にできます。
ただしこちらも有償となりますので、この本では詳しく取り扱いません。詳細はElastic社のホームページ(https://www.elastic.co/jp/cloud)を参照してください。
基本的な構成
ログを収集するLogstashまたはBeats、ログを貯めておくElasticsearch、ログを閲覧するKibanaを基本構成として使用します。
(次回につづく)
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Elasticsearchを開発するElastic、最新バージョン5.0とElastic Stackを解説
- Elasticsearch Logstash Kibanaの環境構築
- Elastic大谷氏とマイクロソフト川崎氏が語る Elastic+Azureですべてが可視化される世界
- データを集めて可視化しよう(Twitterのつぶやき履歴編)
- 大切なのは「スケール」すること キーパーソンが語るElasticの2017年
- ElasticsearchのElastic、年次カンファレンスで「全てのコードを公開する」と宣言
- トラブルシューティング
- データを集めて可視化しよう(Beatsを使って情報を集めてみる)
- Elastic、Elasticsearchの新機能、Kubernetesの可視化を発表
- Elastic、アプリケーションパフォーマンスモニタリングを公開