mackerel(マカレル)を使ってみた感想

最近サーバーの監視ツールのトピックで、マカレルを使ってみたというブログをよく見かけます。

サーバー監視にクラウドサービス使うのはちょっとなぁ。。と思ったのですが、はてなが作ってるということもあり、検証してみました。

監視対象のサーバーにエージェントを入れて、専用の管理画面とかでグラフ表示して、各種APIとかつかって色々通知できるよ!というのがmackerelの概要なんですが、さすが有料のはてなのサービス!というだけあって色々すごいです。

まず、監視対象サーバーはRedhat型だろうが、Debianだろうが、Windowsだろうが、それぞれのインストーラーとインストール方法が記載されてるので、ある程度サーバーわかる人なら監視設定したことなくてもアカウントを作ってからものの10分程度で、リソース監視までできちゃいます。

これ本当にびっくりしました。
簡単すぎです。

プラグインとかもパッケージインストールと同じでyumとかapt-getでいけるのが素晴らしい。
当たり前かもですが、chkconfigとかも自動でオンになってて、ちゃんとしてるなって思いました。

管理画面もシンプルながら細かい表示ができるし、何より画面が今風でいいですね。

ここまで良いことばかり書いてきましたが、悪いこともあります。
リソース監視や、それ以外の細かい監視はあっけないのですが、プロセスやらポート監視が面倒でした。
と言ってもオープンソースの監視システムと比べたらめちゃくちゃ楽なんですが、ちょっと監視するのであればとりあえずはリソース監視とプロセス監視くらいでいいよね!って思ってもプロセス監視は別途プラグイン入れないといけないのは微妙かと思います。

強みはそこじゃないと思えど、nagiosやZabbixと比較するとその辺はほしいかなぁと。
あとは若干、とても若干ではありますが管理画面が重いかなって気がします。

まぁそれでもたかだか半日の検証で本番に導入できたので、やっぱりほかの監視ツールと比べるととても汎用性が高く、便利なサービスだと感じました。

5台までは無料らしいので自宅サーバーの監視に使ってみようと思います。

以上!

サーバーPing応答簡易監視スクリプトを作ってみました

自宅にサーバーを立てている場合に、ふとしたときに自宅サーバーへアクセスできず困ることがあります。

せめてアクセスできないのが事前にわかればと思い、簡易的な監視スクリプトを作ってみました。

要件としては、

  • ping監視
  • 複数サーバーを監視できる
  • 実行の都度アラートを飛ばすのではなく、すでにアラートが飛んでいれば新たに発砲しない。

こういった簡易的な監視スクリプトで結構重要なのが3つ目だったりします。

都度都度メールが送られてくるのはウザイので、監視間隔を延ばすという対応はよくあるかと思いますが、下記スクリプトのように、一度メールを飛ばしたらtmpディレクトリへtmpファイルを作ることで、次回チェック時はそのtmpファイルがある場合はスルーするようにしてあります。

その後で、復活時にtmpファイルを削除することで、再度障害が発生した場合に対応できるようにしております。

#!/bin/bash

NUM01=3
IPLIST="ここに対象サーバーのIPアドレスをスペース区切りで記述する"
MAILTO="メールの通知先アドレスを記述する"

### PING check
for IPL in ${IPLIST}
do
 ping ${IPL} -c ${NUM01}
 if [ $? -eq 1 ];then
  if [ -e /tmp/pingfile${IPL}.tmp ];then
    echo "TMP file already exsists"
  else
    touch /tmp/pingfile${IPL}.tmp
    cat /root/maildata.txt | mail -s "[ALERT]Network is unreachnable to ${IPLIST}" ${MAILTO}
  fi
 else
  rm -f /tmp/pingfile${IPL}.tmp
 fi
done

exit 0

/root直下にmaildata.txtというファイル名で、メール本文へ記述するアラートの内容を作っておけばあとは

*/30 8-23 * * * /root/kanshi.sh

のようにcronへ登録しておけばバッチリです。

実際はデータベースなどにステータスを保存しておいて、そこを参照したりするのが理想ですが、それについてはまた今度。

このスクリプトを応用することで、pingだけではなく、他のスクリプトの返り値0か1かでアラートメールを発砲することが可能かと思います。