前書き

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

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

前提条件

このチュートリアルを実行するには、Nagiosを実行するUbuntu 14.04サーバーのスーパーユーザー権限が必要です。 理想的には、スーパーユーザー特権を持つ非rootユーザーを使用します。 設定にヘルプが必要な場合は、このチュートリアルのステップ1〜3に従ってください。https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 [初期サーバーセットアップUbuntu 14.04]。

LAMPスタックも必要です。 設定する必要がある場合は、このチュートリアルに従ってください:https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04 [Linux、Apache、MySQL、PHP(LAMP)スタックをUbuntu 14.04にインストールする方法]。

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

前提条件を整理したので、次にNagios 4をインストールします。

Nagios 4をインストールする

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

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

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

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

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

Nagios Coreをソースからビルドしているため、ビルドを完了するための開発ライブラリをいくつかインストールする必要があります。 また、 `+ apache2-utils +`もインストールします。これは、Nagios Webインターフェイスのセットアップに使用されます。

まず、apt-getパッケージリストを更新します。

sudo apt-get update

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

sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip

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

Nagios Coreをインストールする

Nagios Coreの最新の安定版リリースのソースコードをダウンロードします。 Nagiosダウンロードページにアクセスし、フォームの下にある[* Skip to download *]リンクをクリックします。 Nagiosサーバーにダウンロードできるように、最新の安定版リリースのリンクアドレスをコピーします。

この記事の執筆時点では、最新の安定版リリースはNagios 4.1.1です。 curlでホームディレクトリにダウンロードします。

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

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

tar xvf nagios-*.tar.gz

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

cd nagios-

Nagiosを構築する前に、構成する必要があります。 postfix(apt-getでインストール可能)を使用するように設定する場合は、次のコマンドに `+-with-mail = / usr / sbin / sendmail +`を追加します。

./configure --with-nagios-group=nagios --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 /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

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

sudo usermod -G nagcmd www-data

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

Nagiosプラグインの最新リリースは、http://nagios-plugins.org/download/?C = M; O = D [Nagios Plugins Download]から入手できます。 最新バージョンのリンクアドレスをコピーし、リンクアドレスをコピーして、Nagiosサーバーにダウンロードできるようにします。

この記事の執筆時点では、最新バージョンはNagios Plugins 2.1.1です。 curlでホームディレクトリにダウンロードします。

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-.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でホームディレクトリにダウンロードします。

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

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

tar xvf nrpe-*.tar.gz

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

cd nrpe-*

次のコマンドでNRPEを構成します。

./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スタートアップスクリプトをビルドしてインストールします。

make all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config

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

sudo vi /etc/xinetd.d/nrpe

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

only_from = 127.0.0.1

保存して終了。 NagiosサーバーのみがNRPEと通信できます。

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

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                                   ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

保存して終了。

check_nrpeコマンドの構成

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

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

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

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

保存して終了。 これにより、Nagiosサービス定義で `+ check_nrpe +`コマンドを使用できます。

Apacheを構成する

Apacheの書き換えモジュールとcgiモジュールを有効にします。

sudo a2enmod rewrite
sudo a2enmod cgi

htpasswdを使用して、Nagios Webインターフェイスにアクセスできる「nagiosadmin」という管理者ユーザーを作成します。

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

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

次に、 + nagios.conf`から + sites-enabled`ディレクトリへのシンボリックリンクを作成します。

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

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

sudo service nagios start
sudo service apache2 restart

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

sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
オプション:IPアドレスによるアクセスの制限

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

sudo vi /etc/apache2/sites-available/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回表示されるため、これらの手順をもう一度実行する必要があります。

保存して終了。

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

sudo service nagios restart
sudo service apache2 restart

Nagiosは現在実行中です。ログインしてみましょう。

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

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

http:///nagios

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

image:https://assets.digitalocean.com/articles/nagios/htpasswd_prompt.png [htaccess認証プロンプト]

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

image:https://assets.digitalocean.com/articles/nagios/hosts_link.png [Nagios Hosts Page]

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

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

NRPEを使用してホストを監視する

このセクションでは、Nagiosに新しいホストを追加する方法を示します。そのため、ホストは監視されます。 監視するサーバーごとにこのセクションを繰り返します。

監視するサーバーで、apt-getを更新します。

sudo apt-get update

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

sudo apt-get install nagios-plugins nagios-nrpe-server

許可されたホストを構成する

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

sudo vi /etc/nagios/nrpe.cfg

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

allowed_hosts=127.0.0.1

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

許可されたNRPEコマンドの構成

ルートファイルシステムの名前を検索します(監視したい項目の1つであるため)。

df -h /

ディスク使用量を監視するために、NRPE設定でファイルシステム名を使用します(おそらく `+ / dev / vda +`です)。 次に、nrpe.cfgを開いて編集します。

sudo vi /etc/nagios/nrpe.cfg

NRPE構成ファイルは非常に長く、コメントでいっぱいです。 検索して変更する必要がある行がいくつかあります。

  • * server_address *:このホストのプライベートIPアドレスに設定します

  • * allowed_hosts *:NagiosサーバーのプライベートIPアドレスに設定します

  • * command [check_hda1] *: `+ / dev / hda1 +`をルートファイルシステムが呼び出されるものに変更します

前述の3行は次のようになります(適切な値に置き換えてください)。

server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p

Nagiosサーバーがそれらを使用するように設定されている場合に実行されるこのファイルで定義されたいくつかの他の「コマンド」があることに注意してください。 また、 `+ server_port = 5666 +`が設定されているため、NRPEはポート5666でリッスンすることに注意してください。 そのポートをブロックしているファイアウォールがある場合は、必ずNagiosサーバーに対して開いてください。

保存して終了します。

NRPEを再起動する

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

sudo service nagios-nrpe-server restart

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

Nagios構成へのホストの追加

Nagiosサーバーで、監視する各リモートホストの新しい設定ファイルを `+ / usr / local / nagios / etc / servers / +`に作成します。 強調表示された単語「yourhost」をホストの名前に置き換えます。

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

次のホスト定義に追加し、 `+ host_name `の値をリモートホスト名(この例では“ web-1”)に置き換え、 ` alias `の値をホストの説明に、 ` address +`の値をリモートホストのプライベートIPアドレス:

define host {
       use                             linux-server
       host_name
       alias
       address
       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
       service_description             PING
       check_command                   check_ping!100.0,20%!500.0,60%
}

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

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

「+ use generic-service +」の意味がわからない場合は、デフォルトで定義されている「generic-service」というサービステンプレートの値を単純に継承しています。

保存して終了します。 Nagios設定を再読み込みして、変更を有効にします。

sudo service nagios reload

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

画像:https://assets.digitalocean.com/articles/nagios/services.png [Nagiosサービスページ]

結論

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

がんばろう!