11. NRPE導入マニュアル

本書はX-MON3系列を用いて監視を実施する際に使用するNRPEをLinux環境へインストールするマニュアルとなっております。

そのため、基本的なLinuxOSの一般的な操作、用語などについては知識をご理解の上でお読みください。

また、本稼働中のシステムへのインストール作業などは充分に検証を行ったうえで導入するようにしてください。

いかなるシステムへの影響が発生しても、弊社は責任を負いかねますのでご了承ください。

11.1. NRPEとは

NRPEとはX-MONを用いてリソース監視・性能監視を実施する際にLinux環境へインストールしておくエージェントソフトです。 プラグインをインストールする事により、さまざまな監視が可能となります。

■NRPE監視

nrpe_image

Linux環境へのNRPEのインストールですが、本書では以下の環境で解説します。
・RHEL 6 ~ 9
・インターネットへの接続環境
NRPEの通信プロトコルとポート番号は下記となります。
・TCP 5666番

また、本マニュアルでの作業についてはroot権限で行うよう記載しております。

root権限以外ではsudoを使用するなど、root権限でコマンドを発行できるようにしておいてください。

11.2. インストールするNRPEについて

NRPEをインストールする環境により、使用するNRPEが異なります。

11.2.1. AWS EC2インスタンスの場合

amzn-mainリポジトリ、またはEPELリポジトリよりインストールを実施します。

11.2.2. Red Hat Enterprise Linux、CentOSの場合(64bit環境)

X-MONのisoイメージファイルにrpmパッケージがありますのでそれからインストールを実施して頂けます。

11.2.3. その他のLinux環境の場合

Red Hat Enterprise Linux、CentOSでも32bit環境である場合やrpmコマンドが使用出来ない場合はX-MONのisoイメージ内にあるソースをコンパイルしてインストールを実施してください。

nrpe_install

11.3. AWS EC2インスタンスの場合

11.3.1. NRPEのインストール

AWS EC2インスタンス内Amazon Linuxでは、それぞれ以下のリポジトリよりNRPEパッケージをインストールすることが可能です。

  • Amazon Linux AMI

    • amzn-main リポジトリ

  • Amazon Linux 2

    • EPEL リポジトリ

nrpe_exclamation_markAmazon Linux で動作を確認しています。その他 AWS Marketplace AMIを使用されている場合は、ソースからのインストールか弊社サポートまでご連絡ください

  • Amazon Linux 2をご利用の場合

EPELリポジトリの追加を行います。

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

  • Amazon Linux AMIの場合

EPELリポジトリの追加は不要です。

  • 以下、Amazon Linux 2・Amazon Linux AMI 共通

nrpe の追加を行います。

# yum install nrpe

監視プラグインもNRPEパッケージ同様にインストールします。

# yum install nagios-plugins nagios-plugins-all

NRPEの設定ファイルは「/etc/nagios/nrpe.cfg」に保存されています。

X-MONサーバからのアクセス許可を設定します。

例)X-MONサーバのIPアドレスが192.168.100.1の場合の設定例

■編集前

allowed_hosts=127.0.0.1

■編集後

# allowed_hosts=127.0.0.1
allowed_hosts=127.0.0.1,192.168.100.1

コマンド引数の利用許可を設定します。

■編集前

dont_blame_nrpe=0

■編集後

# dont_blame_nrpe=0
dont_blame_nrpe=1

コマンド定義を設定します。

既存のコマンド定義はコメントアウトし、新たにコマンド定義を追加してください。

※新たに追加する分のコマンド定義は、コピーandペーストできるテキストファイルを手順書と同梱しています。

■編集前

command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200

■編集後

#command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
#command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
#command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
#command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
#command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200

command[check_by_ssh]=/usr/lib64/nagios/plugins/check_by_ssh $ARG1$
command[check_dhcp]=/usr/lib64/nagios/plugins/check_dhcp $ARG1$
command[check_dig]=/usr/lib64/nagios/plugins/check_dig $ARG1$
command[check_disk]=/usr/lib64/nagios/plugins/check_disk $ARG1$
command[check_file_age]=/usr/lib64/nagios/plugins/check_file_age $ARG1$
command[check_ftp]=/usr/lib64/nagios/plugins/check_ftp $ARG1$
command[check_http]=/usr/lib64/nagios/plugins/check_http $ARG1$
command[check_imap]=/usr/lib64/nagios/plugins/check_imap $ARG1$
command[check_load]=/usr/lib64/nagios/plugins/check_load $ARG1$
command[check_log]=/usr/lib64/nagios/plugins/check_log $ARG1$
command[check_mailq]=/usr/lib64/nagios/plugins/check_mailq $ARG1$
command[check_mysql]=/usr/lib64/nagios/plugins/check_mysql $ARG1$
command[check_mysql_query]=/usr/lib64/nagios/plugins/check_mysql_query $ARG1$
command[check_ntp]=/usr/lib64/nagios/plugins/check_ntp $ARG1$
command[check_ntp_peer]=/usr/lib64/nagios/plugins/check_ntp_peer $ARG1$
command[check_ntp_time]=/usr/lib64/nagios/plugins/check_ntp_time $ARG1$
command[check_oracle]=/usr/lib64/nagios/plugins/check_oracle $ARG1$
command[check_pgsql]=/usr/lib64/nagios/plugins/check_pgsql $ARG1$
command[check_ping]=/usr/lib64/nagios/plugins/check_ping $ARG1$
command[check_pop]=/usr/lib64/nagios/plugins/check_pop $ARG1$
command[check_spop]=/usr/lib64/nagios/plugins/check_spop $ARG1$
command[check_procs]=/usr/lib64/nagios/plugins/check_procs $ARG1$
command[check_rpc]=/usr/lib64/nagios/plugins/check_rpc $ARG1$
command[check_smtp]=/usr/lib64/nagios/plugins/check_smtp $ARG1$
command[check_ssmtp]=/usr/lib64/nagios/plugins/check_ssmtp $ARG1$
command[check_snmp]=/usr/lib64/nagios/plugins/check_snmp $ARG1$
command[check_ssh]=/usr/lib64/nagios/plugins/check_ssh $ARG1$
command[check_swap]=/usr/lib64/nagios/plugins/check_swap $ARG1$
command[check_tcp]=/usr/lib64/nagios/plugins/check_tcp $ARG1$
command[check_udp]=/usr/lib64/nagios/plugins/check_udp $ARG1$
command[check_ups]=/usr/lib64/nagios/plugins/check_ups $ARG1$

設定ファイル編集後、NRPEを起動します。

# /etc/init.d/nrpe start

または

# systemctl start nrpe

自動起動の設定を行います。

# chkconfig --add nrpe
# chkconfig --list nrpe
nrpe 0:off 1:off 2:on 3:on 4:on 5:on 6:off

または

# systemctl enable nrpe
# systemctl is-enabled nrpe
enabled

セキュリティグループ等でポート制限を行っている場合は以下を追加してください。

tcp 5666番

以上で監視対象ホストへのNRPEの導入が終わりました。X-MONで監視設定を行ってください。

11.4. Red Hat Enterprise Linux、CentOSの場合(64bit環境)

ホスト登録とNRPEエージェントのインストール、両方を行う場合はマニュアル「 ホスト登録コマンドマニュアル 」を参照ください。
既に登録されたホスト環境へNRPEエージェントを登録する場合は、引き続き以下の手順に沿って設定を行ってください。

Red Hat Enterprise Linuxではパッケージのインストールにあたり、「server optional rpms」のリポジトリを有効にする必要があります。

X-MON3 isoイメージファイルを導入するサーバへアップロードし、マウントします。なお、以下はX-MONバージョン3.16.0の作業例となります。
バージョンによりファイル名のバージョン番号が異なります。
# mkdir /mnt/iso
# mount -t iso9660 -o loop x-mon-3.16.0.x64.iso /mnt/iso

作業ディレクトリに移動します。

・CentOS / RHEL 6の場合 (3.16.0以降 非対応)

# cd /mnt/iso/RPMS/el6

・CentOS / RHEL 7の場合

# cd /mnt/iso/RPMS/el7

・CentOS / RHEL / Rocky Linux 8の場合 (3.13.0以降 対応)

# cd /mnt/iso/RPMS/el8

・CentOS / RHEL 9の場合 (3.16.0以降 対応)

# cd /mnt/iso/RPMS/el9
# yum install -y initscripts

11.4.1. NRPEのインストール

NRPEパッケージをインストールします。

# rpm -ihv ./x-mon-nrpe-<バージョン番号>.x86_64.rpm

nrpe_exclamation_markインストールの際にwarningが表示される事があります。

■ケース1

# rpm -ivh ./x-mon-nrpe-<バージョン番号>.x86_64.rpm
Preparing... ##################################### [100%]
id: x-mon: No such user
1:x-mon-nrpe ##################################### [100%]

x-monユーザが見つからないというwarningですがプラグインインストールの際に作成されますので問題ありません。

■ケース2

# rpm -ihv ./x-mon-nrpe-<バージョン番号>.x86_64.rpm
Preparing... ##################################### [100%]
1:x-mon-nrpe warning: user apache does not exist - using root%)
warning: group apache does not exist - using root
warning: user apache does not exist - using root
warning: group apache does not exist - using root
########################################### [100%]

apacheをインストールしていない環境でインストールするとapacheユーザ、グループがいないのでrootで動作させるという警告になりますが、問題はありません。

■ケース3

# rpm -ivh ./x-mon-nrpe-<バージョン番号>.x86_64.rpm
Preparing... ##################################### [100%]
id: x-mon: No such user
1:x-mon-nrpe warning: user apache does not exist - using root%)
warning: group apache does not exist - using root
warning: user apache does not exist - using root
warning: group apache does not exist - using root
########################################### [100%]

x-monユーザがいない、更にapacheがインストールされていない環境での警告ですが問題ありません。

11.4.2. 監視プラグインのインストール

NRPEが実行する監視プラグインをインストールします。EPELリポジトリで提供されているパッケージをインストールする必要がありますので、監視対象ホストにEPELリポジトリをインストールします。
既に追加されている場合には、この操作は必要ありません。

# rpm -Uvh ./epel-release-<バージョン番号>.noarch.rpm

※バージョン番号の確認は以下のコマンドを実行してください

# ls | grep epel-release

NRPEが実行する監視プラグインのインストールに必要なパッケージをインストールします。既にインストールされている場合には、この操作は必要ありません。

CentOS / RHEL 6

# yum install net-snmp-utils perl-Net-SNMP mysql-libs postgresql-libs rpcbind openssh-clients

CentOS / RHEL 7

# yum install net-snmp-utils perl-Net-SNMP mysql-libs postgresql-libs rpcbind openssl

CentOS / RHEL / Rocky Linux 8

# yum install net-snmp-utils perl-Net-SNMP mysql-libs postgresql-libs rpcbind perl

RHEL / Rocky Linux 9

# dnf config-manager --set-enabled codeready-builder-for-rhel-9-x86_64-rpms
# dnf install net-snmp-utils perl-Net-SNMP mysql-libs postgresql-libs rpcbind perl

nrpe_exclamation_markCentOS / RHEL 7, 8 へのインストール時に

nothing provides perl(Digest::SHA1) >= 1.02 needed by perl-Net-SNMP

のエラーが表示された場合は追加でperl-Digest-SHA1パッケージをインストールします。

# yum install perl-Digest-SHA1 --enablerepo=codeready-builder-for-rhel-<バージョン番号>-x86_64-rpms

CentOS 8.2 以前

# yum install perl-Digest-SHA1 --enablerepo=PowerTools

CentOS 8.3 以降

# yum install perl-Digest-SHA1 --enablerepo=powertools

NRPEが実行する監視プラグインをインストールします。

# rpm -ihv ./nagios-plugins-perl-utils-<バージョン番号>.x86_64.rpm \
./x-mon-nrpe-custom-plugins-<バージョン番号>.x86_64.rpm \
./nagios-plugins-<バージョン番号>.x86_64.rpm
※バージョン番号の確認は各rpmパッケージの名称を使って以下のコマンドを実行してください
例) nagios-plugins-perl-utils

# ls | grep nagios-plugins-perl-utils

また追加でインストール可能なパッケージがあります。詳しくは rpmパッケージから特定の監視プラグインを追加する場合 をご確認ください。

nrpe_exclamation_mark環境により、上記で必要なパッケージ以外に依存のエラーが表示される事があります。その際はエラーで表示された不足パッケージをインストールしてください。

以下2つのパッケージはX-MON3 isoイメージファイル以外からアップデートされると監視が正常に取得出来なくなる事があります。

X-MON3 isoイメージファイル以外からアップデートを行わないでください。

nagios-plugins
nagios-plugins-perl-utils

11.4.3. NRPEの設定

NRPEの設定ファイルは
/etc/opt/x-mon/nrpe.cfg
に保存されています。

X-MONサーバからのアクセス許可を設定します。

例では、X-MONサーバのIPアドレスが192.168.100.1の場合の設定例です。

■編集前

allowed_hosts=127.0.0.1

■編集後

# allowed_hosts=127.0.0.1
allowed_hosts=127.0.0.1,192.168.100.1

設定ファイル編集後、NRPEを起動します。

■CentOS / RHEL 6

# /etc/init.d/nrpe start

■CentOS / RHEL 7以降

# systemctl start nrpe

自動起動の設定を行います。

■CentOS / RHEL 6

# chkconfig --add nrpe
# chkconfig --list nrpe
nrpe 0:off 1:off 2:on 3:on 4:on 5:on 6:off

■CentOS / RHEL 7以降

# systemctl enable nrpe
# systemctl is-enabled nrpe
enabled

iptablesやファイアウォールでポート制限を行っている場合は以下を追加してください。

tcp 5666番

以上で監視対象ホストへのNRPEの導入が終わりました。X-MONで監視設定を行ってください。

11.5. その他のLinux環境の場合

X-MONのisoイメージファイルの中のソースファイルをコンパイルしインストールします。ソースからインストールする際はNRPEをデーモンで動作させるかxinetdで動作させる事が出来ます。またパッケージでのインストールとは違い、先に監視プラグインをインストールし、NRPEのインストールを行います。

X-MON3.0 isoイメージファイルを導入するサーバへアップロードし、マウントします。なお、以下はX-MONバージョン3.7.0の作業例となります。バージョンによりファイル名のバージョン番号が異なります。

# mkdir /mnt/iso
# mount -t iso9660 -o loop x-mon-3.7.0.x64.iso /mnt/iso

マウント先のcontribディレクトリ内にあるファイルを作業用ディレクトリにコピーします。

# mkdir /tmp/x-mon-nrpe
# cp /mnt/iso/contrib/nrpe-2.14.tar.gz /tmp/x-mon-nrpe/
# cp /mnt/iso/contrib/nagios-plugins-2.2.1.tar.gz /tmp/x-mon-nrpe/
# cp /mnt/iso/contrib/nrpe.cfg /tmp/x-mon-nrpe/

NRPEを動作させるためのX-MONユーザの作成を行います。

# groupadd x-mon
# useradd -d /usr/local/nagios -g x-mon -m x-mon –s /bin/false
# chmod 755 /usr/local/nagios
# passwd x-mon
[任意のパスワードを設定してください]

11.5.1. 監視プラグインのインストール

必要なパッケージをインストールします。
・openssl-devel

deb系ではlibssl-dev、rpm系ではopenssl-develとなります。

■deb系

# apt-get install libssl-dev

■rpm系

# yum install openssl-devel

mysqlもしくはpostgresqlのデータベース監視をする場合は下記develパッケージのインストールが必要です。
・mysql-devel

deb系ではlibmysqld-dev、rpm系ではmysql-develとなります。

■deb系

# apt-get install libmysqld-dev

■rpm系

# yum install mysql-devel

・postgesql-devel

deb系ではpostgresql-server-dev-8.4、rpm系ではpostgresql-develとなります。

■deb系

# apt-get install postgresql-server-dev-8.4

■rpm系

# yum install postgresql-devel

作業ディレクトリへ移動し、監視パッケージのコンパイルおよびインストールを行います。

# cd /tmp/x-mon-nrpe
# tar zxfv nagios-plugins-2.2.1.tar.gz
# cd nagios-plugins-2.2.1
# ./configure
# make
# make install

監視プラグインは/usr/local/nagios/libexec/ 以下にインストールされます。

# ls /usr/local/nagios/libexec/
check_apt check_icmp check_mysql check_pgsql check_swap
check_breeze check_ide_smart check_mysql_query check_ping check_tcp
check_clamd check_ifoperstatus check_nagios check_pop check_time
check_cluster check_ifstatus check_nntp check_procs check_udp
check_dhcp check_imap check_nntps check_real check_ups
check_disk check_ircd check_nt check_rpc check_users
check_disk_smb check_jabber check_ntp check_sensors check_wave
check_dummy check_load check_ntp_peer check_simap negate
check_file_age check_log check_ntp_time check_smtp urlize
check_flexlm check_mailq check_nwstat check_spop utils.pm
check_ftp check_mrtg check_oracle check_ssh utils.sh
check_http check_mrtgtraf check_overcr check_ssmtp

インストールする環境(導入されているサービス)によりプラグインは異なります。

インストールが完了したら、ファイルとディレクトリの権限を変更します。

# chown x-mon.x-mon /usr/local/nagios
# chown -R x-mon.x-mon /usr/local/nagios/libexec

以上で監視プラグインのインストールは完了です。

11.5.2. NRPEのインストール

NRPEはデーモンで動作させるかxinetdで動作させるかでコンパイルの方法が異なりますので、環境にあわせてインストールしてください。

11.5.2.1. デーモンで動作させる場合

作業ディレクトリへ移動し、NRPEパッケージのコンパイルを行います。

# cd /tmp/x-mon-nrpe
# tar zxfv nrpe-2.14.tar.gz
# cd nrpe-2.14

# ./configure --enable-command-args --with-nrpe-user=x-mon --with-nrpe-group=x-mon --with-nagios-user=x-mon --with-nagios-group=x-mon [1行で発行]

# make all
# make install-plugin
# make install-daemon
# make install-daemon-config

正常にインストールできたか確認します

# ls /usr/local/nagios/
bin etc libexec

デーモンで動作させるために起動スクリプトをコピーします。

# cp ./init-script /etc/init.d/nrpe
# chmod 755 /etc/init.d/nrpe

サービス名とポート番号を設定します。/etc/servicesに以下の内容を追加します。

nrpe 5666/tcp # NRPE

nrpe_exclamation_mark /etc/servicesを編集する際はcpコマンドでバックアップを取得してから編集してください。

NRPEの自動起動を設定します。

■deb系

# update-rc.d nrpe defaults

■rpm系

# chkconfig --add nrpe
# chkconfig nrpe on

11.5.2.2. xinetdで動作させる場合

xinetdがインストールされていない場合はインストールを行います。

■deb系

# apt-get install xinetd

■rpm系

# yum install xinetd

作業ディレクトリへ移動し、NRPEパッケージのコンパイルを行います。

# cd /tmp/x-mon-nrpe
# tar zxfv nrpe-2.14.tar.gz
# cd nrpe-2.14

# ./configure --enable-command-args --with-nrpe-user=x-mon --with-nrpe-group=x-mon --with-nagios-user=x-mon --with-nagios-group=x-mon [1行で発行]

# make all
# make install-plugin
# make install-daemon
# make install-daemon-config
# make install-xinetd

正常にインストールできたか確認します

# ls /usr/local/nagios/
bin etc libexec
# ls /etc/xinetd.d/nrpe
/etc/xinetd.d/nrpe

xinetdの設定を行います。

/etc/xinetd.d/nrpeを編集し、only_fromの項目にX-MONサーバのIPアドレスを設定します。X-MONサーバのIPアドレスが192.168.100.1の場合、以下のように変更します。

■編集前

only_from = 127.0.0.1

■編集後

# only_from = 127.0.0.1
only_from = 127.0.0.1 192.168.100.1

xinetdの自動起動を設定します。

■deb系

# update-rc.d xinetd defaults

■rpm系

# chkconfig --add xinetd
# chkconfig xinetd on

サービス名とポート番号を設定します。/etc/servicesに以下の内容を追加します。

nrpe 5666/tcp # NRPE

nrpe_exclamation_mark /etc/servicesを編集する際はcpコマンドでバックアップを取得してから編集してください。

11.5.3. NRPEの設定

デーモンで動作させる場合とxinetdで動作させる場合も共通の設定となります。

/usr/local/nagios/etc/nrpe.cfgを差し替えます。

■バックアップを取得します。
# cp –vi /usr/local/nagios/etc/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg.backup
'/usr/local/nagios/etc/nrpe.cfg' ->
'/usr/local/nagios/etc/nrpe.cfg.backup'
# ls /usr/local/nagios/etc/
nrpe.cfg nrpe.cfg.backup
■ファイルを差し替えます
# cp -vi /tmp/x-mon-nrpe/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
cp: overwrite '/usr/local/nagios/etc/nrpe.cfg'? yes
'/tmp/x-mon-nrpe/nrpe.cfg ' -> '/usr/local/nagios/etc/nrpe.cfg
# ls /usr/local/nagios/etc/
nrpe.cfg nrpe.cfg.backup

差し替えたnrpe.cfgを編集します。

X-MONサーバからのIPアドレスを設定します。X-MONサーバのIPアドレスは192.168.100.1を例にしています。

■編集前

allowed_hosts=127.0.0.1

■編集後

# allowed_hosts=127.0.0.1
allowed_hosts=127.0.0.1,192.168.100.1

編集後、監視プラグインへのパスを変更します。

編集前は「/opt/x-mon/lib/plugins/」となっているのを「/usr/local/nagios/libexec/」へ変更となりますが、sedコマンドで変更します。

# sed -i -e "s//opt/x-mon/lib/plugins//usr/local/nagios/libexec/g" nrpe.cfg

その他、iptablesやファイアウォールでポート制限を行っている場合は以下を追加してください。

tcp 5666番

11.5.4. NRPEの起動

NRPEを起動させます。

■デーモンの場合

# /etc/init.d/nrpe start

■xintedの場合

# /etc/init.d/xinetd restart

以上で監視対象ホストへのNRPEの導入が終わりました。X-MONで監視設定を行ってください。

11.6. ログ監視をするためのNRPE設定

NRPEを用いてログ監視をする場合、NRPEの設定が必要となりますので設定をお願いします。

11.6.1. パッケージでインストールした場合

NRPEとプラグインをパッケージでインストールした場合はsudoでx-monユーザの設定とnrpe.cfgを編集します。

11.6.1.1. sudoの設定

visudoコマンドで編集します。

# visudo

■編集前

Defaults requiretty
~中略~
root ALL=(ALL) ALL

■編集後

#Defaults requiretty
~中略~
root ALL=(ALL) ALL
x-mon ALL=(ALL) NOPASSWD:/opt/x-mon/lib/plugins/check_log
x-mon ALL=(ALL) NOPASSWD: /opt/x-mon/lib/plugins/check_log_exclude

sudoの設定は以上で終了です。

11.6.1.2. nrpe.cfgの設定

/etc/opt/x-mon/nrpe.cfgを編集します。

# vi /etc/opt/x-mon/nrpe.cfg

■編集前

command[check_log]=/opt/x-mon/lib/plugins/check_log $ARG1$

■編集後

#command[check_log]=/opt/x-mon/lib/plugins/check_log $ARG1$
command[check_log]=/usr/bin/sudo /opt/x-mon/lib/plugins/check_log $ARG1$

nrpe.cfgを編集した後はnrpeを再起動させます。

# /etc/init.d/nrpe restart

または

# systemctl restart nrpe

以上で設定は完了です。

11.6.2. ソースでインストールした場合

NRPEとプラグインをパッケージでインストールした場合はsudoでx-monユーザの設定とnrpe.cfgを編集します。

11.6.2.1. sudoの設定

visudoコマンドで編集します。

# visudo

■編集前

Defaults requiretty
~中略~
root ALL=(ALL) ALL

■編集後

#Defaults requiretty
~中略~
root ALL=(ALL) ALL
x-mon ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_log

sudoの設定は以上で終了です。

11.6.2.2. nrpe.cfgの設定

/usr/local/nagios/etc/nrpe.cfgを編集します。

# vi /usr/local/nagios/etc/nrpe.cfg

■編集前

command[check_log]= /usr/local/nagios/libexec/check_log $ARG1$

■編集後

#command[check_log]= /usr/local/nagios/libexec/check_log $ARG1$
command[check_log]=/usr/bin/sudo /usr/local/nagios/libexec/check_log $ARG1$

nrpe.cfgを編集した後はnrpeを再起動させます。

■デーモンの場合

# /etc/init.d/nrpe restart

■xinetdの場合

# /etc/init.d/xinetd restart

以上で設定は完了です。

11.7. 付録

その他特記すべき点について記載します。

11.7.1. コンパイル時のWARNINGについて

nagios-pluginsをコンパイルする際に環境によってWARNINGとなる箇所がありますが、監視対象ホストで該当サービスの監視が必要な場合以外は問題ありません。

コンパイルの際に、-qオプションを使用するとWARNINGのみが表示されますのでご参照ください。

■発行例

# ./configure –q

configure: WARNING: Skipping PostgreSQL plugin (check_pgsql)

configure: WARNING: LIBS="-lcrypt " CPPFLAGS=""

configure: WARNING: install PostgreSQL libs to compile this plugin (see REQUIREMENTS).

configure: WARNING: Skipping radius plugin

configure: WARNING: install radius libs to compile this plugin (see REQUIREMENTS).

configure: WARNING: Skipping LDAP plugin

configure: WARNING: Skipping mysql plugin

configure: WARNING: install mysql client libs to compile this plugin (see REQUIREMENTS).

checking for nslookup... no

configure: WARNING: nslookup command not found

configure: WARNING: Get lmstat from Globetrotter Software to monitor flexlm licenses

configure: WARNING: Get smbclient from Samba.org to monitor SMB shares

configure: WARNING: Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins

configure: WARNING: Tried /usr/bin/perl - install Net::SNMP perl module if you want to use the perl snmp plugins

configure: WARNING: Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin

configure: WARNING: Get fping from http://www.fping.com in order to make check_fping plugin

configure: WARNING: Get ssh in order to make check_by_ssh plugin

configure: WARNING: Could not find mailq or equivalent

configure: WARNING: Could not find qmail-qstat or equivalent

config.status: creating po/POTFILES

config.status: creating po/Makefile

--with-apt-get-command:

--with-ping6-command:

--with-ping-command: /bin/ping -n -U -w %d -c %d %s

--with-ipv6: yes

--with-mysql: no

--with-openssl: yes

--with-gnutls: no

--enable-extra-opts: no

--with-perl: /usr/bin/perl

--enable-perl-modules: no

--with-cgiurl: /nagios/cgi-bin

--with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin

--enable-libtap: no

rpm系OSの場合についてのみですが、必要なパッケージについて下記に記載しております。また、WARNINGの文章はコンパイルの際の前後の行も含めて記載しております。

11.7.1.1. PostgresqlのWARNING

configure: WARNING: Skipping PostgreSQL plugin (check_pgsql)

configure: WARNING: LIBS="-lcrypt " CPPFLAGS=""

configure: WARNING: install PostgreSQL libs to compile this plugin (see REQUIREMENTS).

postgresqlの監視プラグインが必要な場合はpostgresql-develをインストールしてください。

11.7.1.2. RadiusのWARNING

configure: WARNING: Skipping radius plugin

configure: WARNING: install radius libs to compile this plugin (see REQUIREMENTS).

Radiusの監視プラグインが必要な場合はradiusclient-ng-develをインストールしてください。(EPELレポジトリからのインストールとなります)

11.7.1.3. LDAPのWARNING

configure: WARNING: Skipping LDAP plugin

configure: WARNING: install LDAP libs to compile this plugin (see REQUIREMENTS).

LDAPの監視プラグインが必要な場合はopenldap-develをインストールしてください。

11.7.1.4. MySQLのWARNING

configure: WARNING: Skipping mysql plugin

configure: WARNING: install mysql client libs to compile this plugin (see REQUIREMENTS).

MySQLの監視プラグインが必要な場合はmysql-develをインストールしてください。

11.7.1.5. nslookupのWARNING

checking for nslookup... no

configure: WARNING: nslookup command not found

監視プラグインとは直接は関係ありませんがnslookupコマンドが無い場合は表示されます。bind-utilsをインストールする事でWARNINGは解消されます。

11.7.1.6. lmstatのWARNING

checking for lmstat... no

ライセンスサーバの監視プラグインが必要な場合は、ライセンス商品に同封されているエージェントをインストールしてください。もしくはEPELレポジトリから監視プラグインをインストールしてください。

11.7.1.7. smbclientのWARNING

checking for smbclient... no

configure: WARNING: Get smbclient from Samba.org to monitor SMB shares

sambaを用いた監視プラグインが必要な場合はsamba-clientをインストールしてください。

11.7.1.8. snmpgetのWARNING

checking for snmpget... no

configure: WARNING: Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins

snmpを用いた監視プラグインが必要な場合はnet-snmp-utilsをインストールしてください。

11.7.1.9. snmpgetnextのWARNING

checking for snmpgetnext... no

configure: WARNING: Tried /usr/bin/perl - install Net::SNMP perl module if you want to use the perl snmp plugins

snmpを用いた監視プラグインを動作させるためのperlモジュールが必要となる場合になりますので、必要な場合はperl-Net-SNMPをインストールしてください。

11.7.1.10. qstatのWARNING

checking for qstat... no

configure: WARNING: Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin

GAMEを監視するための監視プラグインとなります。必要な場合はqstatをインストールしてください。

11.7.1.11. fpingのWARNING

checking for fping... no

configure: WARNING: Get fping from http://www.fping.com in order to make check_fping plugin

fpingを用いた監視プラグインが必要な場合はfpingをインストールしてください。

11.7.1.12. sshのWARNING

checking for ssh... no

configure: WARNING: Get ssh in order to make check_by_ssh plugin

監視対象ホストから他のホストへSSHを用いて監視する際のプラグインとなります。必要な場合はopenssh-clientsをインストールしてください。

11.7.1.13. mailqのWARNING

checking for mailq... no

configure: WARNING: Could not find mailq or eqivalent

mailqを用いた監視プラグインが必要な場合はpostfixをインストールしてください。

11.7.1.14. qmail-statのWARNING

checking for qmail-qstat... no

configure: WARNING: Could not find qmail-qstat or eqivalent

qmail-statを用いた監視プラグインとなります。環境に応じてqmailをコンパイルしインストールしてください。

11.7.2. rpmパッケージから特定の監視プラグインを追加する場合

以下のrpmパッケージのインストールは Red Hat Enterprise Linux、CentOSの場合(64bit環境) でX-MONのISOイメージをマウントし、各OSバージョンの作業ディレクトリに移動した状態で行ってください。
また、各プラグインのバージョン番号の確認は、各プラグインパッケージの名称を使って以下のコマンドを実行してください
例) nagios-plugins-snmp

# ls | grep nagios-plugins-snmp

11.7.2.1. NRPE経由でのSNMP監視

以下のrpmパッケージをインストールします。

# rpm -ihv ./nagios-plugins-snmp-<バージョン番号>.x86_64.rpm

RHEL7以降のX-MONから監視を行う場合、以下のパッケージをインストールします。

# yum install perl-Crypt-Rijndael

11.7.2.2. NRPE経由でのNTPサーバ監視

以下のrpmパッケージをインストールします。

# rpm -ihv ./nagios-plugins-ntp-<バージョン番号>.x86_64.rpm

11.7.2.3. NRPE経由でのRPCサービス監視

RHEL8以降の環境へのRPC監視は、被監視対象とNRPEサーバが異なるネットワークに所属する場合、RPCの仕様により監視が行えません。
あらかじめご了承ください。

以下のrpmパッケージをインストールします。

# rpm -ihv ./nagios-plugins-rpc-<バージョン番号>.x86_64.rpm

11.7.2.4. NRPE経由でのメールキュー監視

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

# yum install postfix

rpmパッケージをインストールします。

# rpm -ihv ./nagios-plugins-mailq-<バージョン番号>.x86_64.rpm

11.7.2.5. NRPE経由でのDNS監視

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

# yum install bind-utils

rpmパッケージをインストールします。

# rpm -ihv ./nagios-plugins-dns-<バージョン番号>.x86_64.rpm

11.7.2.6. NRPE経由での共有フォルダ監視

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

# yum install samba-client

rpmパッケージをインストールします。

# rpm -ihv ./nagios-plugins-disk-smb-<バージョン番号>.x86_64.rpm

11.7.3. ポートの解放について

11.7.3.1. NRPE経由でのDHCPサーバ監視

68番のUDPポートを開放します。

■CentOS / RHEL6

# iptables -I INPUT -p udp --dport 68 -j ACCEPT

# service iptables save

■CentOS / RHEL7以降

# firewall-cmd --add-port=68/udp --permanent

11.7.4. レポジトリから監視プラグインを追加する場合

X-MONのisoイメージファイル内のファイル以外から監視プラグインをインストールするにはレポジトリからインストールする事が可能です。

しかし、ファイルへのパス等が変わりますので設定ファイルの変更が必要です。

また、インストールされる際に依存の関係でその他のソフトウェアがインストールされる事がありますので事前に検証の上でインストールください。

11.7.4.1. rpm系OSの場合

EPELレポジトリからインストールが可能です。

yum searchコマンドで検索してみましょう。

# yum search nagios-plugins

nagios-plugins.x86_64 : Host/service/network monitoring program plugins for Nagios

nagios-plugins-all.x86_64 : Nagios Plugins - All plugins

nagios-plugins-apt.x86_64 : Nagios Plugin - check_apt

nagios-plugins-bdii.x86_64 : Nagios Plugin - check_bdii_entries

~中略~

nagios-plugins-ups.x86_64 : Nagios Plugin - check_ups

nagios-plugins-users.x86_64 : Nagios Plugin - check_users

nagios-plugins-wave.x86_64 : Nagios Plugin - check_wave

監視プラグインが複数セットになっている物と単一でインストール出来るものがあります。
・nagios-plugins-all

基本的なプラグインがセットになっています。含まれるプラグインについては

https://rpmfind.net/linux/RPM/epel/7/x86_64/Packages/n/nagios-plugins-all-2.2.1-9git5c7eb5b9.el7.x86_64.html

などでご確認ください。

・nagios-plugins-[名前]

単一でインストール出来るものです。

レポジトリのパッケージからインストールすると、「/etc/nagios」というディレクトリが作成されますが、中には何も含まれません。

監視プラグインは64bit環境では「/usr/lib64/nagios/plugins/」に、32bit環境では「/usr/lib/nagios/plugins/」にインストールされます。

そのため、nrpe.cfgのコマンドへのパスを修正する必要がありますので注意してください。

・例)nagios-plugins-mailqの場合

mailqの監視プラグインをレポジトリからインストールしてみます。

# yum install nagios-plugins-mailq

正常にインストールされている事とインストール先を確認しておきます。

# rpm -q nagios-plugins-mailq
nagios-plugins-mailq-2.2.1-2.x86_64
# rpm -ql nagios-plugins-mailq
/usr/lib64/nagios/plugins/check_mailq

インストールされているプラグインは「/usr/lib64/nagios/plugins/check_mailq」とわかりました。nrpe.cfgを編集します。nrpe.cfgは導入した環境により保存場所が異なります。

・x-monのisoイメージのパッケージファイルからインストールした場合
/etc/opt/x-mon/nrpe.cfg
・x-monのisoイメージのソースからインストールした場合
/usr/local/nagios/etc/nrpe.cfg

編集箇所は同じですが元々のmailq監視プラグインへのパスは違いますので読み替えてください。

■編集前

command[check_mailq]=/opt/x-mon/lib/plugins/check_mailq $ARG1$

■編集後

#command[check_mailq]=/opt/x-mon/lib/plugins/check_mailq $ARG1$
command[check_mailq]= /usr/lib64/nagios/plugins/check_mailq $ARG1$

編集が完了したらNRPEを再起動させて完了です。

■デーモンの場合

# /etc/init.d/nrpe restart

■xinetdの場合

# /etc/init.d/xinetd restart

11.7.4.2. deb系OSの場合

deb系の場合は単一毎の監視プラグインではなく、監視プラグインがセットになったパッケージをインストールする事が出来ます。

# apt-cache search nagios-plugins

nagios-plugins-basic - Plugins for the nagios network monitoring and management system

nagios-plugins-standard - Plugins for the nagios network monitoring and management system

nagios-plugins - Plugins for the nagios network monitoring and management system

「nagios-plugins-basic」と「nagios-plugins-standard」がプラグインのセットとなります。

含まれるパッケージについてはdebian-squeezeの場合は

https://packages.debian.org/squeeze/amd64/nagios-plugins-standard/filelist

https://packages.debian.org/squeeze/amd64/nagios-plugins-basic/filelist

から確認出来ます。

その他については

https://www.debian.org/distrib/packages

より検索してください。

監視プラグインは「/usr/lib/nagios/plugins/」にインストールされます。

インストール後はrpm系OSと同じくnrpe.cfgを編集してご利用ください。