監視

機能

ポートチェックにより、仮想専用サーバーのサービスを監視する機能です。 監視システムから監視対象となる仮想専用サーバー(NIC1またはNIC4)に接続し、 監視対象のサービスが応答しなかった場合、コントロールパネルに登録したメールアドレスに通知メールを送信します。通知メールはサービスが復旧するまで1時間につき1通の間隔で送信されます。 また、サービスが復旧した場合には復旧通知のメールを送信します。

監視対象として設定できるポートは以下の通りです。
※53(DNS)のみUDPポート、その他のポートはTCPポート

  • 21(ftp)
  • 22(ssh)
  • 25(smtp)
  • 53(DNS)
  • 80(http)
  • 110(pop3)
  • 143(imap)
  • 443(https)
  • 587(submission)
  • 3306(mysql)
  • 5432(postgreSQL)

監視間隔

監視は一定の間隔で行われています。状態によって間隔が異なります。

状態 監視間隔 通知メール
通常時 監視間隔30分 通知なし
異常検知時 監視間隔5分 異常3回目で通知→異常継続時へ移行
異常継続時 監視間隔30分 1回/1時間
復旧時 監視間隔30分 1回/復旧検知時

通知メール

異常や復旧を検知したときに、登録メールアドレス宛にメールが配送されます。
メールの形式は以下のようになっています。

■異常検知時

タイトル PROBLEM: [IPアドレス] [サービス名] is CRITICAL(WARNING)
本文 ***** 仮想専用サーバ 監視サービス *****
PROBLEM: [IPアドレス] [サービス名]
状態: CRITICAL(またはWARNING)
継続時間:異常が継続している時間
Date: 検知時間
追加情報:
(サーバーからの情報)
例)CRITICAL - Socket timeout after 10 seconds

■復旧時

タイトル 復旧時 RECOVERY: [IPアドレス] [サービス名] is OK
本文 ***** 仮想専用サーバ 監視サービス *****
PROBLEM: [IPアドレス] [サービス名]
状態: OK
継続時間: 復旧を確認した時間
Date: 検知時間
追加情報:
(サーバーからの情報)
例)HTTP OK: HTTP/1.1 200 OK - 266 bytes in 0.007 second response time

ポート監視設定

仮想専用サーバーで、Web等のサーバー設定をした後で、コントロールパネルにてポート監視設定を行ってください。
※仮想専用サーバー側の設定前に監視を開始すると、登録したメールアドレス宛に通知メールが送信されます。
コントロールパネルにログインして「その他ツール」メニューから「監視」を選択します。

ディスクの追加

[ 監視設定を行う ]

ポート監視の設定状態 「有効化」ボタン:監視開始
「無効化」ボタン:監視停止
連絡先メールアドレス サービス停止・復旧を通知するメールアドレスを登録(最大3つまで)
※「設定」ボタンをクリック後にに反映される
ポート番号[サービス名] 監視するサービスを選択
※「設定」ボタンをクリック後にに反映される
設定 「設定」ボタン:上記で変更した連絡先メールアドレス、ポート番号の設定変更を反映
※ポート監視の設定状態が「無効」のときに、「設定」ボタンをクリックすると、自動的に「有効」に切り替わる
  1. メールアドレスを入力し監視したいサービスのチェックを「on」にします。
    (例)すべてのサービスを「on」にした場合
    ディスクの追加
  2. 「設定ボタン」をクリックすると、「ポート監視を有効にしました。」と表示され、ポート監視が有効になります。

ポート監視設定は設定を行ってから1時間以内に反映され、変更が有効になります。 監視を停止したい場合は停止したいサービスのチェックを「off」にして、「設定」をクリックするか、「無効化」ボタンですべての監視を停止します。

仮想専用サーバーの設定

ポート監視開始前に仮想専用サーバーで監視設定をおこないます。

[iptables・firewalld]

初期状態ではiptablesやfirewalldによって、外部からの通信が制御されています。以下を参考にポート監視用サーバーからの通信を許可してください。

CentOS6:iptables
CentOS7: firewalld

続いて、監視する各サービスの設定を変更します。

[ ftp・smtp・pop3・imap・submissionを監視する場合 ]

初期状態の場合、ftp・smtp・pop3・imap・submissionについてはアクセス制限が行われておりませんので、サービスを動作させておけば監視することが出来ます。

※Postfixをご利用の場合は、初期状態の場合、/etc/postfix/main.cfに以下の設定が必要です。
・inet_interfaces= localhostの行頭に#を追加します。
・新たに“inet_interfaces=お客さま仮想専用サーバーのNIC1のIPアドレス”行を追加します。

#inet_interfaces = localhost
             
inet_interfaces = お客様のVPSのIPアドレス(お客様仮想専用サーバーのNIC1のIPアドレス)

postfixご利用でsubmissionポートの監視を行う場合は、/etc/postfix/master.cfに以下の設定が必要です。

・「submission inet~」の行頭にある#を削除します。

# =========================================================
            
# service type  private unpriv  chroot  wakeup  maxproc command + args

#               (yes)   (yes)   (yes)   (never) (100)

# =========================================================

smtp      inet  n       -       n       -       -       smtpd

#submission inet n       -       n       -       -       smtpd 

設定変更の後はサービスの再読み込みが必要です。

[root@localhost ~]#service postfix reload

[ sshを監視する場合 ]

sshdはアクセス制限が行われておりますので、sshdを起動させた上でroot権限で以下のコマンドを実行しておく必要があります。

[root@localhost ~]# echo "sshd : 203.138.84.18" >> /etc/hosts.allow

[ http・httpsを監視する場合 ]

ドキュメントルートのディレクトリ(Webサーバーの一番上の階層として見えるディレクトリ)に index.htmlという名前のファイルを置き、監視用サーバー203.138.84.18からアクセスできる状態にしておいてください。ドキュメントルートは初期状態では/var/www/htmlになっています。

[ DNSを監視する場合 ]

    監視用サーバー203.138.84.18から localhost というドメイン名を 正引き検索した時に任意のIPアドレスを返す状態にしておいてください。

  1. viなどのテキストエディタで /etc/named.conf ファイルを開いてください。
    viで /etc/named.conf ファイルを開くコマンドは以下の通りです。
  2. [root@localhost ~]# vi /etc/named.conf

    ファイルに以下の設定を追記してください。

    ・「listen-on port 53 { お客さま仮想専用サーバーのNIC1のIPアドレス; };」を追加
    ・「allow-query { localhost; };」の行頭に「//」を追加allow-query { localhost; };
    ・「allow-query { any; };」を追加al
    ・recursion recursionをyesからnoに変更

    options {
                
            listen-on port 53 { 127.0.0.1; };
            
            listen-on port 53 { (お客さま仮想専用サーバーのNIC1のIPアドレス); };
            
            listen-on-v6 port 53 { ::1; };
            
            directory       "/var/named";
            
            dump-file       "/var/named/data/cache_dump.db";
            
            statistics-file "/var/named/data/named_stats.txt";
            
            memstatistics-file "/var/named/data/named_mem_stats.txt";
            
     //        allow-query     { localhost; };
    
             allow-query     { any; }; 
            
            recursion  no;
  3. viなどのテキストエディタで localhost(named.localhost)のゾーンファイルを追加します。
    viで /var/named/named.localhost ファイルを開くコマンドは以下の通りです。
  4. [root@localhost ~]# vi /var/named/named.localhost

    入力画面が表示されたら、ファイルの内容を以下のように記述してファイルを上書き保存してください。

    $TTL    86400
                
    @               IN SOA  @       root (
    
                                            42              ; serial (d. adams)
                                            
                                            3H              ; refresh
                                            
                                            15M             ; retry
                                            
                                            1W              ; expiry
                                            
                                            1D )            ; minimum
                                            
                    NS           @
                    
                    A            127.0.0.1
                    
                    AAAA         ::1
  5. service named restart コマンドを実行し、ネームサーバーの再起動を実行してください。
[root@localhost ~]# service named restart

[ postgreSQLを監視する場合 ]

インターネットからの接続を受け付ける設定を行い、さらに監視用サーバー203.138.84.18からパスワードなしでログインできるように設定しておく必要があります。

初期状態の場合はデータベースを初期化した後、PostgreSQLを起動させます。

[root@localhost ~]#  service postgresql initdb
            
Initializing database:                                     [  OK  ]

[root@localhost ~]# service postgresql start

Starting postgresql service:                                   [  OK  ]

以下のように設定すれば監視することが出来ます。
下から2番目の行は表示の都合上改行されていますが、実際には1行に続けて入力してください。

[root@localhost ~]# su - postgres
            
-bash-4.1$ createuser nagios

Shall the new role be a superuser? (y/n) y

-bash-4.1$ logout

[root@localhost ~]# echo "PGOPTS=-i" >> /etc/sysconfig/pgsql/postgresql

[root@localhost ~]# echo "host all nagios203.138.84.18 255.255.255.255

 trust" >> /var/lib/pgsql/data/pg_hba.conf

変更後は設定の再読み込みを行います。

[root@localhost ~]# service postgresql reload

[ MySQLを監視する場合 ]

監視用サーバー203.138.84.18からnagiosという名前のユーザでログインできるように設定しておく必要があります。
初期状態の場合はMySQLを起動させ、以下のように設定すれば監視することが出来ます。 203.138.84.18を例とすると以下のようになります。

 [root@localhost ~]# mysql
            
Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A


Database changed
mysql> select User,Host,Password from user;
+--------+------------------------+----------+
| User   | Host                   | Password |
+--------+------------------------+----------+
| root   | localhost              |          |
| root   | localhost.localdomain  |          |
| root   | 127.0.0.1              |          |
|        | localhost              |          |
|        | localhost.localdomain  |          |
+--------+------------------------+----------+
5 rows in set (0.00 sec)


mysql> grant select on *.* to nagios@203.138.84.18;
Query OK, 0 rows affected (0.00 sec)


mysql> select User,Host,Password from user;
+--------+------------------------+----------+
| user   | Host                   | Password |
+--------+------------------------+----------+
| root   | localhost              |          |
| root   | localhost.localdomain  |          |
| root   | 127.0.0.1              |          |
|        | localhost              |          |
|        | localhost.localdomain  |          |
| nagios | 203.138.84.18         |          | 
+--------+------------------------+----------+
6 rows in set (0.00 sec)


mysql> exit