ブロックチェーン・AI・システム開発の株式会社INDETAIL

Prometheusでお手軽サーバ監視

2015.06.11
tacck

札幌の大通公園では、毎年恒例のYOSAKOIソーラン祭りが始まりました。
大通公園沿いのビルで、祭りの音を楽しみながら勤務するtacckです、こんにちは。

弊社内では、一部のプロジェクトでJenkinsを使ったCIを行なっております。
ただし、一部のメンバー(私とか)でざっと立ち上げた後、きちんとメンテナンスしていない状況だったりします。
そんな調子のため、先週に「Jenkinsサーバが動かない!」という社内クレームがあがって来てしまい、調査・対応を行なったりしました。

結果はディスクフルという単純なものだったのですが、そういうものはきちんと把握するようにしなければいけないなぁ、と反省しました。
そこで、今回はPrometheusという簡単に導入できるモニタリングツールの紹介をしたいと思います。

モニタリングツール

モニタリングツールは、単純に言えば、サーバマシンや、その上で動いているサービスの状況把握に利用できるツールです。
サービスが動作しているか、マシンのCPU負荷が異常になっていないか、という確認から、異常状態を検知した場合にどうするかという復旧対応まで、きちんと環境を整える事でサービスのダウンタイムをコントロールできるようになります。

弊社のインフラ専門チーム管理下マシンではZabbixを使っているのですが、今回は他のツールの調査も兼ねてPrometheusを選んでみました。

Prometheus

Prometheusは、オープンソースのモニタリングツールです。

簡単な特徴として、

  • ・Go言語で開発されている
  • ・最新バージョンが0.14.0と発展途上

といったところが挙げられます。

Officialの情報を見てみると、色々と特徴的な機能が書いてあります。
詳細は私もまだ見切れていませんが、今回起こったディスクフルを簡単に確認できる程度のことをあっさりできるようなので、Jenkinsサーバへインストールしてみました。

環境

今回は、

  • サーバ: 192.168.1.231
  • OS: CentOS 6.5

のマシンへのインストールです。

インストール手順

Prometheusの仕組みとして、「モニタリングを行ないデータを蓄積するプログラム」と「蓄積されたデータを表示するプログラム」の二つに分かれています。

「蓄積されたデータを表示するプログラム」が、上記でリンクを張ったPrometheus本体です。
「モニタリングを行ないデータを蓄積するプログラム」として、今回は「Node exporter」というものを利用しました。

準備

まずは、ビルドに必要なアプリをインストールしておきます。

Node exporter のインストール

こちらは、非常に簡単です。

これでビルド完了です。

これだけで、Node exporterを起動できます。標準で9100番ポートを使っており、このポートを利用してPrometheusへ情報を提供しています。

Prometheus のインストール

こちらも、ほぼ同じ手順です。

こちらも、makeが終わればビルド完了です。

こちらは、上記の「Node exporter」を利用できるように設定ファイルを作成します。

prometheus.yaml

上記ファイルを作成後、下記コマンドでPrometheusが実行できます。

動作確認

では、動作確認しましょう。
今回ですと、「http://192.168.1.231:9090/consoles/node.html」へアクセスします。
すると、下記のように表示されます。

2015061001

今回は「localhost:9100」が監視対象のノードとなります。
こちら、リンクになっているのでクリックします。
すると、下記のような詳細が確認できます。

2015061002

表示幅を狭めているので少々見づらいですが、画面左側にCPUの使用状況やDisk I/Oの状況、メモリの使用状況がグラフとして表示されます。
また、画面右側で他の詳細な情報を見る事ができます。
今回は、この右側の中の「Filesystem Fullness」の「/」を確認したかったので、これでとりあえず状況を把握できるところまできました。

まとめ

今回は、お手軽に導入できるモニタリングツールとしてPrometheusを導入してみました。
このPrometheusですが、Dockerコンテナの使用状況も監視できる機能があるとのことなので、次回はこちらを利用してDockerの状況監視を行なうようにしてみたいと思います。

関連タグ:

tacck Takuya KIHARA

エンジニア (モバイルアプリ、フロントエンド、バックエンド、インフラ) 得意なことは、領域をまたいで考え、開発すること。 ブログでは、主にAnsible、Docker、Raspberry Piのことを書いています。 好きなフィギュアスケートの技は、スプレッド・イーグルです。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。