Docker/K8S実践コンテナ開発入門@25日目
今回はElasticsearchとKibanaを構築してみます。
Elasticsearch, Kibana構築
Elasticsearch・・・検索エンジン、様々なデータ処理に役立つ
Kibana・・・Elasticserachの可視化ツール
まずは、書籍に従って「docker-compose.yaml」と「jvm.options」を作成します。
「jvm.options」はHeapサイズを抑えて軽量な形で作成されるようにしています。
作成後は以下のコマンドでイメージをビルドします。
■コマンド
docker-compose up -d
起動後は正常に起動したかを以下の通り接続して確認してみます。
「status red」となっており、うまくいっていないようです。
「docker-compose.yml」ないのvolumeマウント設定を削除してjvm.optionsの設定を無視して起動してみる。
うーん、うまくいくな。
色々悩んだところ、
jvm.optionsの設定が以下の通り誤っていました。
正:-XX:+UseConcMarkSweepGC
誤:-XX::UseConcMarkSweepGC
vscodeで入力していますが、構文チェックに引っかかってくれないんですね。
ともかく以下の通り接続することは確認できました。
fluentdの構築
fluentdコンテナは、Elasticsearchへ収集したログを転送できるようにするためのもの
こちらは「fluent.conf」で転送先を設定します。
また「Dockerfile」を作成したら以下のコマンドを実行します。
■コマンド
docker image build -t ch08/fluentd-elasticsearch:latest .
fluentd logging driverでコンテナのログを転送
この後、fluentd loggin driverでコンテナのログを転送します。
書籍に従って「docker-compose.yml」を修正し、echoというこの書籍専用アプリとfluentdを追加します。
修正後は再起動と接続確認をします。
■コマンド
//再起動 docker-compose up -d //確認 curl http://localhost:8080
次にログの確認を行うために、以下のコマンドを実行
■コマンド
curl http://localhost:9200/_cat/indices?v zsh: no matches found: http://localhost:9200/_cat/indices?v
エラーが出てうまくいかないですね。どうやら「?」が悪さをしているみたい。
色々調べてみるとquoteで囲ってあげれば解消されるとのことで再度以下の通り実行
■コマンド
curl 'http://localhost:9200/_cat/indices?v' health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open .kibana -Txh4uOtQI-b6VJ7Y9BayA 1 1 1 0 3.2kb 3.2kb yellow open logstash-20200525 OMTsNg0RTkSpXPDwr6ukhg 5 1 12 0 64.4kb 64.4kb
期待通りの結果が取得できました。
この「logstash-yyyymmdd」という部分にログ情報のインデックスが作成されているようです。
「Crate」というボタンを押すことで、以下の通りログの内容も確認できました。
続きは明日以降行います。