監視 Linuxオペレーティングシステム用のオープンソースのプロアクティブな監視ツールであり、Webブラウザを使用してシステムプロセスを監視し、必要に応じて特定のプロセスのメンテナンスまたは修復(つまり、サービスの再起動)を自動的に実行するのに役立ちます。オンラインに戻すことができます。
Monitは、アクセス許可の変更、タイムスタンプの変更、サイズの変更、およびチェックサムの変更について、プログラム、ファイル、ディレクトリ、およびデバイスをプロアクティブに管理および監視するためにも使用できます。さまざまなプロトコルチェック、TCP / IPネットワークチェックを実行することに限定されず、そのようなチェックにSSLを利用できます。
ログファイルに記録し、カスタマイズ可能なメッセージを介してユーザーに通知します。このガイドは、 Debian 9でMonitを設定するのに役立ちます。 / Ubuntu 16.04 。
このガイドは、以前のバージョンの Debianでも機能するはずです。 およびUbuntu Debian 8など 、 Ubuntu 14.04 、および現在のバージョンのUbuntu、つまりUbuntu 17.04
Monitのインストール:
MonitはDebianで利用できます およびUbuntu リポジトリなので、「 apt-get」を使用するだけです。 」をインストールします。
$ sudo apt-get -y install monit
出力:
Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: sysvinit-core The following NEW packages will be installed: monit 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 309 kB of archives. After this operation, 915 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian stretch/main amd64 monit amd64 1:5.20.0-6 [30 9 kB] Fetched 309 kB in 2s (150 kB/s) Selecting previously unselected package monit. (Reading database ... 124586 files and directories currently installed.) Preparing to unpack .../monit_1%3a5.20.0-6_amd64.deb ... Unpacking monit (1:5.20.0-6) ... Setting up monit (1:5.20.0-6) ... Processing triggers for systemd (232-25) ... Processing triggers for man-db (2.7.6.1-2) ...
Control Monitサービス:
Monitサービスを開始するには、次を実行します:
$ sudo systemctl start monit
Monitを停止するには、次を実行します:
$ sudo systemctl stop monit
Monitを再起動するには、次のコマンドを実行します:
$ sudo systemctl restart monit
Monitのステータスを確認するには、次のコマンドを実行します。
$ sudo systemctl status monit
出力:
● monit.service - LSB: service and resource monitoring daemon Loaded: loaded (/etc/init.d/monit; generated; vendor preset: enabled) Active: active (running) since Tue 2017-06-27 22:36:53 EDT; 9min ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/monit.service └─1094 /usr/bin/monit -c /etc/monit/monitrc Jun 27 22:36:53 server systemd[1]: Starting LSB: service and resource monitoring daemon... Jun 27 22:36:53 server monit[1087]: Starting daemon monitor: monit. Jun 27 22:36:53 server systemd[1]: Started LSB: service and resource monitoring daemon.
起動時にMonitサービスを有効にするには、次のコマンドを実行します:
$ sudo systemctl enable monit
Monitの構成:
「/etc / monit / monitrc 」はMonitのメイン構成ファイルであり、プロセス/サービスの追加の構成ファイルは通常「 / etc / monit / conf-available」に配置されます。 」および「/etc / monit / conf-enabled 」
メインの構成ファイルを編集して、要件を満たすようにMonitの重要なパラメーターを構成します。
$ sudo nano /etc/monit/monitrc
サービスチェックの時間間隔を変更する場合は、以下の値を編集してください。
set daemon 120
Monitによって生成されたアラートを中継するためのメールサーバー情報を設定します。
set mailserver mx.itzgeek.local port 25
障害/イベントが発生した場合にアラートを受け取るメールアドレスを指定します。
set alert [email protected]
特定のイベントのアラートメールのみが必要な場合は、次のようにします。
例:「タイムアウト」でのみアラートを送信 」と「pingに失敗しました 」イベント。
set alert [email protected] only on { timeout, icmp }
イベントをフィルタリングする方法を確認してください 。
デフォルトでは、Monitは、サービスが失敗した場合は1つの通知のみを送信し、サービスが回復した場合は別の通知を送信します。 「N」ごとにアラートを受け取りたい場合 」サービスが失敗状態のままである場合はサイクルします。例、4番目のサイクル。
alert [email protected] with reminder on 4 cycles
Monit Webインターフェイスを有効にする:
Monitには、ステータスサービスを表示し、Webブラウザを介してそれらを管理するための組み込みのWebインターフェイスも付属しています。デフォルトでは、MonitWebインターフェイスは無効になっています。有効にするには、Monit構成ファイル「 / etc / monit / monitrc」を編集します 「。
$ sudo nano /etc/monit/monitrc
「sethttpd port 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'>
TO
set httpd port 2812 and allow admin:monit # require user 'admin' with password 'monit'
Monitサービスを再起動します。
$ sudo systemctl restart monit
Monitサービスがすべてのインターフェースで正しくリッスンしているかどうかを確認してください。
$ sudo netstat -antup | grep -i monit
出力:
tcp 0 0 0.0.0.0:2812 0.0.0.0:* LISTEN 1615/monit tcp6 0 0 :::2812 :::* LISTEN 1615/monit
上記により、Monitは「ポート2812」でリッスンするように設定されます 」すべてのインターフェースで。
Access Monit Webインターフェイス:
以下のURLを使用してWebインターフェースにアクセスし、ユーザー名を「 admin」として使用する必要があります。 」と「monit」としてのパスワード 」をクリックして、Monitのウェブインターフェースにアクセスします。 Monitのホームページは次のようになります。
http:// your-ip-address:2812「サーバー」をクリックします 」を参照して、Monitの詳細情報を確認してください。
Monitのコマンドラインを使用して、Monitのステータスを確認することもできます。
$ sudo monit status
出力:
Monit 5.20.0 uptime: 6m System 'server' status Running monitoring status Monitored monitoring mode active on reboot start load average [0.16] [0.12] [0.17] cpu 1.4%us 0.1%sy 0.1%wa memory usage 509.4 MB [25.4%] swap usage 0 B [0.0%] uptime 15m boot time Wed, 28 Jun 2017 07:46:33 data collected Wed, 28 Jun 2017 08:00:45
監視用のサービスを構成します:
これで、監視する他のサービスを監視するようにMonitを構成する準備が整いました。構成ファイルは「/etc / monit / conf-enabled /」の下に配置できます。 」ディレクトリ。
FTPサービス用にMonitを構成する:
何らかの理由でFTPが停止したときに起動するようにMonitを構成します。 「proftpd」という設定ファイルを作成します 「。
$ sudo nano /etc/monit/conf-available/proftpd
上記のファイルに次の設定を追加します。
check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart
「/etc / monit / conf-enabled /」にシンボリックリンクする構成ファイルを有効にします 」ディレクトリ。
$ sudo ln -s /etc/monit/conf-available/proftpd /etc/monit/conf-enabled/
Monit構文を確認します。
$ sudo monit -t
出力:
Control file syntax OK
Monitサービスをリロードして、変更を有効にします。
$ sudo systemctl reload monit
新しいサービスがウェブインターフェースで表示されるかどうかを確認してください。
サービス名「proftpd」をクリックします 」を参照して、サービスの詳細情報を確認してください。
事前定義されたテンプレート:
Monitには、一部のプロセスおよびサービス用の事前定義された構成テンプレートも付属しています。テンプレートは「/etc / monit / conf-available /」にあります。 「」、「 / etc / monit / conf-enabled /」にシンボリックリンクするだけで有効にできます 」ディレクトリ。
$ sudo ls -al /etc/monit/conf-available/
出力:(事前定義されたテンプレートのリスト)
drwxr-xr-x 2 root root 4096 Jun 27 22:36 . drwxr-xr-x 6 root root 4096 Jun 28 07:54 .. -rw-r--r-- 1 root root 481 Jan 11 08:48 acpid -rw-r--r-- 1 root root 640 Jan 11 08:48 apache2 -rw-r--r-- 1 root root 455 Jan 11 08:48 at -rw-r--r-- 1 root root 691 Jan 11 08:48 cron -rw-r--r-- 1 root root 602 Jan 11 08:48 mdadm -rw-r--r-- 1 root root 669 Jan 11 08:48 memcached -rw-r--r-- 1 root root 703 Jan 11 08:48 mysql -rw-r--r-- 1 root root 521 Jan 11 08:48 nginx -rw-r--r-- 1 root root 471 Jan 11 08:48 openntpd -rw-r--r-- 1 root root 950 Jan 11 08:48 openssh-server -rw-r--r-- 1 root root 683 Jan 11 08:48 pdns-recursor -rw-r--r-- 1 root root 1421 Jan 11 08:48 postfix -rw-r--r-- 1 root root 869 Jan 11 08:48 rsyslog -rw-r--r-- 1 root root 501 Jan 11 08:48 smartmontools -rw-r--r-- 1 root root 306 Jan 11 08:48 snmpd
テンプレートを使用してrsyslog用にMonitを構成します:
たとえば、Monitが提供する事前定義されたテンプレートを使用してapache2サービスを監視しましょう。テンプレートを「/etc / monit / conf-enabled /」にシンボリックリンクします 」ディレクトリ。
$ sudo ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/
Monitサービスをリロードして、変更を有効にします。
$ sudo systemctl reload monit
Webインターフェイスにアクセスします。テンプレートを使用して構成した新しいサービスが見つかります。
モニタリングのテスト:
サービスまたはプロセスが理由もなく停止した場合のMonitのアクションをテストしてみましょう。例:「 proftpd 」デーモン。
$ sudo systemctl stop proftpd
60秒間待つと、Monitは「 proftpd」を開始します 」サービスを自動的に。同じものをMonitログで見つけることができます。
$ sudo tailf /var/log/monit.log
出力:
[EDT Jun 29 01:35:43] error : 'proftpd' process is not running [EDT Jun 29 01:35:43] info : 'proftpd' trying to restart [EDT Jun 29 01:35:43] info : 'proftpd' start: '/etc/init.d/proftpd start'
それで全部です。 Debian 9でMonitを正常に設定しました / Ubuntu 16.04 。フィードバックをお待ちしております。貴重なコメントを以下に投稿してください。