Docker ComposeでElastic Stackをローカルに構築
はじめに
Docker Composeを使って、ローカルにElastic StackのうちElasticsearch、Logstash、Kibanaを構築していきたいと思います。
Elastic stackとは
Elastic Stackとは、Elasticsearch、Logstash、Kibana、Beatsで構成されるElasticのプロダクト群です。
下記のページを見ると、ELK StackはElasticsearch、Logstash、Kibanaの集まりのことを指し、そこにBeatsが加わったことでElastic Stackと呼ぶようになったようです。
ELK Stack = Elasticsearch、Kibana、Beats、Logstash
Elastic Stackを使えばあらゆるソースから、あらゆるフォーマットでデータを取得でき、リアルタイムに検索、分析、可視化することができます。...
Elastic Stackのプロダクトのそれぞれの用途は下記になります。
プロダクト | 用途 |
---|---|
Elasticsearch | データの格納、検索/分析エンジン |
Logstash | ログを処理する投入パイプライン |
Kibana | 可視化 |
Beats | データ送信 |
処理の順番のイメージは下記のようになります。
Docker Composeで構築
Docker ComposeでElasticsearch、Logstash、Kibanaを構築していきます。
docker-elk
Elastic StackをDocker Composeで構築する場合は、下記のリポジトリを利用するのが便利です。
GitHub - deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.
The Elastic stack (ELK) powered by Docker and Compose. - deviantony/docker-elk
起動
まずは、docker-elkのリポジトリをクローンしてきます。
1git clone [email protected]:deviantony/docker-elk.git
2cd docker-elk
デフォルトでElasticsearch、Logstash、Kibanaが使えるように設定されているので、そのままDocker Composeで起動します。
1docker-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で起動する場合に、下記のようなエラーが出る場合があります。
1ERROR: 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
2
3ERROR: 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の利用するポート番号を変更することで、起動することができます。
Why is Control Center on Monterey … | Apple Developer Forums
参考
- deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.
- Why is Control Center on Monterey … | Apple Developer Forums