序章

このチュートリアルでは、CentOS7またはRHEL7への非常に人気のあるオープンソース監視システムであるNagios4のインストールについて説明します。 基本的な構成について説明するので、Webインターフェイスを介してホストリソースを監視できます。 また、リモートホストにエージェントとしてインストールされるNagios Remote Plugin Executor(NRPE)を利用して、ローカルリソースを監視します。

Nagiosは、サーバーのインベントリを保持し、重要なサービスが稼働していることを確認するのに役立ちます。 Nagiosのような監視システムを使用することは、あらゆる実稼働サーバー環境にとって不可欠なツールです。

前提条件

このチュートリアルに従うには、Nagiosを実行するCentOS7サーバーに対するスーパーユーザー権限が必要です。 理想的には、スーパーユーザー権限を持つ非rootユーザーを使用します。 その設定についてサポートが必要な場合は、このチュートリアルの手順1〜3に従ってください: CentOS7を使用したサーバーの初期設定。

LAMPスタックも必要です。 それを設定する必要がある場合は、このチュートリアルに従ってください: CentOS7にLAMPスタックをインストールする方法。

このチュートリアルは、サーバーでプライベートネットワークが有効になっていることを前提としています。 そうでない場合は、プライベートIPアドレスへのすべての参照をパブリックIPアドレスに置き換えてください。

前提条件が整理されたので、Nagios4のインストールに移りましょう。

Nagios4をインストールする

このセクションでは、監視サーバーにNagios4をインストールする方法について説明します。 このセクションを完了する必要があるのは1回だけです。

ビルドの依存関係をインストールする

Nagios Coreをソースからビルドしているため、ビルドを完了できるようにするいくつかの開発ライブラリをインストールする必要があります。

まず、必要なパッケージをインストールします。

sudo yum install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip

Nagiosユーザーとグループを作成する

Nagiosプロセスを実行するユーザーとグループを作成する必要があります。 「nagios」ユーザーと「nagcmd」グループを作成し、次のコマンドを使用してユーザーをグループに追加します。

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

Nagiosをインストールしましょう。

NagiosCoreをインストールする

NagiosCoreの最新の安定したリリースのソースコードをダウンロードします。 Nagiosダウンロードページに移動し、フォームの下にあるスキップしてダウンロードリンクをクリックします。 最新の安定版リリースのリンクアドレスをコピーして、Nagiosサーバーにダウンロードできるようにします。

この記事の執筆時点で、最新の安定したリリースはNagios4.1.1です。 curlを使用してホームディレクトリにダウンロードします。

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

次のコマンドでNagiosアーカイブを抽出します。

tar xvf nagios-*.tar.gz

次に、抽出したディレクトリに移動します。

cd nagios-*

Nagiosをビルドする前に、次のコマンドで構成する必要があります。

./configure --with-command-group=nagcmd 

次に、次のコマンドでNagiosをコンパイルします。

make all

これで、次のmakeコマンドを実行して、Nagios、initスクリプト、およびサンプル構成ファイルをインストールできます。

sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo make install-webconf

Webインターフェイスを介してNagiosに外部コマンドを発行するには、Webサーバーユーザーを追加する必要があります。 apache、へ nagcmd グループ:

  1. sudo usermod -G nagcmd apache

Nagiosプラグインをインストールする

ここでNagiosプラグインの最新リリースを見つけてください:Nagiosプラグインのダウンロード。 最新バージョンのリンクアドレスをコピーし、リンクアドレスをコピーして、Nagiosサーバーにダウンロードできるようにします。

この記事の執筆時点では、最新バージョンはNagiosPlugins2.1.1です。 curlを使用してホームディレクトリにダウンロードします。

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

次のコマンドでNagiosプラグインアーカイブを抽出します。

tar xvf nagios-plugins-*.tar.gz

次に、抽出したディレクトリに移動します。

cd nagios-plugins-*

Nagiosプラグインを構築する前に、それを構成する必要があります。 次のコマンドを使用します。

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

次に、次のコマンドを使用してNagiosプラグインをコンパイルします。

make

次に、次のコマンドでインストールします。

sudo make install

NRPEをインストールする

NRPEダウンロードページでNRPEの最新の安定したリリースのソースコードを見つけてください。 最新バージョンをNagiosサーバーにダウンロードします。

この記事の執筆時点では、最新のリリースは2.15です。 curlを使用してホームディレクトリにダウンロードします。

  1. cd ~
  2. curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

次のコマンドを使用してNRPEアーカイブを抽出します。

  1. tar xvf nrpe-*.tar.gz

次に、抽出したディレクトリに移動します。

  1. cd nrpe-*

次のコマンドを使用してNRPEを構成します。

  1. ./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

次に、次のコマンドを使用してNRPEとそのxinetd起動スクリプトをビルドしてインストールします。

  1. make all
  2. sudo make install
  3. sudo make install-xinetd
  4. sudo make install-daemon-config

xinetd起動スクリプトをエディターで開きます。

  1. sudo vi /etc/xinetd.d/nrpe

を変更します only_from NagiosサーバーのプライベートIPアドレスを最後に追加して行を追加します(サーバーの実際のIPアドレスに置き換えます)。

only_from = 127.0.0.1 10.132.224.168

保存して終了。 NagiosサーバーのみがNRPEとの通信を許可されます。

xinetdサービスを再起動してNRPEを開始します。

  1. sudo service xinetd restart

Nagios 4がインストールされたので、構成する必要があります。

Nagiosを構成する

それでは、Nagiosの初期構成を実行しましょう。 このセクションを実行する必要があるのは、Nagiosサーバーで1回だけです。

Nagios構成を整理する

お気に入りのテキストエディタでメインのNagios設定ファイルを開きます。 viを使用してファイルを編集します。

sudo vi /usr/local/nagios/etc/nagios.cfg

次に、この行のコメントを削除して、コメントを外します。 #:

#cfg_dir=/usr/local/nagios/etc/servers

保存して終了。

次に、監視する各サーバーの構成ファイルを格納するディレクトリを作成します。

sudo mkdir /usr/local/nagios/etc/servers

Nagiosの連絡先を構成する

お気に入りのテキストエディタでNagiosの連絡先設定を開きます。 viを使用してファイルを編集します。

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

電子メールディレクティブを見つけて、その値(強調表示された部分)を自分の電子メールアドレスに置き換えます。

email                           [email protected]        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

保存して終了。

check_nrpeコマンドを設定します

Nagios構成に新しいコマンドを追加しましょう:

  1. sudo vi /usr/local/nagios/etc/objects/commands.cfg

ファイルの最後に以下を追加します。

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

保存して終了。 これにより、 check_nrpe Nagiosサービス定義のコマンド。

Apacheを構成する

htpasswdを使用して、NagiosWebインターフェイスにアクセスできる「nagiosadmin」と呼ばれる管理ユーザーを作成します。

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

プロンプトでパスワードを入力します。 Nagios Webインターフェイスにアクセスするために必要になるため、このログインを覚えておいてください。

注:「nagiosadmin」という名前ではないユーザーを作成する場合は、編集する必要があります /usr/local/nagios/etc/cgi.cfg そして、作成したユーザーへのすべての「nagiosadmin」参照を変更します。

Nagiosを開始する準備ができました。 それを実行して、Apacheを再起動しましょう。

sudo systemctl daemon-reload
sudo systemctl start nagios.service
sudo systemctl restart httpd.service

Nagiosがサーバーの起動時に起動できるようにするには、次のコマンドを実行します。

sudo chkconfig nagios on

オプション:IPアドレスでアクセスを制限する

Nagios WebインターフェースにアクセスできるIPアドレスを制限する場合は、Apache構成ファイルを編集する必要があります。

sudo vi /etc/httpd/conf.d/nagios.conf

次の2行を追加して、検索してコメントします # それらの前の記号:

Order allow,deny
Allow from all

次に、を削除して、次の行のコメントを解除します # 記号を入力し、許可するIPアドレスまたは範囲(スペース区切り)をに追加します。 Allow from ライン:

#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1

これらの行は構成ファイルに2回表示されるため、これらの手順をもう一度実行する必要があります。

保存して終了。

次に、Nagiosを起動し、Apacheを再起動して、変更を有効にします。

sudo systemctl restart nagios.service
sudo systemctl restart httpd.service

Nagiosが実行されているので、ログインしてみましょう。

NagiosWebインターフェイスへのアクセス

お気に入りのWebブラウザーを開き、Nagiosサーバーに移動します(強調表示された部分をIPアドレスまたはホスト名に置き換えます)。

http://nagios_server_public_ip/nagios

htpasswdを使用するようにApacheを構成したため、前に作成したログイン資格情報を入力する必要があります。 ユーザー名として「nagiosadmin」を使用しました。

認証後、デフォルトのNagiosホームページが表示されます。 左側のナビゲーションバーにあるHostsリンクをクリックして、Nagiosが監視しているホストを確認します。

ご覧のとおり、Nagiosは「localhost」またはそれ自体のみを監視しています。

Nagiosで別のホストを監視しましょう!

NRPEでCentOS7ホストを監視する

このセクションでは、Nagiosに新しいホストを追加して監視する方法を説明します。 監視するCentOSまたはRHELサーバーごとにこのセクションを繰り返します。

注: UbuntuまたはDebianサーバーを監視する場合は、次のリンクの手順に従ってください:NRPEを使用してUbuntuホストを監視します。

監視するサーバーに、EPELリポジトリをインストールします。

sudo yum install epel-release

次に、NagiosプラグインとNRPEをインストールします。

sudo yum install nrpe nagios-plugins-all

それでは、NRPE構成ファイルを更新しましょう。 お気に入りのエディターで開きます(viを使用しています)。

sudo vi /etc/nagios/nrpe.cfg

を見つける allowed_hosts ディレクティブを選択し、NagiosサーバーのプライベートIPアドレスをコンマ区切りのリストに追加します(強調表示された例の代わりに使用します)。

allowed_hosts=127.0.0.1,10.132.224.168

保存して終了。 これにより、プライベートIPアドレスを介してNagiosサーバーからのリクエストを受け入れるようにNRPEが構成されます。

NRPEを再起動して、変更を有効にします。

sudo systemctl start nrpe.service
sudo systemctl enable nrpe.service

監視するホストへのNRPEのインストールと構成が完了したら、監視を開始する前に、これらのホストをNagiosサーバー構成に追加する必要があります。

Nagios構成にホストを追加

Nagiosサーバーで、監視するリモートホストごとに新しい構成ファイルを作成します /usr/local/nagios/etc/servers/. ハイライトされた単語「yourhost」をホストの名前に置き換えます。

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

次のホスト定義を追加し、 host_name リモートホスト名(例では「web-1」)の値、 alias ホストの説明を含む値、および address リモートホストのプライベートIPアドレスを使用した値:

define host {
        use                             linux-server
        host_name                       yourhost
        alias                           My first Apache server
        address                         10.132.234.52
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

上記の構成ファイルでは、Nagiosはホストが稼働しているか停止しているかのみを監視します。 これで十分な場合は、保存して終了し、Nagiosを再起動します。 特定のサービスを監視したい場合は、読み進めてください。

監視するサービスにこれらのサービスブロックのいずれかを追加します。 check_commandの値は、ステータスしきい値を含め、監視対象を決定することに注意してください。 ホストの構成ファイルに追加できるいくつかの例を次に示します。

ping:

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
}

SSH(notifications_enabledを0に設定すると、サービスの通知が無効になります):

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
}

よくわからない場合 use generic-service つまり、デフォルトで定義されている「generic-service」と呼ばれるサービステンプレートの値を継承しているだけです。

保存して終了します。 Nagios構成をリロードして、変更を有効にします。

sudo systemctl reload nagios.service

すべてのリモートホストを監視するためのNagiosの構成が完了したら、設定が必要です。 必ずNagiosWebインターフェイスにアクセスし、 Services ページをチェックして、監視対象のすべてのホストとサービスを確認してください。

結論

ホストとそのサービスの一部を監視しているので、時間をかけてどのサービスが自分にとって重要であるかを把握し、それらの監視を開始できるようにすることができます。 また、通知を設定して、たとえば、ディスク使用率が警告または重大なしきい値に達したとき、またはメインのWebサイトがダウンしたときに電子メールを受信するようにして、状況を迅速に、または問題が発生する前に解決できるようにすることもできます。

幸運を!