Mackerelを使ってサーバを監視する

Mackerelを使ってサーバを監視する

こんにちは。
好きなさばはもちろん八戸前沖さば!、mukaiyachiです。

連休中に以前から気になっていたサーバ管理・監視ツール『Mackerel』を使ってみました。

『Mackerel』は株式会社はてなが運営しているサーバのステータスを管理・監視するためのSaaSです。
(Mackerelは日本語で鯖を意味します。(サーバ ⇒ 鯖 ⇒ Mackerel))

『Mackerel』は複数のサーバの状況を「Role(役割)」という概念で分類して効率的に可視化します。

また、デプロイツールや構成管理ツールなど各種ツールと連携することで、多重管理による人為的ミスや管理コストを解消が見込まれています。

そして、サーバの状態に何か変化があった場合はメールやチャットツール等で通知を受け取ることができます。

『Mackerel』を導入するメリットとしては、

  • 監視サーバの構築・運用が不要である
  • セットアップが簡単
  • 様々なデータをグラフで可視化して監視できる
  • 複数のサーバを一元的に管理できる
  • 状態の変化の通知を様々な手段で受け取れる
  • デプロイツールや構成管理ツールとの連携ができる

などがあります。

『Mackerel』はとても簡単な手順で利用を開始することができました。
手順は下記のようになります。

1、アカウント登録・オーガニゼーションの作成

『Mackerel』を利用するにはまずはアカウント登録をする必要があります。
サインアップ

登録後オーガニゼーションを作成します。

オーガニゼーションとは、『Mackerel』を利用する会社・組織・個人のことです。
『Mackerel』ではこのオーガニゼーションにユーザが所属してサーバの管理を行います。

2、ホストの登録

まずは監視をしたいホストにエージェントをインストールします。

RPMパッケージやdebパッケージなど様々なインストール方法がありますが、私の場合はRPMパッケージにしました。

ターミナルソフトを起動して以下のコマンドを順に実行していきます。

①yumリポジトリを登録

 

②yumコマンドでインストール

 

③APIキーの設定

 

④エージェント起動

3、サービスの作成

『Mackerel』ではホストを、ホストの集まりを表す『サービス』という概念と、サービス内でそのホストがどんな役割なのかを表す『ロール』という概念を使って管理します。

まず先にサービスを管理ページから作成します。
新しいサービスを作成

4、ロールの作成

サービスを作成したら次にロールを作成します。
「app」「db」「proxy」などにしてどんな役割なのかわかるようにします。
新規ロールを作成する

5、ホストにロールを紐づける

ホストの一覧からロールを設定します。
Hostsロール設定 Hostsロール選択

以上でサーバの監視の準備は整います。
サーバの状態が下の画像のようにグラフでわかりやすく表示されます。
hosts

現在はホストが1台しかないのでロールの意味があまりありませんが、複数登録した場合は下記のように表示されます。
screenshot-graph

screenshot-service

 

サーバの監視の準備が整ったら、監視や通知の設定をお好みの設定に変えてみましょう。

監視閾値の設定

画面左側のメニューから「Monitors」を選択。
mukaiyachiのダッシュボード

「監視ルールの追加」をクリック。
Monitors

監視ルールの設定ダイアログが表示されるのでルールを作成します。
下の画像ではCPUの使用率が90%になったらWarning、98%になったらCriticalのアラートが発生するルールです。
MonitorsCPU 過負荷

通知設定

監視ルールの条件が満たされるとアラートが発生しますが、アラートが発生したらメール等に通知を飛ばす設定が行えます。

画面左側のメニューから「Monitors」を選択。

「通知チャンネル設定」をクリック。

「チャンネルを追加」をクリック。

通知設定ではメールの他にSlackHipChatなどが追加できます。
Channels
実際に試してみて、思っていたより簡単にサーバの監視を始めることができたので驚きました。
一からサーバ監視のための環境の準備をして、運用をするというのはかなり手間とコストがかかると思います。
しかし『Mackrel』を使うことによってその部分の負荷を減らすことができて、そのかわりにサービスの開発に集中することができるというのは、それは良いことだと思いました。

みなさんもぜひおためしください。