インフラ
監視
Mackerel

Mackerelのディスク容量監視を導入してみる

「ん、なんかエラーが出てる!?」と思ったら、サーバのディスク容量が100%になっていたなんてことはないだろうか。

ディスク容量に余裕を持たせる、ログを適切にローテートするなどすればこのようなことは起こらないわけだが、人間なのでついつい忘れがちだったりする。毎回sshして df -h では辛すぎるのでMackerelでディスク容量監視を設定してみた。

mackerelエージェントのインストール

ディスク監視を導入したいサーバ上でセットアップスクリプトを実行(今回はAmazon LinuxなのでAmazon Linux用を実行する)。これでMackerelのyumリポジトリが登録される。

curl -fsSL https://mackerel.io/file/script/amznlinux/setup-yum.sh | sh

mackerelエージェント本体と今後使いそうなパッケージをまとめて入れる。

sudo yum install -y mackerel-agent mackerel-agent-plugins mackerel-check-plugins mkr

設定ファイルを編集

sudo vim /etc/mackerel-agent/mackerel-agent.conf

apikey には自分のオーガニゼーションのAPI KEYを入れる。 roles で同じ役割のサーバをまとめてグループ化することが可能。

mackerel-agent.conf
pidfile = "/var/run/mackerel-agent.pid"
verbose = false
apikey  = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
roles   = ["sample-prod:sample-app"]

[host_status]
on_start = "working"

# Configuration for connection
[connection]
post_metrics_dequeue_delay_seconds = 30 # delay for dequeuing from buffer queue
post_metrics_retry_delay_seconds   = 60 # delay for retring a request that causes errors
post_metrics_retry_max             = 10 # max numbers of retries for a request that causes errors
post_metrics_buffer_size           = 30 # max numbers of requests stored in buffer queue.

# Plugin for Linux
[plugin.metrics.linux]
command = "/usr/local/bin/mackerel-plugin-linux"

設定が終わったらエージェントを起動する

sudo /etc/rc.d/init.d/mackerel-agent start

Mackerel上でディスク容量監視を設定

Mackerelの管理コンソールにログインして「Monitors」→「監視ルール設定」から「監視ルールを追加」をクリック

「新規監視ルールを作成」の「ホストメトリック監視」タブで、メトリックに「Filesystem %」、閾値にアラートを飛ばしたい閾値を設定する。今回は80%でWarning、90%でCriticalとした

左下の「作成」を押すと新しいルールが作成される
スクリーンショット 2017-11-03 15.52.14.png

閾値を超えたらSlackに通知してみる

「Monitors」→「チャンネル設定」から通知したいSlackチャンネルを指定しアラートを通知することができる。設定方法は公式ページに書いてある通り。「@channel」などでチャンネル全体にメンションを飛ばすことも可能

20151222160934.png

導入してみた感想

Mackerelとても直感的で良かったです。設定も簡単でした。サービスメトリックなどまだまだ使いどころは多そうな印象。

監視ツールというと、cronとシェルスクリプトで頑張るとか設定に苦しみながら無料のOSSを使うみたいなイメージが強かったけど、これからはこういう便利なサービスが普及していくんだろうなーと思いました。