概要
過去にES8を試しました
ES9が出たので久しぶりに試してみました
環境
- macOS 15.6.1
- docker 28.4.0
- ElasticSearch 9.0.7
- Kibana 9.0.7
- fluentd 1.19-1
ElasticSearch の起動
-
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es docker.elastic.co/elasticsearch/elasticsearch:9.0.7
パスワードなどの確認や CA 証明書の取得などは同じ流れでした
-
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -a
-
docker cp es:/usr/share/elasticsearch/config/certs/http_ca.crt .
-
curl --cacert http_ca.crt -u elastic https://localhost:9200
Enter host password for user 'elastic':
{
"name" : "528f80bd51ca",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "pBMuWf9vTBuFEj1PHoZiFA",
"version" : {
"number" : "9.0.7",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "c6d8fb31b39450a223671e79141dd1c4b2759b5f",
"build_date" : "2025-09-10T22:06:39.784049935Z",
"build_snapshot" : false,
"lucene_version" : "10.1.0",
"minimum_wire_compatibility_version" : "8.18.0",
"minimum_index_compatibility_version" : "8.0.0"
},
"tagline" : "You Know, for Search"
}
エンロールメントトークンも取得しておきます
-
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana --url "https://localhost:9200"
Kibana 起動
-
docker run -d -p 5601:5601 --name kibana docker.elastic.co/kibana/kibana:9.0.7
Kibana ログイン時に認証コードが必要なので取得しておきます
-
docker exec kibana bin/kibana-verification-code
ログ送信
fluentd コンテナを使って送信します
- vim Dockerfile
FROM fluent/fluentd:v1.19-1
USER root
RUN gem install fluent-plugin-elasticsearch
-
docker build -t my_fluentd .
fluent.conf を作成します
ES9 に接続するには認証情報などが必要になります
ssl_verify=false を設定しないと fluentd -> es で SSL のエラーが発生しました
- vim fluent.conf
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match docker.**>
@type copy
<store>
@type stdout
</store>
<store>
@type elasticsearch
user elastic
password xxx
ca_file /fluentd/etc/http_ca.crt
ssl_verify false
scheme https
host 192.168.1.152
port 9200
logstash_format true
logstash_prefix fluentd
</store>
</match>
@timestamp フィールドを使うので logstash_format: true を設定しています
-
docker run --name fluentd -d -p 24224:24224 -p 24224:24224/udp -v $(pwd):/fluentd/etc -e FLUENTD_CONF=fluent.conf my_fluentd
あとは fluentd にログを投げるコンテナを起動すれば OK です
-
docker run --rm --log-driver=fluentd --log-opt fluentd-address=host.docker.internal:24224 --log-opt tag="docker.{{.Name}}" alpine /bin/sh -c "while :;do date; sleep 3; done;"
動作確認
Kibana を確認して fluentd インデックスにログがあることを確認します
Discover で棒グラフが表示されない場合は
最後に
ElasticSearch9 を docker で動かしてみました
認証方法などはほぼ ES8 と変わってませんでした
fluentd からログを送信する際にも認証情報は必要になるので注意しましょう


0 件のコメント:
コメントを投稿