GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 8 /RHEL8にMonitをインストールする方法

Monitは、Linuxオペレーティングシステム用のオープンソースのプロセス監視ツールであり、システムプロセスの監視に役立ちます。サービス/プロセスがダウンするたびに、特定のプロセスのメンテナンスと修復が自動的に行われ、確実にオンラインに戻されます。

Monitは、プログラム、ファイル、ディレクトリ、ファイルシステム、TCP / IPネットワークチェック、プロトコルチェックの管理と監視にも使用でき、そのようなチェックにSSLを利用できます。

ログファイルに記録し、カスタマイズ可能なメッセージを介してユーザーに通知します。

このガイドは、CentOS 8 /RHEL8でMonitをセットアップするのに役立ちます。

Monitのインストール

MonitはまだCentOS8/ RHEL 8のrpmとしてパッケージ化されていないため、必要なビルドツールをインストールします。

dnf install -y git gcc glibc make glibc-devel kernel-headers autoconf automake libtool bison flex libzip-devel pam-devel openssl openssl-devel

コンパイル用にMonitソースコードのクローンを作成します。

git clone https://bitbucket.org/tildeslash/monit.git

次の一連のコマンドを使用してMonitをコンパイルします。

cd monit

./bootstrap

./configure

make

make install

Monitの構成

機能性

ダウンロードしたソースから/etcディレクトリにmonitrcファイルをコピーします。

cp monitrc /etc/

要件に合わせて、Monit構成ファイルにいくつかの変更を加えます。

vi /etc/monitrc

デフォルトでは、Monitは30秒間隔でサービスをチェックするように設定されています。この間隔は、以下の行を変更することで変更できます。

set daemon 30

受信トレイでアラートを受信するようにメールサーバーを設定できます。

set mailserver mx.itzgeek.local port 25
電子メールアラートは、構成ファイル自体にある組み込みのテンプレートを使用してカスタマイズできます。詳細については、この記事の下部にあるMonitによるメールアラートを参照してください。

ログの設定は、以下のファイルを使用して変更できます。

set log /var/log/monit.log

以下の行のコメントを外してください。ここにサービス監視ファイルを配置します。

include /etc/monit.d/*

Webインターフェイス

Monitは、構成されたサービスを監視および管理するためのWebインターフェースも提供します。デフォルトでは、Monitは2812ポートでリッスンしますが、設定する必要があります。

Monitの構成ファイル/etc/monitrcを編集します。

vi /etc/monitrc

httpdポート2812を探し、次のエントリを変更します。

FROM:

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'
    #with ssl {            # enable SSL/TLS and set path to server certificate 
    # pemfile: /etc/ssl/certs/monit.pem 
    #}

TO:

set httpd port 2812 and
    use address 0.0.0.0  # only accept connection from localhost (drop if you use M/Monit)
    allow  0.0.0.0/0         # allow localhost to connect to the server and
    allow admin:monit      # require user 'admin' with password 'monit'
    #with ssl {            # enable SSL/TLS and set path to server certificate
    #    pemfile: /etc/ssl/certs/monit.pem
    #}

上記の設定から、Monitはすべてのインターフェイスのポート2812でリッスンします。管理者ユーザーは、どのネットワークからでもWebインターフェースにアクセスできます。

システムセットアップ

次に、システムの起動時にMonitを自動起動するsystemdファイルを作成します。

vi /lib/systemd/system/monit.service

以下の設定を使用してください。

 # This file is systemd template for monit service. To
 # register monit with systemd, place the monit.service file
 # to the /lib/systemd/system/ directory and then start it
 # using systemctl (see below).
 #
 # Enable monit to start on boot:
 #         systemctl enable monit.service
 #
 # Start monit immediately:
 #         systemctl start monit.service
 #
 # Stop monit:
 #         systemctl stop monit.service
 #
 # Status:
 #         systemctl status monit.service

 [Unit]
 Description=Pro-active monitoring utility for unix systems
 After=network.target
 Documentation=man:monit(1) https://mmonit.com/wiki/Monit/HowTo

 [Service]
 Type=simple
 KillMode=process
 ExecStart=/usr/local/bin/monit -I
 ExecStop=/usr/local/bin/monit quit
 ExecReload=/usr/local/bin/monit reload
 Restart = on-abnormal
 StandardOutput=null

 [Install]
 WantedBy=multi-user.target                        

systemdデーモンをリロードします。

systemctl daemon-reload

Monitサービスを開始します。

systemctl start monit

起動時にMonitを自動起動します。

systemctl enable monit

ファイアウォール

ポート2812で実行されているMonitWebインターフェイスへのアクセスを許可するようにファイアウォールを構成します。

firewall-cmd --permanent --add-port=2812/tcp

firewall-cmd --reload

AccessMonitWebインターフェース

Webブラウザーを開き、以下のURLにアクセスします。

http://your.ip.addr.ess:2812

または

http://your.fq.dn:2812

前の手順で説明したユーザー名とパスワードを使用します。

Monitのホームページは次のようになります:

Monitで監視するためのサービスを構成する

Webインターフェースが起動すると、監視する他のサービスの設定を開始できます。

mkdir /etc/monit.d/

構成ファイルは/etc/monit.d/ディレクトリに配置できます。

syslogのサービスを構成します。

vi /etc/monit.d/syslogmonitor

以下の情報を使用してください。

check process SysLog with pidfile /var/run/rsyslogd.pid
start program = "/usr/bin/systemctl start rsyslog.service"
stop program = "/usr/bin/systemctl stop rsyslog.service"
で確認します。

HTTPの構成サービス。

vi /etc/monit.d/httpdmonitor

以下の情報を使用してください。

check process HTTPD with pidfile /var/run/httpd/httpd.pid
start program "/usr/bin/systemctl start httpd.service"
stop program "/usr/bin/systemctl stop httpd.service"
if failed port 80 protocol http then restart

構成したら、Monit構文をテストします

monit -t

出力:

Control file syntax OK

Monitをリロードして、変更を有効にします。

systemctl reload monit

Webインターフェイスにアクセスします。今設定した新しいサービスが表示されます。

サービスをクリックすると、特定のサービスに関する詳細情報が表示されます。ここでは、サービスの開始、停止、再開などのアクションを実行したり、監視を無効にしたりできます。

モニタリングのテスト

次に、テストのためにHTTPサービスを停止します。

systemctl stop httpd

30秒待つと、Monitはsyslogを自動的に開始します。 Monitログで見つけることができます。

cat /var/log/monit.log

出力:

[EST Jan 27 20:37:03] error    : 'HTTPD' process is not running
[EST Jan 27 20:37:03] info     : 'HTTPD' trying to restart
[EST Jan 27 20:37:03] info     : 'HTTPD' start: '/usr/bin/systemctl start httpd.service'
[EST Jan 27 20:37:38] info     : 'HTTPD' process is running with pid 25270
Monitを使用したメールアラート

特定のサービスに障害が発生したときにシステム管理者に警告するために、Monitで使用可能な事前定義された警告テンプレートがあります。このデモでは、ローカルリレー(メールサーバー)を使用してrootユーザーに警告します。

構成ファイルを編集します。

vi /etc/monitrc

要件に応じて、以下のアラートテンプレートを更新できます。

set mail-format {
  from:    Monit <monit@$HOST>
  subject: monit alert --  $EVENT $SERVICE
  message: $EVENT Service $SERVICE
                Date:        $DATE
                Action:      $ACTION
                Host:        $HOST
                Description: $DESCRIPTION

           Your faithful employee,
           Monit
}

すべてのタイプのアクションに関するアラートを受信するには、ここで受信者アドレスを設定します

set alert root@localhost

ここで受信者アドレスを設定して、ユーザーが開始したサービスの再起動時にアラートを出さないようにします。

set alert root@localhost not on { instance, action }

最後に、メールを受信できるようにメールサーバーの構成を設定します。

set mailserver localhost

ここでは、ローカルリレーdnf install -y sendmail &&systemctl start sendmailを使用して、端末を介して電子メールアラートを読み取り、アラートメカニズムを確認できるようにしています。

サービスをリロードします。

systemctl reload monit

アラートの表示

Monitは、HTTPプロセスに関する電子メールをrootユーザーに送信しました。

cat /var/spool/mail/root

出力:

To: [email protected]
Subject: monit alert --  Does not exist HTTPD
Date: Tue, 28 Jan 2020 01:44:05 GMT
X-Mailer: Monit 5.27.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>

Does not exist Service HTTPD
                Date:        Mon, 27 Jan 2020 20:44:05
                Action:      restart
                Host:        centos8.itzgeek.local
                Description: process is not running

           Your faithful employee,
           Monit @ ITzGeek

From [email protected]  Mon Jan 27 20:44:47 2020
Return-Path: <[email protected]>
Received: from centos8.itzgeek.local (localhost [127.0.0.1])
        by centos8.itzgeek.local (8.15.2/8.15.2) with ESMTP id 00S1ilKL026285
        for <root@localhost>; Mon, 27 Jan 2020 20:44:47 -0500
From: "Monit" <[email protected]>
To: [email protected]
Subject: monit alert --  Exists HTTPD
Date: Tue, 28 Jan 2020 01:44:47 GMT
X-Mailer: Monit 5.27.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>

Exists Service HTTPD
                Date:        Mon, 27 Jan 2020 20:44:47
                Action:      alert
                Host:        centos8.itzgeek.local
                Description: process is running with pid 26069

           Your faithful employee,
           Monit @ ITzGeek

または

アラートを表示するには、メールクライアントであるmutt dnf install-ymuttを使用します。

結論

それで全部です。 CentOS 8 /RHEL8でMonitを正常に構成しました。


Cent OS
  1. RHEL 8 /CentOS8にphpMyAdminをインストールする方法

  2. CentOS 8 /RHEL8にIcinga2をインストールする方法

  3. CentOS6にMonitをインストールする方法

  1. RHEL 8 /CentOS8にP7Zipをインストールする方法

  2. RHEL 8 /CentOS8にntfs-3gをインストールする方法

  3. PHP-mbstringをRHEL8/CentOS8にインストールする方法

  1. RHEL 8 /CentOS8にphantomjsをインストールする方法

  2. DropboxをRHEL8/CentOS8にインストールする方法

  3. RHEL 8 /CentOS8にコンパスをインストールする方法