そーだいなるらくがき帳

そーだいが自由気侭に更新します。

ディスクの監視 ~ check-diskを読み解く

この記事は Mackerel プラグインアドベントカレンダー(全部CRE) の10日目です。

qiita.com

soudai.hatenablog.com

それでは10日目は check-disk です。

check-diskはディスク容量を監視してくれるプラグインです。

github.com

インストールと設定手順

至れり尽くせりなので公式ドキュメントに手順が書いてあるのじゃ!!

mackerel.io

使い方

至れり尽くせりなので公式ドキュメントに使い方が書いてあるのじゃ!!

mackerel.io

オプション一覧

今回は公式ドキュメントに全て 日本語

ベーシックなDisk監視

check-diskはディスク容量を監視することができます。 以下の例では、/tmp のディスク容量が10%以下の場合にWarning、5%以下の場合にCriticalが発生します。

[plugin.checks.disk]
command = "check-disk --path /tmp --warning 10% --critical 5%"

このへんは公式ドキュメントが全てカバーしてるので必読です!!

check-diskの何が嬉しいの?

mackerel-agentをインストールしているとシステムメトリックスの filesystem でディスク容量を監視することができます。

blog.a-know.me

しかしこちらは Filesystem % で割合の監視は出来るものの、特定のファイルシステムのみを指定して監視することが出来ません。 例えばデータベースだとデータファイルとバックアップのdiskを別パーティションにしていたり、トランザクションログとテーブルファイルを別パーティションにすることがあります。 そこでcheck-diskの出番です!check-diskはパーテーション別に割合で指定出来るのでパーテーションごとに90%で監視しておき、アラートが来ればシステムメトリックスを確認する流れで対応することができます。 このようなときもそれぞれの容量が溢れる前にcheck-diskで監視する事ができます。

ルーク、kazeburo/custom-mackerel-pluginsを使え。

スターウォーズ、見てないんですけど id:kazeburo さんが作っているカスタムプラグイン集の kazeburo/custom-mackerel-plugins めちゃめちゃ便利なのでご紹介します。 ちなみにもうひとりのCREである id:a-know さんが kazeburo/custom-mackerel-plugins については詳しく書いていますので興味がある人はご参考ください。 特に periodic-checker は今回紹介したチェックプラグインと相性が抜群です。

periodic-checker

これもまた、Perl で書かれたチェック監視ユーティリティ。$ periodic-checker --range 00:00-06:00,06:30-24:00 -- check-tcp -p 80 のように使う。......この usage だけでどんな機能を持つものかピンと来ると思うのだけど、--range で指定した特定の時間帯のみ、-- 以降で指定したチェック監視コマンドを実行する、というもの。

例えばデイリーでのバッチ処理(それも重い)などがある時間帯だけはチェック監視をおこなわせないようにする、といった使い方になる。periodic-checker を使わずにこうした監視を実現しようとすると、Mackerel のホストステータスを API 経由でコントロールするくらいしかないわけで、これは超絶便利すぎるでしょ......。。

blog.a-know.me

またチェックプラグインは実装も簡単ですし、自分たちのサービスに合わせてカスタムプラグインを作りやすいのも特徴です。 みなさんも是非、自分のオリジナルのチェックプラグインを作成してみてください。

b.hatena.ne.jp

如何でしょうか。check-diskはシンプルですが必ず自分を助けてくれるプラグインです。 必ずディスク容量は監視しましょう! ある日突然ディスクがいっぱいになってログインできなくなることを防いでくれます。

これでチェックシリーズは一段落して月曜日からはまたメトリックプラグインです。 それでは明日はマルチコアCPU監視です。

10日目 mackerel-plugin-multicore