無料アカウントのMackerelでお手軽にDockerコンテナを監視してみた

環境

  • OS X Sierra v10.12.5
  • Docker version 17.10.0-ce, build f4ffd25

事前作業

  • こちらからMackerelアカウントを作成
  • 当然まだコンテナ作成してないのでMackerelのWebUIには何も検知されてない

f:id:namio6243:20180220014117j:plain

  • あとで使うのでAPIキーはメモっておく

f:id:namio6243:20180220012726j:plain

作業手順

  • 自分のMacに下記の2ファイルを作成する。ディレクトリはどこでもOK
$ ls -l
-rw-r--r--  1 **********  **********      401  2 20 00:43 Dockerfile
-rw-r--r--  1 **********  **********      175  2 20 00:41 mackerel-agent.conf
  • 内容は下記の通り(丸コピーでイケるはず)。DockerHubのここからダウンロードしてくる設定
#Dockerfile

FROM mackerel/mackerel-agent:latest

# エージェント設定ファイルを追加
RUN mkdir -p /etc/mackerel-agent/conf.d
COPY mackerel-agent.conf /etc/mackerel-agent/mackerel-agent.conf

# 入れないとメトリクス取得できない
RUN yum -y install e4fsprogs \
  && yum -y install net-tools

COPY startup.sh /startup.sh
RUN chmod 755 /startup.sh

# boot mackerel-agent
CMD ["/startup.sh"]
  • apikeyはMackerelアカウント作成して取得したものをこちらに記載する
#mackerel-agent.conf 
apikey = "**************************************"
pidfile = "/var/run/mackerel-agent.pid"
root = "/var/lib/mackerel-agent"
include = "/etc/mackerel-agent/conf.d/*.conf"
  • ビルド実行(Dockerfileを作成したディレクトリで実行)
$ docker build -t centos:mackerel .
  • イメージがローカルに作成されていることを確認
$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
centos                        mackerel            92a05bc6263c        5 seconds ago       723MB
  • コンテナ起動
$ docker run --privileged --name localserv -d centos:mackerel /sbin/init
40e3b43159b506fce739044464f0375240adc2b9126749b21bc1f46b40335ecb
  • MackerelのWebUIを確認すると...

f:id:namio6243:20180220013403j:plain

  • メトリクスはデフォルトだと以下の項目を取得する
 - loadavg5
 - CPU
 - memory
 - disk
 - interface
 - filesystem

f:id:namio6243:20180220013344j:plain

  • 監視設定はデフォルトだと死活監視のみ(connectivity)

f:id:namio6243:20180220013324j:plain

  • とりあえずDockerコンテナを監視することができました。
  • コンテナを一度起動して停止するとMackerel上の監視ホストは残ったままになるようなので、ロールを作成したりしてごにょごにょするとイイ感じでできるらしい