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





.



. . , .











All Articles