MonIT + M \ MonIT =複数サーバーの簡単かつ無料の監視

異なるOSとソフトウェアを使用して、異なるDCにある複数のサーバーを監視するという問題が発生しました。

TKは次のような結果になりました。

  1. システム監視(cpu、mem、負荷平均、帯域幅)。
  2. サービスの状態の監視(実行中かどうか)。
  3. サービスの機能の監視(要求に正しく応答するかどうか)。
  4. サービスが消費するリソースとその一般的な状態を監視します。
  5. このすべての喜びを一元化した「管理パネル」。
  6. 問題を自己修正する電子メール通知(たとえば、クラッシュしたサービスの再起動)。




ソリューションを検索します。


可能なオプションを検討する過程で、5つのオプションが見つかりました。



最初と3番目のオプションは、構成するには複雑すぎ、明らかに不要な(巨大ではあるが)機能があるため、破棄されました。 2番目は、魅力的な価格(995ドル)とMS Windowsでのサーバー要件のために拒否されます。 結局、私はモニットにとどまることにしました。

Monitとは何ですか?



Monitは、次のようなUNIXに似たシステムの包括的な監視を提供する無料のオープンソースアプリケーションです。



このプログラムの主な利点は、リソースの消費量が少ないこと、構成の容易さ(15〜20分に設定)、およびオープンソースコードです。

サポートされているOS GNU \ Linux(ほとんどのパッケージシステムで利用可能)、FreeBSD(ポートで利用可能)、OpenBSD、Solaris、 MacOSX。 サーバーとしてのWindowsはサポートされていませんが、これはリモートWindowsマシンにあるネットワークサービスの監視に干渉しません。

アーキテクチャ-x86、x86_64、PowerPC(Macのみ)、Sparc(Sunのみ)。

インストールと基本セットアップ。



このパッケージは、ほとんどのディストリビューション(Gentoo、Debian、FreeBSD-メインツリー、CentOS、Fedora、RedHat- dagリポジトリ)で利用できます。 パッケージはmonitと呼ばれます。

メインの設定ファイルは/etc/monit.conf(Linuxの場合)または/ usr / local / etc / monitrc(FreeBSDの場合)です。 FreeBSDでは、このファイルを作成する必要があります。

# mv /usr/local/etc/monitrc.sample /usr/local/etc/monitrc

次に、構成ファイルの行のコメントを解除する必要があります。

include /etc/monit.d/*

これで、/ etc / monit.d /のすべての構成ファイルがmonitによって自動的に選択されます。

構成を2つのファイル(便宜上)に分割します-main.conf (一般設定)とmaster.conf (サービス監視設定)。

main.conf


英語でコメントを読むのが面倒な人のために、彼のとコメントの一部の翻訳を紹介します。

set daemon 120 # .
set logfile syslog facility log_daemon # syslogd facility.
set mailserver localhost, # IP\hostname , .
set eventqueue # .
basedir /var/log/monit # , .
slots 100 # .

set mail-format { from: main-servers-alert@example.com } # .
set alert admin@example.com # __ ().
set alert support@example.com { timeout } # ( \).

check system *CHANGEME.HOSTNAME.EXAMPLE.COM* # .
if loadavg (1min) > 6 then alert
if loadavg (5min) > 3 then alert
if memory usage > 75% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert


ご覧のとおり、設定は非常にシンプルで簡単です。

master.conf


master.conf-私の場合、特定のデーモンの監視を担当します。

繰り返しますが、私は彼の例を挙げます(盲目的にコピーアンドペースト_not_ needed_)。 例としてeximを示します 。このロジックは、監視する必要のある各デーモンにこのようなブロックを書き込むために使用されます。

check process exim with pidfile /var/run/exim.pid # PID.
start program = "/etc/init.d/exim stop" # .
stop program = "/etc/init.d/exim start" # .
if cpu > 60% for 2 cycles then alert # CPU > 60% - .
if cpu > 80% for 5 cycles then restart # 5 80% - .
if totalmem > 300.0 MB for 5 cycles then restart # > 300 - .
if children > 50 then restart # 50 - .
if failed port 25 protocol smtp then restart # 25 SMTP - .
if 5 restarts within 5 cycles then timeout # - timeout.


M \ Monit



M \ Monitは、 monitを実行しているサーバー用の集中監視ツールです。

プログラム自体は有料ですが、無料で使用できます。特定の制限はありますが、無料版はサイトで入手できます。

インストールと基本セットアップ。


OSとアーキテクチャのバージョンをダウンロードし 、アーカイブを解凍します。

インストール:

# mv mmonit-2.0.3 /usr/local/mmonit
# cd /usr/local/mmonit
# cp /usr/local/mmonit/doc/startup/mmonit_init /etc/init.d/mmonit


MySQLデータベースを作成し(PgSQLとSQLiteもサポートされています)、コンテンツを追加します。

# cat /usr/local/mmonit/db/mmonit-schema.mysql | mysql -u -p monit


/usr/local/mmonit/conf/server.xml . - XML. :

<Realm url="mysql://user:password@hostname/database"
minConnections="5"
maxConnections="250"
reapConnections="300" />


:

# /etc/init.d/mmonit start


- localhost :8080. admin, swordfish

.

monit m\monit

, main.conf :

set mmonit monit:monit@:8080/collector
set httpd port 2812 and use address allow localhost
allow allow monit:monit


.

. . , .
# cat /usr/local/mmonit/db/mmonit-schema.mysql | mysql -u -p monit


/usr/local/mmonit/conf/server.xml . - XML. :

<Realm url="mysql://user:password@hostname/database"
minConnections="5"
maxConnections="250"
reapConnections="300" />


:

# /etc/init.d/mmonit start


- localhost :8080. admin, swordfish

.

monit m\monit

, main.conf :

set mmonit monit:monit@:8080/collector
set httpd port 2812 and use address allow localhost
allow allow monit:monit


.

. . , .
# cat /usr/local/mmonit/db/mmonit-schema.mysql | mysql -u -p monit


/usr/local/mmonit/conf/server.xml . - XML. :

<Realm url="mysql://user:password@hostname/database"
minConnections="5"
maxConnections="250"
reapConnections="300" />


:

# /etc/init.d/mmonit start


- localhost :8080. admin, swordfish

.

monit m\monit

, main.conf :

set mmonit monit:monit@:8080/collector
set httpd port 2812 and use address allow localhost
allow allow monit:monit


.

. . , .

Source: https://habr.com/ru/post/J60078/


All Articles