NRPE プラグインを使用してリモート Linux を Nagios サーバーに追加する方法
Nagios シリーズ記事の最初の部分では、RHEL ベースのディストリビューションに最新バージョンのNagios Core とNagios プラグインをインストールして設定する方法を詳しく説明しました。 CentOS ストリーム、Rocky Linux、AlmaLinux、Fedoraなど。
この記事では、NRPE を使用してリモート Linux マシンとそのサービスを Nagios Core Monitoring ホストに追加する方法を説明します ( >Nagios Remote Plugin Executor) エージェント。
すでにNagios Core がインストールされ、適切に実行されていることを願っています。そうでない場合は、次のインストール ガイドを使用してシステムにインストールしてください。
リモートのWindows ホストをNagios モニタリング サーバーに追加する予定がある場合は、次のガイドを使用してください。
インストールしたら、NRPE エージェントをリモート Linux ホストにインストールすることができます。次に進む前に、NRPE について簡単に説明しましょう。
NRPEとは何ですか?
NRPE (Nagios Remote Plugin Executor) プラグインを使用すると、リモートのLinux/Unix サービス、ネットワーク デバイスを監視できます。 、またはローカル/リモート Linux 上のCPU 負荷、スワップ、メモリ使用量、オンライン ユーザーなどのリソース機械。
結局のところ、これらのローカル リソースはほとんど外部マシンに公開されていないため、 リモート マシンにNRPE エージェントをインストールして構成する必要があります。
注: NRPE アドオンを使用するには、リモート Linux マシンにNagios プラグインがインストールされている必要があります。これらがないとNRPE デーモンは機能せず、何も監視しません。
Nagios サーバーおよびリモート Linux ホストへの NRPE プラグインのインストール
NRPE を使用するには、NRPE がインストールされているNagios モニタリング サーバーとリモート Linux ホストの両方で追加のタスクを実行する必要があります。の上。両方の取り付け部分については個別に説明します。
リモート Linux ホストへの Nagios プラグインと NRPE のインストール
以下の手順に従って、Nagios プラグインとNRPEデーモンをリモート Linux ホストにインストールしてください。
ステップ 1: 必要な依存関係をインストールする
gcc、glibc、glibc-common、GD などの必須ライブラリとその開発ライブラリをインストールする必要があります。 yumパッケージマネージャー。
yum install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel tar wget
ステップ 2: Nagios ユーザーを作成する
新しい nagios ユーザー アカウントを作成し、パスワードを設定します。
useradd nagios
passwd nagios
ステップ 3: Nagios プラグインをインストールする
nagios プラグインのインストールと今後のすべてのダウンロード用のディレクトリを作成します。
mkdir /root/nagios
cd /root/nagios
次に、wget コマンドを使用して、最新の Nagios プラグイン パッケージをダウンロードします。
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
ステップ 4: Nagios プラグインを抽出する
次の tar コマンドを実行して、ソース コード tarball を抽出します。
tar -xvf nagios-plugins-2.3.3.tar.gz
その後、解凍すると、そのディレクトリに新しいフォルダーが 1 つ表示されます。
ls -l
total 2724
drwxr-xr-x. 15 root root 4096 Mar 11 2020 nagios-plugins-2.3.3
-rw-r--r--. 1 root root 2782610 Mar 11 2020 nagios-plugins-2.3.3.tar.gz
ステップ 5: Nagios プラグインをコンパイルしてインストールする
次に、次のコマンドを使用して nagios プラグインをコンパイルしてインストールします。
cd nagios-plugins-2.3.3
./configure
make
make install
chown コマンドを使用して、プラグイン ディレクトリの権限を設定します。
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec
ステップ 6: NRPE プラグインのインストール
nrpe プラグインをインストールするには、まず最新の NRPE プラグインをダウンロードするか、次の wget コマンドを使用します。
cd /root/nagios
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.2/nrpe-4.0.2.tar.gz
NRPE ソース コードの tarball を解凍します。
tar xzf nrpe-4.0.2.tar.gz
cd nrpe-4.0.2
NRPE アドオンをコンパイルしてインストールします。
./configure
make all
注: 「すべて作成」コマンドの実行中に次のエラーが発生した場合:
In file included from ../include/common.h:34,
from ./nrpe.c:38:
/usr/include/openssl/err.h:413:15: note: declared here
413 | unsigned long ERR_get_error_line_data(const char **file, int *line,
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccWQBjHb.o: in function `init_ssl':
/root/nagios/nrpe-4.0.2/src/./nrpe.c:474: undefined reference to `get_dh2048'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:48: nrpe] Error 1
次に、示されているように、./configure --disable-ssl
フラグを使用して、nrpe 構成の SSL を無効にする必要があります。
./configure --disable-ssl
make all
次に、NRPE プラグイン デーモンとサンプル構成ファイルをインストールします。
make install-plugin
make install-daemon
make install-config
NRPE デーモンをサービスとして systemd にインストールします。
make install-init
ステップ 7: NRPE プラグインの構成
次に、/usr/local/nagios/etc/nrpe.cfg ファイルを開き、Nagios のローカル ホスト とIP アドレスを追加します。監視サーバーです。
allowed_hosts=127.0.0.1,192.168.102
次に、nrpe サービスを有効にして再起動します。
systemctl enable nrpe
systemctl restart nrpe
ステップ 8: ファイアウォールで NRPE ポートを開く
ローカル マシンのファイアウォールによって、 リモート サーバーからのNRPEデーモンへのアクセスが許可されていることを確認してください。これを行うには、次の iptables コマンドを実行します。
firewall-cmd --zone=public --add-port=5666/tcp
firewall-cmd --zone=public --add-port=5666/tcp --permanent
ステップ 8: NRPE デーモンをローカルで検証する
次の netstat コマンドを実行して、NRPE デーモンがsystemd で正しく動作していることを確認します。
# netstat -at | grep nrpe
OR
netstat -na | grep "5666"
tcp 0 0 0.0.0.0:nrpe 0.0.0.0:* LISTEN
tcp6 0 0 [::]:nrpe [::]:* LISTEN
上記のような出力が得られた場合は、正しく動作していることを意味します。そうでない場合は、次のことを必ず確認してください。
- nrpe エントリが/etc/services ファイルに正しく追加されていることを必ず確認してください。
- allowed_hosts には、/usr/local/nagios/etc/nrpe.cfg ファイル内の「nagios_ip_address」のエントリが含まれています。
- nrpe に関するシステム ログ ファイル内のエラーを確認し、それらの問題を修正します。
次に、テスト目的で以前にインストールした「check_nrpe」コマンドを実行して、NRPE デーモンが適切に機能していることを確認します。
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
画面に次の文字列が表示され、インストールされている NRPE のバージョンが示されます。
NRPE v4.0.2
ステップ 9: NRPE コマンドをカスタマイズする
インストールされたデフォルトの NRPE 構成ファイルには、このマシンの監視に使用されるいくつかのコマンド定義が含まれています。サンプル構成ファイルは次の場所にあります。
vi /usr/local/nagios/etc/nrpe.cfg
以下は、構成ファイルの下部にあるデフォルトのコマンド定義です。当面は、これらのコマンドを使用していることを前提としています。次のコマンドを使用して確認できます。
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_users
USERS OK - 1 users currently logged in |users=1;5;10;0
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_load
OK - load average: 3.90, 4.37, 3.94|load1=3.900;15.000;30.000;0; load5=4.370;10.000;25.000;0; load15=3.940;5.000;20.000;0;
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_hda1
DISK OK - free space: /boot 154 MB (84% inode=99%);| /boot=29MB;154;173;0;193
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_total_procs
PROCS CRITICAL: 297 processes
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_zombie_procs
PROCS OK: 0 processes with STATE = Z
NRPE 構成ファイルを編集することで、新しいコマンド定義を編集および追加できます。最後に、リモート Linux ホストに NRPE エージェントが正常にインストールされ、設定されました。
次に、NRPE コンポーネントをインストールし、Nagios モニタリング サーバーにいくつかのサービスを追加します。
Nagios モニタリングサーバーへの NRPE のインストール
ここでNagios 監視サーバーにログインします。ここでは、次のことを行う必要があります。
- check_nrpe プラグインをインストールします。
- check_nrpe プラグインを使用してNagios コマンド定義を作成します。
- Nagios ホストを作成し、リモート Linux ホストを監視するためのサービス定義を追加します。
ステップ 1: Nagios に NRPE プラグインをインストールする
nagios ダウンロード ディレクトリに移動し、最新の NRPE プラグインをダウンロードするか、 次のwget コマンドを使用します。
cd /root/nagios
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.2/nrpe-4.0.2.tar.gz
NRPE ソース コードの tarball を解凍します。
tar xzf nrpe-4.0.2.tar.gz
cd nrpe-4.0.2
NRPE アドオンをコンパイルしてインストールします。
./configure
make all
make install-plugin
make install-daemon
make install-init
ステップ 2: NRPE デーモンをリモートで検証する
check_nrpe プラグインがリモートの Linux ホスト上の NRPE デーモンと通信できることを確認してください。以下のコマンドのIP アドレスにリモート Linux ホストの IP アドレスを追加します。
/usr/local/nagios/libexec/check_nrpe -H <remote_linux_ip_address>
次のような、リモート ホストにインストールされている NRPE のバージョンを示す文字列が返されます。
NRPE v4.0.2
プラグインのタイムアウト エラーが発生した場合は、次のことを確認してください。
- ファイアウォールがリモート ホストと監視ホストの間の通信をブロックしていないことを確認してください。
- NRPE デーモンが systemd に正しくインストールされていることを確認してください。
- リモート Linux ホストのファイアウォール ルールが監視サーバーとNRPE デーモンとの通信をブロックしていることを確認してください。
Nagios モニタリングサーバーへのリモート Linux ホストの追加
リモート ホストを追加するには、「/usr/local/nagios/」の下に 2 つの新しいファイル「hosts.cfg」と「services.cfg」を作成する必要があります。 etc/」の場所。
ステップ 1: Nagios ホストとサービス ファイルの作成
cd /usr/local/nagios/etc/
touch hosts.cfg
touch services.cfg
次に、これら 2 つのファイルをメインの Nagios 設定ファイルに追加します。任意のエディタで nagios.cfg ファイルを開きます。
vi /usr/local/nagios/etc/nagios.cfg
次に、以下に示すように、新しく作成した 2 つのファイルを追加します。
You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
ステップ 2: Nagios ホストとサービス ファイルの構成
ここでhosts.cfg ファイルを開き、以下に示すようにデフォルトのホスト テンプレート名を追加しリモート ホストを定義します。必ずホスト名、エイリアス、およびアドレスをリモート ホスト サーバーの詳細に置き換えてください。
vi /usr/local/nagios/etc/hosts.cfg
## Default Linux Host Template ##
define host{
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}
## Default
define host{
use linux-box ; Inherit default values from a template
host_name tecmint ; The name we're giving to this server
alias CentOS 6 ; A longer name for the server
address 5.175.142.66 ; IP address of Remote Linux host
}
次に、services.cfg ファイルを開き、監視する次のサービスを追加します。
vi /usr/local/nagios/etc/services.cfg
define service{
use generic-service
host_name tecmint
service_description CPU Load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name tecmint
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use generic-service
host_name tecmint
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name tecmint
service_description SSH Monitoring
check_command check_nrpe!check_ssh
}
define service{
use generic-service
host_name tecmint
service_description FTP Monitoring
check_command check_nrpe!check_ftp
}
ステップ 3: NRPE コマンド定義の構成
ここで、NRPE コマンド定義をcommands.cfg ファイルに作成する必要があります。
vi /usr/local/nagios/etc/objects/commands.cfg
ファイルの最後に次の NRPE コマンド定義を追加します。
###############################################################################
NRPE CHECK COMMAND
#
Command to use NRPE to check remote host systems
###############################################################################
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
最後に、Nagios 設定ファイルにエラーがないか確認します。
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
最後に、Nagios を再起動して、最近の設定変更を適用します。
systemctl restart nagios
ステップ 4: Nagios でのリモート Linux の監視
ここで、「http://Your-server-IP-address/nagios」または「http://FQDN/nagios」のNagios Monitoring Webインターフェイスに移動します。 」し、ユーザー名「nagiosadmin 」 とパスワードを入力します。 リモート Linux ホストが追加され、監視されていることを確認します。
結論
それでおしまい!当面は、次の記事でWindows ホストをNagios 監視サーバーに追加する方法を説明します。リモートホストをNagiosに追加する際に問題が発生した場合。
コメント セクションを通じて質問や問題についてコメントしてください。それまでは、linux-console.net でこのような貴重な記事をさらにご覧ください。