📝 Qiita記事草案:DockerコンテナログをFluent Bit経由でLokiに送信してGrafanaで可視化する
📌 概要
Dockerコンテナのログをリアルタイムで収集・可視化するために、Fluent Bit → Loki → Grafana の構成をIntel Mac環境で検証しました。
BusyBoxコンテナから送信されたログが、Grafana上で確認できるまでの流れを紹介します。
🧱 構成概要
- 環境: macOS (Intel), Docker Desktop
- ログ送信元: BusyBoxコンテナ
- ログ収集: Fluent Bit (fluentd互換)
- ログ保存: Grafana Loki
- 可視化: Grafana
📦 使用したDocker Compose構成(docker-compose.yml)
version: '3.8'
services:
fluentbit:
image: fluent/fluent-bit:latest
ports:
- "24224:24224"
volumes:
- ./fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
depends_on:
- loki
loki:
image: grafana/loki:latest
ports:
- "3100:3100"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage:
🛠 Fluent Bit設定(fluentbit.conf)
[SERVICE]
Flush 1
Log_Level info
[INPUT]
Name forward
Listen 0.0.0.0
Port 24224
[OUTPUT]
Name loki
Match *
Host loki
Port 3100
Labels job=fluentbit
🚀 ログ送信テストコマンド
docker run --log-driver=fluentd \
--log-opt fluentd-address=host.docker.internal:24224 \
busybox echo "Hello from BusyBox"
✅ 実行結果
Hello from BusyBox
このログは Fluent Bit に送信され、Loki に保存され、Grafana で可視化されます。
🔍 Grafanaでの確認方法
- Grafanaにログイン(http://localhost:3000)
- Exploreタブを開く
- データソースに「Loki」を選択
- クエリ例:
{job="fluentbit"}
🧪 検証ポイント
-
host.docker.internal
を使うことで、Mac上のホストとコンテナ間の通信が可能 - Fluent Bit の
forward
プラグインはfluentd
ドライバと互換性あり - Loki に送信されたログは、ラベルで分類・検索可能
📝 まとめ
この構成により、軽量・リアルタイム・ローカルファーストなログ可視化環境が構築できました。