コンテナを監視してみた|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。コンテナを監視してみたikaシェアツイートブックマークLINE今回は監視ツールのお話です。2本立てでアラート通知やグラフによる監視を行なっています。今年度だけでも、ダウンしたサーバの発見や、リソースが限界に達していないかのチェックなど、監視ツールはさまざまな面で役に立っています。監視ツールは監視対象側から監視ツール側に情報を送るという前提で作られていることが多い(世間ではPush型と言われている?)ため、監視ツールの導入は凄く面倒です。運用に関係のない設定はできれば監視対象には追加したくないものです。そこで、今回試験的に裏で運用しているPrometheusを使ってDockerホストとコンテナの監視を開始しました。Prometheusとは?https://prometheus.io/よりPrometheusはオープンソースの監視ツールです。音楽のソーシャル・プラットフォームを展開しているSoundCloud社によって2012年から開発が行われています。Prometheusの特徴として、多次元のデータモデルの採用、動的に監視対象を探知できる設定が最初から利用できるなどの点が挙げられます。私的には、Prometheusが監視対象の情報を取得するPull型の通信を採用していることが一番の特徴ではないかと思っています。Prometheusが監視対象の状態をPull型で取得できることにより、監視対象の状態を監視システムから楽に管理できるというメリットがあります。Prometheusのコンポーネントで今回利用したのは以下の2つです。ServerPrometheus本体です。監視ツールとして監視対象を管理、監視情報を取得するシステムです。Serverで読み取り可能なデータを生成する機能です。これは監視対象側に導入します。いう監視対象のホストの情報を生成する機能があります。この2つを使ってPrometheusによる運用を行なっていきたいと思います。Serverをインストールします。17.04までアップグレードしました。Serverをインストールし、起動すると以下のようなGUI画面が出てきます。監視対象を追加していないので、対象を設定してからグラフ描画を開始します。node-exporterとcontainer-exporterをインストール(監視対象側)次は監視対象側にnode-exporterとcontainer-exporterを導入して、監視対象側のDockerホストとコンテナの情報を生成します。ここではnode-exporterとcontainer-exporterもDockerコンテナで運用するようにします。今回は以下のコンテナを利用しました。google/cadvisor:latestこれにより、DockerホストとコンテナのPrometheus用のデータを生成できるようになりました。DockerホストとDockerコンテナの情報を取得(Prometheusサーバ側の設定)いよいよ、このDockerホストとコンテナの情報を取得できるようにPrometheusサーバを設定します。exporterを導入したサーバのデータを取得するように設定します。静的にターゲットを登録するように設定しています。labelsでは任意のラベルを指定できるため、グラフ生成時にこれを使ってグループに名前をつけます。これにより、今後別のグループでDockerホストを構築する場合も切り分けできるようになります。Serverを再起動し、Targetsでグループのラベルで指定したホストのデータ取得に成功している事を確認できます。画面でグラフの描画が開始されていることが確認できます。Prometheusのグラフは非常にシンプルなので、逆に見づらいかと思われます。そこで、次はGrafanaをPrometheusと連携させてみます。Grafanaとの連携https://grafana.com/よりGrafanaをPrometheusと連携させると、Grafanaの強力なグラフ描画機能を利用できるようになります。監視サーバ側にGrafanaをインストールします。grafanaインストール後、DataSourceにPrometheusを追加します。次にダッシュボードを作成する必要があります。jsonファイルをインポートするのがよいでしょう。以上で、強力な監視DashBoardを簡単に作成できます。まとめという訳で、Prometheusのお話でした。先月には2.0.0の開発版がリリースされたため、安定板がリリースされたらそろそろ乗り換えてもいいかなとか思っています。alertmanagaerというアラート通知ツールも別に存在します。Prometheusと連携させるとアラート通知もできるようになりますが、alertmanagaerがまだ開発途上な面があるので、試験的運用は後日にしてみたいと思います。Dockerについてよくある勘違いシェアツイートブックマークLINEこの記事を書いた人ika1990年滋賀県生まれ。以前は某大学の学内SE。Web業界に行きたかった希望があり、2015年10月にBPSへ入社。元々の専門はネットワークなので、ネットワークの話をすることもしばしば。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。