はじめに
Docker Composeを使って、ローカルにElastic StackのうちElasticsearch、Logstash、Kibanaを構築していきたいと思います。
Elastic stackとは
Elastic Stackとは、Elasticsearch、Logstash、Kibana、Beatsで構成されるElasticのプロダクト群です。
下記のページを見ると、ELK StackはElasticsearch、Logstash、Kibanaの集まりのことを指し、そこにBeatsが加わったことでElastic Stackと呼ぶようになったようです。
Elastic Stackのプロダクトのそれぞれの用途は下記になります。
プロダクト | 用途 |
---|---|
Elasticsearch | データの格納、検索/分析エンジン |
Logstash | ログを処理する投入パイプライン |
Kibana | 可視化 |
Beats | データ送信 |
処理の順番のイメージは下記のようになります。
Docker Composeで構築
Docker ComposeでElasticsearch、Logstash、Kibanaを構築していきます。
docker-elk
Elastic StackをDocker Composeで構築する場合は、下記のリポジトリを利用するのが便利です。
起動
まずは、docker-elkのリポジトリをクローンしてきます。
git clone [email protected]:deviantony/docker-elk.git
cd docker-elk
デフォルトでElasticsearch、Logstash、Kibanaが使えるように設定されているので、そのままDocker Composeで起動します。
docker-compose up -d
Kibanaにログイン
ブラウザからhttp://localhost:5601
にアクセスして、Kibanaにログインしてみます。
デフォルトのユーザー情報は、下記の通りです。
- ユーザー:
elastic
- パスワード:
changeme
設定ファイル
それぞれの設定ファイルは下記に格納されているので、色々試すことが可能です。
ElasticSearch
elasticsearch/config/elasticsearch.yml
Kibana
kibana/config/kibana.yml
Logstash
logstash/config/logstash.yml
logstash/pipeline/logstash.conf
Macで5000番ポートが使えない場合
Macで起動する場合に、下記のようなエラーが出る場合があります。
ERROR: for docker-elk_logstash_1 Cannot start service logstash: Ports are not available: listen tcp 0.0.0.0:5000: bind: address already in use
ERROR: for logstash Cannot start service logstash: Ports are not available: listen tcp 0.0.0.0:5000: bind: address already in use
こちらはすでにポート5000番が使われていることにより、Logstashが起動できなくなっています。
下記を参照に、AirPlay Receiverの機能をオフにするか、Logstashの利用するポート番号を変更することで、起動することができます。