TKは次のような結果になりました。
- システム監視(cpu、mem、負荷平均、帯域幅)。
- サービスの状態の監視(実行中かどうか)。
- サービスの機能の監視(要求に正しく応答するかどうか)。
- サービスが消費するリソースとその一般的な状態を監視します。
- このすべての喜びを一元化した「管理パネル」。
- 問題を自己修正する電子メール通知(たとえば、クラッシュしたサービスの再起動)。
ソリューションを検索します。
可能なオプションを検討する過程で、5つのオプションが見つかりました。
- ナギオス
- どうした
- ザビックス
- モニット
- 独自のスクリプトを書く
最初と3番目のオプションは、構成するには複雑すぎ、明らかに不要な(巨大ではあるが)機能があるため、破棄されました。 2番目は、魅力的な価格(995ドル)とMS Windowsでのサーバー要件のために拒否されます。 結局、私はモニットにとどまることにしました。
Monitとは何ですか?
Monitは、次のようなUNIXに似たシステムの包括的な監視を提供する無料のオープンソースアプリケーションです。
- サーバーの状態(可用性、リソース消費)。
- 監視デーモン(状態、消費リソース、子プロセスの数など)。
- ネットワークサービスの監視(接続性と正しい応答)。
- 特定のイベントに達したときに組み込み(開始\停止\再起動)または独自の(スクリプト)アクションを実行します。
- 電子メールまたは一元化されたWebインターフェイスM \ Monitによる通知。
このプログラムの主な利点は、リソースの消費量が少ないこと、構成の容易さ(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
.
. . , .
# 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
.
. . , .