Monit(Linuxプロセスおよびサービス監視)プログラムをインストールおよびセットアップする方法


Monitは、UNIX/Linuxベースのサーバープロセス、ファイル、ディレクトリ、チェックサム、権限、ファイルシステム、およびApache、Nginx、MySQL、FTP、SSH、Sendmailなどのサービスを自動的に監視および管理する無料のオープンソースで非常に便利なツールです。システムを構築し、システム管理者に優れた便利な監視機能を提供します。

monitにはユーザーフレンドリーなWebインターフェイスがあり、ネイティブHTTP(S)Webサーバーまたはコマンドラインインターフェイスを使用して、システムステータスを直接表示し、プロセスをセットアップできます。つまり、monit Webインターフェイスにアクセスして表示するには、ApacheやNginxなどのWebサーバーをシステムにインストールする必要があります。

Monitには、実行されていない場合はプロセスを開始し、応答しない場合はプロセスを再開し、高リソースを使用している場合はプロセスを停止する機能があります。さらに、Monitを使用して、ファイル、ディレクトリ、およびファイルシステムの変更、チェックサムの変更、ファイルサイズの変更、またはタイムスタンプの変更を監視することもできます。 Monitを使用すると、リモートホストのTCP/IPポート、サーバープロトコル、およびpingを監視できます。 Monitは、独自のログファイルを保持し、重大なエラー状態と回復ステータスについて警告します。

この記事は、RHEL、CentOS、Fedora、Ubuntu、Linux Mint、Debian LinuxオペレーティングシステムでのMonitのインストールと構成に関する簡単なガイドを説明するために書かれていますが、ScientificLinuxとも簡単に互換性があるはずです。

ステップ1:Monitをインストールする

デフォルトでは、Monitツールはシステムベースリポジトリから利用できません。サードパーティのepelリポジトリを追加して有効にし、RHEL/CentOSシステムにmonitパッケージをインストールする必要があります。 epelリポジトリを追加したら、次のyumコマンドを実行してパッケージをインストールします。 Ubuntu/Debian/Linuxの場合、Mintユーザーは、示されているようにapt-getコマンドを使用して簡単にインストールできます。

# yum install monit
$ sudo apt-get install monit

ステップ2:Monitを構成する

Monitは構成が非常に簡単です。実際、構成ファイルは非常に読みやすく、ユーザーが理解しやすいように作成されています。実行中のサービスを2分ごとに監視するように設計されており、ログを「/ var/log/monit」に保持します。

Monitには、ウェブサーバーを使用してポート2812で実行されるウェブインターフェースがあります。 Webインターフェースを有効にするには、monit構成ファイルを変更する必要があります。 (RedHat/CentOS/Fedora)の下の/etc/monit.confにあるmonitのメイン構成ファイルと(Ubuntu/Debian/Linux Mint)の/ etc/monit/monitrcファイル。選択したエディターを使用してこのファイルを開きます。

# vi /etc/monit.conf
$ sudo vi /etc/monit/monitrc

次に、次のセクションのコメントを解除し、サーバーのIPアドレスまたはドメイン名を追加します。誰でも接続してmonitユーザーとパスワードを変更できるようにします。または、デフォルトのものを使用することもできます。

 set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow @monit           # allow users of group 'monit' to connect (rw)
     allow @users readonly  # allow users of group 'users' to connect readonly

構成したら、monitサービスを開始して、新しい構成設定を再読み込みする必要があります。

# /etc/init.d/monit start
$ sudo /etc/init.d/monit start

これで、「http:// localhost:2812」または「http://example.com:2812」に移動して、monitWebインターフェースにアクセスできるようになります。次に、ユーザー名を「admin」、パスワードを「monit」と入力します。以下のような画面が表示されます。

ステップ3:監視サービスを追加する

monit Webインターフェースが正しくセットアップされたら、監視するプログラムを(RedHat/CentOS/Fedora)の下の/etc/monit.confおよび(Ubuntu/Debian/Linux Mint)の/ etc/monit/monitrcファイルに追加し始めます。ボトム。

以下は、monitのいくつかの便利な構成例です。これは、サービスがどのように実行されているか、pidfileを保持している場所、サービスを開始および停止する方法などを確認するのに非常に役立ちます。

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
check process apache with pidfile /run/apache2.pid
start program = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program  = "/etc/init.d/apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/sshd start"
stop program "/etc/init.d/sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

監視用にすべてのプログラムを構成したら、monit構文でエラーを確認します。エラーが見つかった場合は修正しますが、何が問題だったのかを理解するのはそれほど難しくありません。 「制御ファイル構文OK」のようなメッセージが表示された場合、またはエラーが表示されない場合は、先に進むことができます。

# monit -t
$ sudo monit -t

考えられるすべてのエラーを修正したら、次のコマンドを入力してmonitサービスを開始できます。

# /etc/init.d/monit restart
$ sudo /etc/init.d/monit restart

ログファイルを確認することで、monitサービスが開始されていることを確認できます。

# tail -f /var/log/monit
$ sudo tail -f /var/log/monit.log
[BDT Apr  3 03:06:04] info     : Starting monit HTTP server at [localhost:2812]
[BDT Apr  3 03:06:04] info     : monit HTTP server started
[BDT Apr  3 03:06:04] info     : 'tecmint.com' Monit started
[BDT Apr  3 03:06:04] error    : 'nginx' process is not running
[BDT Apr  3 03:06:04] info     : 'nginx' trying to restart
[BDT Apr  3 03:06:04] info     : 'nginx' start: /etc/init.d/nginx

これは、監視のためのすべてのプロセスを追加した後の監視方法です。

参照リンク

  1. Monit Home Page
  2. Monit Documentation
  3. Monit Configuration Examples