Mackerelのチェックプラグインについてまとめてみた

Mackerelのチェックプラグインについてまとめていきます!
2022.06.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、こんばんは、きだぱんです。
今回は、Mackerelのチェックプラグイン(check-plugin)についてブログ書いていきたいと思います。

それではいってみましょう!!

Check-Pluginって何だろう

Mackerelとは

Check-pluginの説明をする前に、そもそも...Mackerelについて簡単にご紹介します。
クラウド時代に最適な監視モデルと誰でも簡単に使えるUIによって、システムの運用・監視にチームで取り組み文化を育むSaaS型サーバー監視サービスです。
詳しくはMackerel公式サイトをご覧ください。↓

チェックプラグインとは

チェックプラグインとは、チェック監視に対応した公式プラグイン集を利用して、プロセス監視やログ監視などのチェック監視を簡単に実現できます。
Mackerelでは、公式チェックプラグインのパッケージが提供されています。
お使いの環境に合わせてyumリポジトリもしくはaptリポジトリを使用することが推奨されています。
リポジトリ設定がされていれば、コマンド一つでチェックプラグイン集をインストールできます。
インストール

# rpmパッケージ
sudo yum install mackerel-check-plugins 

# debパッケージの場合
sudo apt-get install mackerel-check-plugins

アップデート

# rpmパッケージ
sudo yum update mackerel-check-plugins 

# debパッケージ
sudo apt-get update 
sudo apt-get install mackerel-check-plugins

こちらでチェックプラグインを使う準備は完了です。

プロセス監視

check-procsを使用することで、プロセス監視を行えます。
プロセス監視プラグインを使ってcrondの監視を行いたい場合は、

[plugin.checks.check_cron]
command = ["check-procs", "-pattern", "crond"] 
# -p(pattern)には、対象のプロセスをマッチさせる正規表現を指定

と実行します。
この状態でcrondが動作を停止すると、アラートが発生し、プロセス復旧後に自動で閉じられます。

(Mackerel-「プロセス監視をおこなう」より)

プロセス個数を監視

プロセスの死活監視だけでなく。ワーカーのプロセス数などが適正に保たれているかの監視も行うことが出来ます。

  • -w, --warn-over
    • 設定値を上回ったらwarning
  • -c, --critical-over
    • 設定値を上回ったらcritical
  • -W, --warn-under
    • 設定値を下回ったらwarning
  • -C, --critical-under
    • 設定値を下回ったらcritical

その他、check-procs にはプロセスの実行時間やプロセスの状態に対して監視をおこなうようなオプションもそろっています。詳しくは下記をご覧ください。

ログ監視

シンプルなログ監視

check-logでログ監視も行えます。 checklogはチェックまでに読んだログの位置をステートファイルに保存しています。 mackerel-agent.conf に記述し、mackerel-agentを再起動します。
まずは、シンプルなログ監視として、--file オプションに監視対象のファイルを、--pattern オプションに、エラー文言を検出したいパターンを正規表現で指定します。ログファイルに "FATAL" という文字列が出現した場合にアラートが発生させます。

[plugin.checks.access_log]
command = ["check-log", "--file", "/var/log/access.log", "--pattern", "FATAL"]

複数のチェック監視

オプションを組み合わせることで様々な要件に対応できます。

オプション ロング表記 説明
-f –file 監視対象ログファイルパス
-F –file-pattern 複数ファイル指定
-p –pattern 検索文字列
-E –exclude 除外文字列
-w –warning-over WARNING閾値(件数/分)
-c –cretical-over CRITICAL閾値(件数/分)
-r –return エラー行通知
-i –icase 大文字小文字を区別しない
-s –state-dir ステートファイル保存場所
–no-state ステートファイル未使用

上記には、よく使われるであろうオプションを並べましたが、他にもありますのでこちらもご覧ください。
複数のチェック監視で記載する場合は、コマンドをシングルクォート3つで囲みます。
これらを組み合わせることで、ぞれぞれの環境に合ったログ監視を設定できます。
それぞれの設定の詳細については、以下のヘルプを参照してください。

おわりに

Mackerelのcheck-pluginを理解するために私が参考にした内容とポイントについてまとめてみました。
これらを理解した上で障害発生時の原因特定や対策を決めるための道筋として考えていただければと思います。
今回ご紹介したものは、標準機能に過ぎないのでカスタマイズして一つ一つに合った監視をぜひ行ってみて下さい!
Mackerelに関するブログも沢山展開されていますので、是非こちらもご覧ください。
Mackerel の記事一覧 | DevelopersIO
この記事がどなたかのお役に立てば幸いです。