6. NRPE導入マニュアル
本書は X-MON を用いて監視を実施する際に使用するNRPEをLinux環境へインストールするマニュアルとなっております。
そのため、基本的なLinuxOSの一般的な操作、用語などについては知識をご理解の上でお読みください。
また、本稼働中のシステムへのインストール作業などは充分に検証を行ったうえで導入するようにしてください。
いかなるシステムへの影響が発生しても、弊社は責任を負いかねますのでご了承ください。
6.1. NRPEとは
NRPEとはX-MONを用いてリソース監視・性能監視を実施する際にLinux環境へインストールしておくエージェントソフトです。 プラグインをインストールする事により、さまざまな監視が可能となります。
■NRPE監視
また、本マニュアルでの作業についてはroot権限で行うよう記載しております。
root権限以外ではsudoを使用するなど、root権限でコマンドを発行できるようにしておいてください。
6.2. インストールするNRPEについて
NRPEをインストールする環境により、使用するNRPEが異なります。
6.2.1. AWS EC2インスタンスの場合
amzn-mainリポジトリ、またはEPELリポジトリよりインストールを実施します。
6.2.2. Red Hat Enterprise Linux、CentOSの場合(64bit環境)
X-MONのisoイメージファイルにrpmパッケージがありますのでそれからインストールを実施して頂けます。
6.2.3. Ubuntu環境の場合
ディストリビュータが用意しているリポジトリから必要なパッケージをインストールしてください。
設定ファイルを書き換える必要がありますが、X-MONのisoイメージ内のファイルをご利用いただけます。
6.2.4. その他のLinux環境の場合
X-MONサポートサイトからNRPEエージェントをダウンロードのうえ、インストールしてください。
6.3. AWS EC2インスタンスの場合
6.3.1. NRPEのインストール
AWS EC2インスタンス内Amazon Linuxでは、それぞれ以下のリポジトリよりNRPEパッケージをインストールすることが可能です。
Amazon Linux AMI
amzn-main リポジトリ
Amazon Linux 2
EPEL リポジトリ
注釈
Amazon 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
|
コマンド定義を設定します。
既存のコマンド定義はコメントアウトし、新たにコマンド定義を追加してください。
■編集前
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で監視設定を行ってください。
6.4. Red Hat Enterprise Linux、CentOSの場合(64bit環境)
Red Hat Enterprise Linuxではパッケージのインストールにあたり、「server optional rpms」のリポジトリを有効にする必要があります。
# mkdir /mnt/iso
# mount -t iso9660 -o loop x-mon-4.0.1.x64.iso /mnt/iso
|
作業ディレクトリに移動します。
・CentOS / RHEL 7の場合
# cd /mnt/iso/RPMS/el7 |
・CentOS / RHEL / Rocky Linux 8の場合
# cd /mnt/iso/RPMS/el8 |
・CentOS / RHEL 9の場合
# cd /mnt/iso/RPMS/el9
# yum install -y initscripts
|
6.4.1. NRPEのインストール
NRPEパッケージをインストールします。
# rpm -ihv ./x-mon-nrpe-<バージョン番号>.x86_64.rpm |
注釈
インストールの際に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がインストールされていない環境での警告ですが問題ありません。
6.4.2. 監視プラグインのインストール
# rpm -Uvh ./epel-release-<バージョン番号>.noarch.rpm |
※バージョン番号の確認は以下のコマンドを実行してください
# ls | grep epel-release |
NRPEが実行する監視プラグインのインストールに必要なパッケージをインストールします。既にインストールされている場合には、この操作は必要ありません。
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 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
|
Rocky Linux 9
# dnf config-manager --set-enabled crb
# dnf install net-snmp-utils perl-Net-SNMP mysql-libs postgresql-libs rpcbind perl
|
注釈
CentOS / 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 ./x-mon-nagios-plugins-perl-utils-<バージョン番号>.x86_64.rpm \
./x-mon-nrpe-custom-plugins-<バージョン番号>.x86_64.rpm \
./x-mon-nagios-plugins-<バージョン番号>.x86_64.rpm
|
# ls | grep x-mon-nagios-plugins-perl-utils |
また追加でインストール可能なパッケージがあります。詳しくは rpmパッケージから特定の監視プラグインを追加する場合 をご確認ください。
6.4.3. NRPEの設定
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を起動します。
# systemctl start nrpe |
自動起動の設定を行います。
# systemctl enable nrpe
# systemctl is-enabled nrpe
enabled
|
iptablesやファイアウォールでポート制限を行っている場合は以下を追加してください。
tcp 5666番
以上で監視対象ホストへのNRPEの導入が終わりました。X-MONで監視設定を行ってください。
6.5. Ubuntuの場合
6.5.1. NRPE・監視プラグインのインストール
# apt-get install libssl-dev |
# apt-get install libmysqld-dev |
・postgesql-devel
# apt-get install postgresql-server-dev-8.4 |
NRPEおよび監視プラグインのインストールをします。
# apt-get install nagios-nrpe-server nagios-nrpe-plugin |
NRPEおよび監視プラグインのインストールは以上です。
6.5.2. NRPEの設定
6.5.2.1. NRPE設定ファイルのバックアップ
NRPE設定ファイルを変更する前にバックアップを取得します。
# cp -vip /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.backup
'/etc/nagios/nrpe.cfg' -> '/etc/nagios/nrpe.cfg.backup'
# ls /etc/nagios/
nrpe.cfg nrpe.cfg.backup nrpe.d nrpe_local.cfg
|
6.5.2.2. NRPE設定ファイルの差し替え
X-MONのisoイメージファイルの中のnrpe.cfgを使用し、既存の設定ファイルを差し替えます。
X-MON isoイメージファイルを導入するサーバへアップロードし、マウントします。
# mkdir /mnt/iso
# mount -t iso9660 -o loop x-mon-4.0.1.x64.iso /mnt/iso
|
マウント先のcontribディレクトリ内にあるnrpe.cfgを既存の設定ファイルにコピーします。
# cp -vip /mnt/iso/contrib/nrpe.cfg /etc/nagios/nrpe.cfg |
6.5.2.3. 設定ファイルの変更
差し替えた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
|
PIDファイルのPATHを変更します。
編集前は「/var/run/nrpe.pid」となっているのを「/var/run/nagios/nrpe.pid」へコマンドで変更します。
# sed -i -e "s/\/var\/run\/nrpe.pid/\/var\/run\/nagios\/nrpe.pid/g" /etc/nagios/nrpe.cfg |
ユーザ・グループの変更をします。
編集前はユーザ・グループが「x-mon」となっているのを「nagios」へコマンドで変更します。
# sed -i -e "s/nrpe_user=x-mon/nrpe_user=nagios/g" /etc/nagios/nrpe.cfg
# sed -i -e "s/nrpe_group=x-mon/nrpe_group=nagios/g" /etc/nagios/nrpe.cfg
|
監視プラグインへのパスを変更します。
編集前は「/opt/x-mon/lib/plugins/」となっているのを「/usr/lib/nagios/plugins/」へコマンドで変更します。
# sed -i -e "s/\/opt\/x-mon\/lib\/plugins/\/usr\/lib\/nagios\/plugins/g" /etc/nagios/nrpe.cfg |
6.5.3. NRPEの起動
NRPEを起動させます。
# systemctl restart nagios-nrpe-server |
NRPEの自動起動を有効にします。
# systemctl enable nagios-nrpe-server |
以上で監視対象ホストへのNRPEの導入が終わりました。X-MONで監視設定を行ってください。
6.6. ログ監視をするためのNRPE設定
NRPEを用いてログ監視をする場合、追加の設定が必要となります。
6.6.1. パッケージでインストールした場合
NRPEとプラグインをパッケージでインストールした場合はsudoでx-monユーザの設定とnrpe.cfgを編集します。
6.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の設定は以上で終了です。
6.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 |
以上で設定は完了です。
6.7. 付録
その他特記すべき点について記載します。
6.7.1. rpmパッケージから特定の監視プラグインを追加する場合
# ls | grep x-mon-nagios-plugins-snmp |
6.7.1.1. NRPE経由でのSNMP監視
以下のrpmパッケージをインストールします。
# rpm -ihv ./x-mon-nagios-plugins-snmp-<バージョン番号>.x86_64.rpm | |
以下のパッケージをインストールします。
# yum install perl-Crypt-Rijndael |
6.7.1.2. NRPE経由でのNTPサーバ監視
以下のrpmパッケージをインストールします。
# rpm -ihv ./x-mon-nagios-plugins-ntp-<バージョン番号>.x86_64.rpm |
6.7.1.3. NRPE経由でのRPCサービス監視
注意
RHEL8以降の環境へのRPC監視は、被監視対象とNRPEサーバが異なるネットワークに所属する場合、RPCの仕様により監視が行えません。
あらかじめご了承ください。
以下のrpmパッケージをインストールします。
# rpm -ihv ./x-mon-nagios-plugins-rpc-<バージョン番号>.x86_64.rpm |
6.7.1.4. NRPE経由でのメールキュー監視
rpmのインストールに必要なパッケージをインストールします。
# yum install postfix |
rpmパッケージをインストールします。
# rpm -ihv ./x-mon-nagios-plugins-mailq-<バージョン番号>.x86_64.rpm |
6.7.1.5. NRPE経由でのDNS監視
rpmのインストールに必要なパッケージをインストールします。
# yum install bind-utils |
rpmパッケージをインストールします。
# rpm -ihv ./x-mon-nagios-plugins-dns-<バージョン番号>.x86_64.rpm |
6.7.1.6. NRPE経由での共有フォルダ監視
rpmのインストールに必要なパッケージをインストールします。
# yum install samba-client |
rpmパッケージをインストールします。
# rpm -ihv ./x-mon-nagios-plugins-disk-smb-<バージョン番号>.x86_64.rpm |
6.7.2. ポートの解放について
6.7.2.1. NRPE経由でのDHCPサーバ監視
# firewall-cmd --add-port=68/udp --permanent |
6.7.3. レポジトリから監視プラグインを追加する場合
X-MON isoイメージファイル内のファイル以外から監視プラグインをインストールする場合、レポジトリからインストールが可能です。
しかし、ファイルへのパス等が変わりますので設定ファイルの変更が必要です。
また、インストールされる際に依存の関係でその他のソフトウェアがインストールされる事がありますので事前に検証の上でインストールを行ってください。
6.7.3.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-[名前]
単一でインストール出来るものです。
レポジトリのパッケージからインストールすると、「/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は導入した環境により保存場所が異なります。
編集箇所は同じですが元々の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を再起動させて完了です。
# systemctl restart nrpe |
6.7.3.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を編集してご利用ください。