開発運用

Monit サーバー監視設定ガイド

Monitは、Unix系システム用のオープンソースの監視ツールであり、システムリソースの監視、サービスの監視、プロセスの監視などを自動化することができます。このツールを使用すると、サーバーが正常に動作しているかどうかを常に監視し、問題が発生した場合には自動的に通知を送信したり、修復アクションを実行したりすることができます。本記事では、Monitのインストールから設定までの一連の手順を詳しく説明します。

1. Monitのインストール

Monitは、多くのLinuxディストリビューションやUnix系システムに簡単にインストールできます。ここでは、主要なLinuxディストリビューション(UbuntuとCentOS)でのインストール方法を説明します。

Ubuntuの場合

  1. まず、Monitをインストールするために、システムのパッケージリストを更新します。

    bash
    sudo apt update
  2. 次に、Monitをインストールします。

    bash
    sudo apt install monit
  3. インストールが完了したら、Monitが正常にインストールされているかを確認するために、次のコマンドを実行します。

    bash
    monit -V

    これにより、Monitのバージョンが表示されます。

CentOSの場合

  1. CentOSにMonitをインストールするためには、EPEL(Extra Packages for Enterprise Linux)リポジトリを有効にする必要があります。

    bash
    sudo yum install epel-release
  2. 次に、Monitをインストールします。

    bash
    sudo yum install monit
  3. インストール後、以下のコマンドでMonitのバージョンを確認します。

    bash
    monit -V

2. Monitの基本的な設定

Monitがインストールされた後、設定ファイルを編集して、監視するサービスやプロセスを設定する必要があります。Monitの設定ファイルは通常、/etc/monit/monitrcにあります。このファイルを編集するために、テキストエディタを使用します。

設定ファイルの編集

  1. 設定ファイルを開きます。

    bash
    sudo nano /etc/monit/monitrc
  2. 設定ファイルには、Monitが監視するサービスの定義が記述されています。最初に、Monitが使用するHTTPインターフェースを設定します。この設定により、Webブラウザを使ってMonitの監視状態を確認できます。

    bash
    set httpd port 2812 and use address 0.0.0.0 allow admin:monit

    上記の設定では、ポート2812でWebインターフェースを有効にし、管理者ユーザーadminmonitというパスワードを設定します。0.0.0.0は任意のIPアドレスからアクセスできるように設定していますが、必要に応じて特定のIPアドレスを指定することも可能です。

  3. 次に、Monitで監視するサービスを設定します。たとえば、Apache HTTPサーバーを監視する場合は、以下のように記述します。

    bash
    check process apache2 with pidfile /var/run/apache2.pid start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop" if not exist then restart

    この設定は、Apache HTTPサーバーが実行中でない場合に再起動を試みるように指示します。

設定を保存して終了

編集が完了したら、Ctrl + Xを押して保存し、Yを押して確認後、Enterで終了します。

3. Monitの起動と有効化

設定ファイルを編集した後、Monitを起動して、設定を適用する必要があります。

  1. Monitを起動します。

    bash
    sudo systemctl start monit
  2. サーバーの再起動後もMonitを自動的に起動させるために、Monitを有効化します。

    bash
    sudo systemctl enable monit
  3. Monitが正常に動作しているかを確認するために、ステータスを確認します。

    bash
    sudo systemctl status monit

    これでMonitが正常に起動し、サービスの監視を開始します。

4. MonitのWebインターフェースの使用

MonitのWebインターフェースにアクセスするには、ブラウザでhttp://<サーバーのIPアドレス>:2812にアクセスします。ここで、adminというユーザー名と、設定したmonitというパスワードを入力することで、サービスの監視状態を確認したり、手動でサービスの開始や停止を行ったりできます。

5. Monitの高度な設定

Monitは単純なサービスの監視だけでなく、より高度な監視機能も提供しています。以下は、いくつかの高度な設定例です。

メモリ使用量の監視

特定のプロセスが過剰なメモリを使用している場合、Monitでそのプロセスを監視して、メモリ使用量が指定したしきい値を超えた場合に警告を発したり、自動的に再起動することができます。

bash
check process apache2 with pidfile /var/run/apache2.pid if memory > 100 MB then restart

サービスのヘルスチェック

Webサービスなどの場合、Monitを使ってHTTPリクエストを定期的に送信し、サービスが正常に応答しているかを確認することができます。

bash
check host localhost with address 127.0.0.1 if failed port 80 protocol http then restart

この設定では、ローカルホストでポート80のHTTPサービスが応答しない場合に、サービスを再起動するように指示します。

6. Monitのログ管理

Monitは監視したイベントやアクションをログに記録します。これにより、監視しているサービスの状態を後で確認することができます。ログファイルは通常、/var/log/monit.logに保存されます。

bash
tail -f /var/log/monit.log

このコマンドでリアルタイムにMonitのログを確認することができます。

まとめ

Monitは、サーバーやサービスの監視を簡単に自動化するための強力なツールです。インストールから設定、Webインターフェースの使用方法、さらには高度な監視設定に至るまで、このツールを駆使することで、サーバーの稼働状態を安定させることができます。定期的な監視と適切なアクションを自動化することで、システム管理者は迅速に問題に対応でき、サーバーのダウンタイムを最小限に抑えることができます。

Back to top button