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

CentOS 7 /RHEL7にMonitをインストールする方法

Monitは、Linuxオペレーティングシステム用のオープンソースプロセス監視ツールであり、Webブラウザを使用してシステムプロセスを監視できます。また、必要に応じて、特定のプロセスをオンラインに戻すことができるように、特定のプロセスのメンテナンスまたは修復を自動的に実行します。

Monitは、タイムスタンプの変更、チェックサムの変更、またはサイズの変更について、プログラム、ファイル、ディレクトリ、およびデバイスの管理と監視にも使用できます。さまざまなTCP/IPネットワークチェック、プロトコルチェックを実行することに限定されず、そのようなチェックにSSLを利用できます。

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

このガイドは、MonitをCentOS 7 /RHEL7にインストールするのに役立ちます。

Monitのインストール

EPELリポジトリを有効にして、最新バージョンのMonitをダウンロードします。

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

YUMコマンドを使用してMonitをインストールします。

yum -y install monit

次のコマンドを使用して監視を開始します。

monit

出力:

Starting Monit 5.25.1 daemon with http interface at [localhost]:2812

モニットの状態を確認してください。

monit status

出力:

Monit 5.25.1 uptime: 0m

System 'server.itzgeek.local'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  load average                 [0.01] [0.05] [0.04]
  cpu                          0.0%us 0.0%sy 0.0%wa
  memory usage                 170.2 MB [29.0%]
  swap usage                   0 B [0.0%]
  uptime                       4m
  boot time                    Sun, 09 Feb 2020 04:55:42
  data collected               Sun, 09 Feb 2020 05:00:00

Monitの構成

Monitの主な設定ファイルは/etc/monitrcです。要件に合わせて、Monit構成ファイルにいくつかの変更を加えます。

vi /etc/monitrc

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

set daemon  30

アラートはによって構成できます。

set mailserver mx.itzgeek.local port 25

アラートテンプレートは、構成ファイル自体にあります。この記事の下部にある補足情報を参照してください。
ログ設定は、次のファイルを使用して変更できます。

set log /var/log/monit

MonitWebインターフェイスを有効にする

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

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

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
    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をリロードします。

systemctl restart 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インターフェースが起動したら、監視するサービスの設定を開始できます。

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

SSHサービス用に構成します。

vi /etc/monit.d/sshdmonitor

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

check process sshd with pidfile /var/run/sshd.pid
start program  "/usr/bin/systemctl start sshd.service"
stop program  "/usr/bin/systemctl stop sshd.service"
if failed port 22 protocol ssh then restart

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

vi /etc/monit.d/syslogmonitor

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

check process syslogd with pidfile /var/run/syslogd.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 reload

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

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

テストモニタリング

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

systemctl stop httpd

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

cat /var/log/monit.log

出力:

[UTC Feb  9 05:18:00] error    : 'httpd' process is not running
[UTC Feb  9 05:18:00] info     : 'httpd' trying to restart
[UTC Feb  9 05:18:00] info     : 'httpd' start: '/usr/bin/systemctl start httpd.service'
[UTC Feb  9 05:18:31] info     : 'httpd' process is running with pid 1959

Monitを使用したメールアラート

特定のサービスが失敗したときにシステム管理者に警告するために、Monitで利用可能な事前定義された警告テンプレートがあります。

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

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 @ ITzGeek
}

ここで受信者アドレスを設定します。注:すべての種類のアクションに関するアラートを受け取ります

set alert root@localhost

ユーザーが開始したサービスの再起動について警告したくない場合は、以下の構成を追加してください。

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

最後に、メールを受信できるようにメールサーバーの設定を行います。ここでは、ローカルリレーを使用して、端末を介してメールアラートを読み取り、テストを検証できるようにしています。

set mailserver localhost

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

monit reload

アラートの例

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

cat /var/spool/mail/root

メール:

From [email protected]  Sun Feb  9 05:22:48 2020
Return-Path: <[email protected]>
X-Original-To: root@localhost
Delivered-To: [email protected]
Received: from server.itzgeek.local (localhost [IPv6:::1])
        by server.itzgeek.local (Postfix) with ESMTP id 670E21082B34
        for <root@localhost>; Sun,  9 Feb 2020 05:22:48 +0000 (UTC)
From: "Monit" <[email protected]>
To: [email protected]
Subject: monit alert --  Does not exist httpd
Date: Sun, 09 Feb 2020 05:22:48 GMT
X-Mailer: Monit 5.25.1
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:        Sun, 09 Feb 2020 05:22:48
                 Action:      restart
                 Host:        server.itzgeek.local
                 Description: process is not running

            Your faithful employee,
            Monit @ ITzGeek

From [email protected]  Sun Feb  9 05:23:18 2020
Return-Path: <[email protected]>
X-Original-To: root@localhost
Delivered-To: [email protected]
Received: from server.itzgeek.local (localhost [IPv6:::1])
        by server.itzgeek.local (Postfix) with ESMTP id B22AF1082B37
        for <root@localhost>; Sun,  9 Feb 2020 05:23:18 +0000 (UTC)
From: "Monit" <[email protected]>
To: [email protected]
Subject: monit alert --  Exists httpd
Date: Sun, 09 Feb 2020 05:23:18 GMT
X-Mailer: Monit 5.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>

Exists Service httpd
                 Date:        Sun, 09 Feb 2020 05:23:18
                 Action:      alert
                 Host:        server.itzgeek.local
                 Description: process is running with pid 2139

            Your faithful employee,
            Monit @ ITzGeek

または

Mutt(yum install -y mutt)電子メールクライアントを使用します。

結論

それで全部です。 CentOS 7 /RHEL7で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にコンパスをインストールする方法