2018年9月30日日曜日

Prometheus で docker コンテナを監視する方法

概要

Docker の daemon metrics の機能を使うと簡単に Prometheus と連携することができます
Docker Damon metrics を有効にする方法と Prometheus との連携方法を紹介します

環境

  • Ubuntu 16.04
  • Prometheus 2.4.2
  • docker 18.03.1-ce

Docker Damon metrics の有効化

事前に停止が必要なコンテナは停止しておいてください

  • touch /etc/docker/daemon.json
  • vim /etc/docker/daemon.json
{
  "metrics-addr" : "0.0.0.0:9323",
  "experimental" : true
}
  • systemctl restart docker

これで 9323 ポートでメトリックが取得できるようになります
念のため netstat -an | grep 9232 などでポートが開いているか確認してください

Prometheus で監視対象を追加する

  • vim prometheus.yml

scrape_configs に以下の job_name を追加しましょう

scrape_configs:
  - job_name: 'worker2_docker'
    static_configs:
    - targets: ['192.168.100.12:9323']

追記したら Prometheus のコンテナを再起動します

  • docker restart prometheus

prometheus の部分は Prometheus のコンテナ名またはコンテナ ID になります

動作確認

Status -> Targets を確認すると監視対象が追加されていると思います
メトリックの名前は daemon_swam_ から始まる項目になります

最後に

dockerd の Daemon metrics の機能を使って使って Prometheus と連携してみました
連携自体はかなり簡単に行えます

ただ、Daemon metrics はかなり簡易的な情報しか取得できません
非公式ではありますが cAdvisor と連携する方法があります
cAdvisor の方が確かに各コンテナの情報を取得できるので細かい情報まで確認することができます

今回の方法は docker 公式のページで紹介されている方法なので今後取得できるメトリックの量などが増えるといいなーと思っています

参考サイト

0 件のコメント:

コメントを投稿