Mackerelで複数コンテナをまとめてサービス監視する
どうもこんにちわ、Mackerel力を上げたいnamioです。平昌五輪開催中ですが祝:小平奈緒選手金メダルおめでとう!という訳で(?)今日も書きましたw
前回からの続き(検証環境同じ)
作業手順
- まずは監視対象を登録するためのサービスを作成
- 作成したサービスに紐付けるロールも作成
- ここからターミナル上の作業
- 下記ファイルを作成する(Dockerfile,mackerel-agentだけ前回と内容が異なる)
$ ls Dockerfile mackerel-agent mackerel-agent.conf startup.sh
- 今回のDockerfile作成
#Dockerfile FROM mackerel/mackerel-agent:latest # エージェント設定ファイルを追加 RUN mkdir -p /etc/mackerel-agent/conf.d COPY mackerel-agent.conf /etc/mackerel-agent/mackerel-agent.conf COPY mackerel-agent /etc/sysconfig/mackerel-agent # 入れないとメトリクス取得できない RUN yum -y install e4fsprogs \ && yum -y install net-tools RUN chmod 755 /startup.sh # boot mackerel-agent CMD ["/startup.sh"]
- この公式ページの一番下に書いてあるので
AUTO_RETIREMENT
を検証のため設定してみる
- mackerel-agentも同ディレクトリに作成
#mackerel-agent AUTO_RETIREMENT=1
- ビルド実行(Dockerfileが配置してあるディレクトリで実行する)
$ docker build -t centos:mackerel .
- ビルド成功してイメージが作成される
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos mackerel 6b79d7d6be5c 1 minutes ago 723MB
- コンテナを3つ起動
$ docker run --privileged --name localmachine -d centos:mackerel /sbin/init $ docker run --privileged --name localmachine2 -d centos:mackerel /sbin/init $ docker run --privileged --name localmachine3 -d centos:mackerel /sbin/init
- コンテナを3つ起動できた
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ff79c1a703d6 centos:mackerel "/sbin/init" 1 minutes ago Up 3 seconds localmachine3 6f4c756be818 centos:mackerel "/sbin/init" 1 minutes ago Up 6 seconds localmachine2 fa5564ff0e77 centos:mackerel "/sbin/init" 1 minutes ago Up 33 seconds localmachine
- [service_test:role_test]サービスに登録されている
- dockerをすべて停止してみる
$ docker stop ff79c1a703d6 6f4c756be818 fa5564ff0e77 ff79c1a703d6 6f4c756be818 fa5564ff0e77
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $
- まあ、当然停止したので死活監視にひっかかる。登録されているホスト情報は残るし、アラートも飛ぶ。。。どうしたものか
今回気づいた点
AUTO_RETIREMENT
設定してみたけど、docker stop
で停止したら意味なしでした...- 退役させるのは手作業...もしくはdockerコンテナ上のmackerel-agent stopを実行する必要がある(なんかそこは面倒...) -> APIで退役できるぽい
- docker stopしたホストの登録情報は残り続けるが、メトリクスを取得しないサーバは課金対象外になるらしい