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 
      
        
        
        
      
     
      
        
        
        
      
     
      
        
        
        
      
        . 
      
        
        
        
      
     
      
        
        
        
      
              .  .       ,     .