Telegraf で Docker の情報を 取得して Grafana で可視化する

サーバーリソースの可視化は以前やったので、今度は Docker の情報を可視化してみました。

Grafana のダッシュボードは以下を使いました。

これに書いてあることをやっただけですが・・・。

telegraf.conf の設定

以下を追加します。

[[inputs.docker]]
  endpoint = "unix:///var/run/docker.sock"
  
  gather_services = false

  container_name_include = []
  container_name_exclude = []

  timeout = "5s"

  docker_label_include = []
  docker_label_exclude = []

  perdevice = true

  total = false

docker-compose.yaml の設定

Telegraf の volume に /var/run/docker.sock を追加します。
また、/var/run/docker.sock にアクセスするためには Telegraf の実行ユーザーを Docker と同じにする必要があります。

volumes:
  - /var/run/docker.sock:/var/run/docker.sock
users: 1000:133 # UID:GID

さらに、情報を習得したい全サービスに以下を追加してグループ化します。

labels:
  - "docker.group=<some_name>"

ラベルの名前は何でもいいようです。
ラベルを設定しなかったサービスの情報は取得されませんでした。

Grafana の設定

以下から JSON ファイルをダウンロードし、Grafana でインポートします。

以上で以下のようなダッシュボードが表示されます。

参考 URL

Hugo で構築されています。
テーマ StackJimmy によって設計されています。