こんにちはー!ニアですよ!
業務にて、サーバーの監視にMackerelを使うことがあるのですが、個人かつ無料で利用できるプランがあったので、インフラ周りのスキルアップも兼ねて自分のブログのサーバーにMackerelを入れてみました。
1. Mackerelに登録&mackerel-agentのインストール
Mackerelの導入はとてもシンプルで、以下の2つを行うだけで始められます。
- Mackerelに登録(登録から14日間は、有料のStandardの機能が利用できるTrialプランが利用できます。)
- 監視したいサーバーにmackerel-agentをインストール
mackerel-agentは
- Amazon Linux / Amazon Linux 2
- Cent OS / Red Hat(いずれも6、7)
- Ubuntu 16.04、14.04 / Debian 8以降
などのLinuxディストリビュージョンやWindowsにインストールできます。
自分のブログのサーバーはCent OS 7だったので、Cent OS 7用のパッケージをインストールしました。
エージェントをインストールしてしばらくすると、Hostのところにサーバーのメトリクス情報が現れます。
2. 監視ルールを設定
Mackerelには、監視ルール機能があり、指定した条件を満たした時、メールやチャットなどでアラート通知してくれます。
今設定しているのは、ロードアベレージ、CPU、メモリ、ファイルシステムの4つとホストの死活監視(ここでは、Mackerelとmackerel-agentが入ったホスト間での疎通できるかどうかを監視します)の計5つです。
また、サーバーにmackerel-agent-pluginsをインストールすると、nginxやPHP、MySQLなどのミドルウェア監視できるメトリクスが追加されます。
CPUやメモリなどの監視はホストメトリクス監視でルールを設定します。
名前 | 概要 | 監視設定のAPIで使用するJSONで 対応するキー |
メトリクス | 監視するメトリクスを選択します。 例えば、 ・「CPU %」: CPUの使用率 ・「Memory %」: メモリの使用率 ・「Filesystem %」: ディスクの使用率 ・「loadavg5」: 直近5分間のサーバーの実行待ちのプロセスの平均 (参考: ロードアベレージとは – はてなキーワード) | metric |
Warning条件 | Warningアラートを通知する閾値を設定します。 比較演算子は「>」または「<」から選択します。 | warning |
Critical条件 | Criticalアラートを通知する閾値を設定します。 | critical |
平均値監視 | 直近で指定した間隔のメトリクスの平均値を監視します。 例えば10に設定した場合、直近10分の平均値を監視します。 | duration |
アラート発生までの最大試行回数 | アラートの閾値を連続で何回超えたらアラートを通知するかを設定します。 | maxCheckAttempts |
絞込 | 監視対象のホストを指定します。あらかじめ、ホストにServiceとRoleを割り当てておきます。 上の画像の場合「Chronoir_net」のServiceの全てのRoleのホストが監視対象になります。 | scopes / excludeScopes |
監視ルール名 / メモ | 監視ルール名とメモを入力します。 | name / memo |
通知の再送間隔 | アラートが発生している間、指定した間隔で通知を再送し続けます。 | notificationInterval |
3. おわりに
サーバー監視といえば、ZabbixやHinemosなどもありますが、MackerelだとSaaSなので、監視専用のサーバーを用意せずともWebサーバーなどをモニタリングができて便利です。
ただ、Freeプランだと監視ルールが10個までなので、WordPressで使用しているnginxやPHP、MySQLまで欲張ると、あっという間に上限をオーバーしてしまいます。
アプリケーションの監視はmonitなどを使って役割分担するのがよいですね。
[END]
コメント