Monit - Linux システムを管理および監視するためのツール


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

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

[あなたも好きかもしれません: Linux のパフォーマンスを監視するための 20 のコマンド ライン ツール]

Monit には、プロセスが実行されていない場合はプロセスを開始し、応答していない場合はプロセスを再起動し、大量のリソースを使用している場合はプロセスを停止する機能があります。さらに、Monit を使用して、ファイル、ディレクトリ、およびファイル システムの変更、チェックサムの変更、ファイル サイズの変更、またはタイムスタンプの変更を監視することもできます。

Monit を使用すると、リモート ホストの TCP/IP ポート、サーバー プロトコル、および ping を監視できます。 Monit は独自のログ ファイルを保持し、重大なエラー状態と回復状態について警告します。

この記事は、Debian ベースの Linux ディストリビューションでの Monit のインストールと構成に関する簡単なガイドを説明するために書かれています。

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

デフォルトでは、Monit 監視プログラムはデフォルトのシステム ベース リポジトリからは利用できません。CentOS、Rocky Linux、AlmaLinux などの RHEL ベースのディストリビューションに monit パッケージをインストールするには、サードパーティの epel リポジトリを追加して有効にする必要があります。

--------- On RHEL 9 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm 

--------- On RHEL 8 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

--------- On RHEL 7 based Systems ---------
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

epel リポジトリを追加したら、次の yum コマンドを実行して Monit パッケージをインストールします。

# yum install monit
OR
# dnf install monit  [On Fedora Linux]

Ubuntu/Debian/Linux Mint ユーザーは、示されているように apt コマンドを使用して簡単にインストールできます。

$ sudo apt install monit

ステップ 2: Linux での Monit の構成

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

Monit には、Web サーバーを使用してポート 2812 で実行される Web インターフェイスがあります。 Web インターフェイスを有効にするには、monit 構成ファイルを変更する必要があります。

(RedHat/CentOS/Fedora) の /etc/monit.conf と (Ubuntu/Debian/Linux Mint) の /etc/monit/monitrc ファイルにある monit のメイン構成ファイル。

選択したエディターを使用してこのファイルを開きます。

# vi /etc/monitrc
Or
$ sudo nano /etc/monit/monitrc

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

set httpd port 2812 and
     use address 0.0.0.0  # only accept connections from localhost
     allow 0.0.0.0/0        # 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 サービスを開始、有効化、検証して、新しい構成設定をリロードする必要があります。

# systemctl start monit
# systemctl enable monit
# systemctl status monit

これで、次の URL に移動して、monit Web インターフェイスにアクセスできるようになります。

http://localhost:2812
OR
http://ip-address:2812
Or
http://example.com:2812

次に、ユーザー名を「admin」、パスワードを「monit」として入力します。以下のような画面が表示されるはずです。

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

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

以下は、monit の便利な構成例です。サービスがどのように実行されているか、プロファイルがどこに保存されているか、サービスを開始および停止する方法などを確認するのに非常に役立ちます。

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/usr/bin/systemctl httpd start"
stop program = "/usr/bin/systemctl 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 = "/usr/bin/systemctl apache2 start" with timeout 60 seconds
stop program  = "/usr/bin/systemctl apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/bin/systemctl nginx start"
stop program = "/usr/bin/systemctl nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/usr/bin/systemctl mysqld start"
stop program = "/usr/bin/systemctl 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 "/usr/bin/systemctl sshd start"
stop program "/usr/bin/systemctl sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

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

# monit -t
Or
$ sudo monit -t

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

# systemctl monit restart
OR
$ sudo systemctl monit restart

これは、監視用のすべての Linux サービスを追加した後のモニターの外観です。