技術ノート Linux サーバー監視のためのMonitのスタートガイド

サーバー監視のためのMonitのスタートガイド

サーバー監視のためのMonitのスタートガイド

Monit は、システム上で実行されているプロセスをチェックして、プロセスが常にオンラインであり、適切な CPU とメモリの制限内で動作していることを確認できるサーバー監視プログラムです。システムを監視するための Web インターフェイスも付属しています。

モントは何をするのですか?

サーバー監視のためのMonitのスタートガイド

基本的に、Monit は指定されたプロセスを 2 分ごと (デフォルト) にチェックインして、そのプロセスがどのように行われているかを確認します。リソースの使用状況のログが保存され、エラーが発生した場合に対処できます。これには、クラッシュしたプロセスの再起動や、リソースを過剰に使用するプロセスの再起動が含まれます。

サーバー監視のためのMonitのスタートガイド

Monit は、その動作をすべて設定ファイルを通じて定義します。例として、MySQL のデフォルト構成を次に示します。

サーバー監視のためのMonitのスタートガイド

 mysqlプロセスを確認してください

pidfile /var/run/mysqld/mysqld.pid を使用

startプログラム = “/usr/sbin/service mysql start”、タイムアウト60秒

stopプログラム = “/usr/sbin/service mysql stop”、タイムアウト60秒

totalmem > 5 サイクルで 400 MB の場合、アラート

totalmem > 5 サイクルで 600 MB の場合、再起動します

CPU > 50% が 5 サイクルの場合、アラート

5 サイクルで CPU > 90% の場合は再起動します

3 が 5 サイクル以内に再起動するとタイムアウトになります

Monit は、実行中の MySQL プロセスを監視するように構成されています。ダウンした場合は、 start program = config を使用して再起動できます。 MySQL が過剰なリソースを使用し始めた場合は、自動的に再起動できますが、最初に電子メールで警告が表示されます。

システム全体を監視するように構成することもでき、サーバーに異常な負荷が発生している場合に警告を発することもできます。

システムwp01をチェックしてください

loadavg(5min) > 1 の場合、アラート

メモリ使用量が 5 サイクルで 90% を超える場合、アラートが発生します

CPU 使用率 (ユーザー) が 5 サイクルで > 90% の場合、アラートが発生します

Monit が監視するものはすべて、デフォルトでポート 2812 経由で実行される Web インターフェイスから表示できます。

さらに、 M/Monit ユーティリティ を使用すると、複数のホストのデータを 1 か所で表示できます。これにはライセンスが必要ですが、無料で試用できます。

サーバー監視のためのMonitのスタートガイド

Monit のインストールと構成

ディストリビューションのパッケージ マネージャー から Monit をインストールします。 Ubuntu などの Debian ベースのシステムの場合、次のようになります。

 sudo apt-get インストール監視

Monit にはデフォルトの設定が付属しており、通常は ~/.monitrc にあります。そうでない場合は (macOS インストールの場合のように)、 ここで デフォルトの設定ファイルを見つけることができます。

Monit の Web インターフェイスはポート 2812 で実行されるように設定されています。これは問題ありませんが、デフォルトではデフォルトのパスワードで完全に開いています。許可された IP アドレスにロックダウンする必要があります。

 httpdポート2812を設定します

your_ip を許可する

管理者を許可:パスワード

もちろん、このパスワードは変更してください。 Web インターフェイスには さらにいくつかの設定オプション がありますが、今のところはこれで十分です。

その後、Monit を構成して個々のプロセスを監視できます。通常、これは、プロセスが再起動されるたびに PID が変更されるため、そのプロセスの実行中のインスタンスの現在の PID を保存するプロセス PID ファイル (通常は /var/run/ にあります) を使用して行われます。

 pidfile /var/run/nginx.pid でプロセス nginx を確認します

プログラムの開始 = “/etc/init.d/nginx start”

プログラムの停止 = “/etc/init.d/nginx stop”

プロセスを開始および停止するには、Monit にコマンドを渡す必要があります。プロセスがダウンした場合、追加の設定を行わなくても自動的に再起動されますが、リソースの使用状況に基づいて再起動したい場合は、いくつかの if ステートメントを使用して自分で指定する必要があります。

 pidfile /var/run/nginx.pid でプロセス nginx を確認します

プログラムの開始 = “/etc/init.d/nginx start”

プログラムの停止 = “/etc/init.d/nginx stop”

totalmem > 5 サイクルで 600 MB の場合、再起動します

5 サイクルで CPU > 90% の場合は再起動します

3 が 5 サイクル以内に再起動するとタイムアウトになります

Monit は何かが再起動するたびにアラートを送信するため、何か問題がある場合に通知されます。

構成が完了したら、次のように monit デーモンをリロードします。

モニターリロード

そして次のようにして監視を開始します。

すべてを開始します

これにより、Web インターフェイスも起動するはずです。これを使用して、Monit が適切に動作している (通常はポート 2812 で実行されている) ことを確認できます。

これは、Monit をすぐに実行できるようにするための基本的な構成ですが、Monit にはさらに多くの構文があります。詳細については、Monit ができるすべてのことについての 完全なマニュアルをお読み ください。

サーバー監視のためのMonitのスタートガイド

アラートの構成

Monit は、重大な問題が発生したとき、またはプロセスが再起動されたときに電子メール アラートを送信するように構成できます。メールサーバーの構成を追加する必要があります。

メールサーバー smtp.gmail.com を設定します

ポート587

ユーザー名「yourserver@gmail.com」

パスワード「秘密」

タイムアウト60秒あり

イベントキューを設定する

basedir /var/lib/monit/events

スロット100

最初のブロックは、使用するメール サーバーを定義します。最も簡単な方法は、Gmail アカウントで smtp.gmail.com を使用することです。ただし、 Postfix を サーバーにインストールしてローカルで実行することも、企業の電子メール サービスを使用することもできます。

2 行目は、何らかの理由でメール サーバーにアクセスできない場合にアラートをキューに入れるように Monit に指示します。

当然、送信先の電子メール アドレスも設定する必要があります。

アラートを設定 youremail@gmail.com

さらに、Monit には exec コマンドを使用してスクリプトを実行できるため、必要に応じてカスタム アラートを設定できます。たとえば、 Slack 通知を送信するスクリプト を設定し、それを /usr/local/bin/slack-webhook.sh として保存し、nginx が PID を変更するか Monit によって再起動されるたびに実行できます。

 pidfile /var/run/nginx.pid でプロセス nginx を確認します

プログラムの開始 = “/etc/init.d/nginx start”

プログラムの停止 = “/etc/init.d/nginx stop”

PIDが変更された場合は、「/bin/bash -c ‘PROCESS=Nginx /usr/local/bin/slack-webhook.sh’」を実行します。

1サイクル以内に1回再起動した場合は、「/bin/bash -c ‘PROCESS=Nginx /usr/local/bin/slack-webhook.sh’」を実行します。

/bin/bash やローカル bin 内の実行可能ファイルへのパスなど、すべてのパスは完全修飾されている必要があることに注意してください。構成ファイルの変更が完了したら、Monit を再度リロードする必要があります。

「サーバー監視のためのMonitのスタートガイド」に関するベスト動画選定!

【HTTP入門】Webページがブラウザに表示されるまでの流れを解説
現場の声から生まれた Edge Gateway and Video Solution(製品紹介)