Nagios設定 · 8 min read · Nov 09, 2025

Rocky Linux 9にNagiosをインストールして設定する方法

Nagiosは人気があり、最も強力なオープンソースの監視システムの1つです。ITインフラストラクチャを監視し、ネットワーク、サーバー、アプリケーション、プロセスがスムーズに動作するように保ちます。監視システムを使用することで、問題が発生する前に検出し、迅速に修正してコストとダウンタイムを節約できます。

このチュートリアルでは、Rocky Linux 9サーバーにNagiosをインストールして設定する方法を説明します。また、基本的な設定を行い、リモートホストを監視するためのNagios Remote Plugin Executor (NPRE)をインストールします。

前提条件

  1. Rocky Linux 9を実行しているサーバー。
  2. root権限を持つ非sudoユーザー。
  3. SELinuxが無効になっていること。このチュートリアルでは、SELinuxを有効にしていても問題なく動作しますが、使用するNagiosモニターによっては、SELinuxを設定する必要があるか、無効のままにしておく方が良いでしょう。
  4. 監視したい別のRocky Linux 9サーバー。
  5. すべてが更新されていることを確認してください。 $ sudo dnf update

ステップ1 - ファイアウォールの設定

最初のステップはファイアウォールの設定です。Rocky LinuxサーバーにはFirewalldファイアウォールが付属しています。

ファイアウォールが実行中かどうかを確認します。

$ sudo firewall-cmd --state

次の出力が得られるはずです。

running

現在許可されているサービス/ポートを確認します。

$ sudo firewall-cmd --permanent --list-services

次の出力が表示されるはずです。

dhcpv6-client mdns ssh

HTTPおよびHTTPSポートを許可します。

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

ファイアウォールの状態を再確認します。

$ sudo firewall-cmd --permanent --list-services

同様の出力が表示されるはずです。

dhcpv6-client http https mdns ssh

ファイアウォールを再読み込みします。

$ sudo firewall-cmd --reload

ステップ2 - ApacheとPHPのインストール

Nagiosを実行するには、ApacheとPHPをインストールする必要があります。

Apacheサービスをインストールして有効にします。

$ sudo dnf install httpd
$ sudo systemctl enable httpd

PHPをインストールするために、Remiリポジトリを使用します。Remi Repoをインストールし、PHP 8.1を有効にします。

$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y

PHPといくつかの一般的なPHPモジュールをインストールします。

$ sudo dnf install -y php php-gd php-curl

PHPのインストールを確認します。

$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies

PHPを有効にし、サービスを開始します。

$ sudo systemctl enable --now php-fpm

変更を適用するためにApacheサービスを再起動します。

$ sudo systemctl restart httpd

ApacheとPHPのインストールを確認するには、Apacheインストーラーによって作成された/var/www/htmlディレクトリにinfo.phpというファイルを作成します。

$ sudo nano /var/www/html/info.php

エディタに次のコードを貼り付けます。

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

ブラウザでhttp:///info.phpのURLを開くと、次のページが表示されるはずです。

PHP情報ページ

ステップ3 - Nagiosのインストール

このチュートリアルのほとんどは、メインサーバーでNagiosをインストールして作業する必要があります。

依存関係のインストール

このチュートリアルでは、Nagiosとそのプラグインをソースからビルドする必要があります。したがって、最初にいくつかの開発ライブラリをインストールする必要があります。EPELリポジトリも必要ですが、前のステップでRemiリポジトリと一緒に自動的にインストールされたため、ここではスキップできます。

$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP

Nagiosのダウンロード

NagiosのGitHubリリースページから最新バージョンをダウンロードします。チュートリアルの時点で、4.4.10が最新バージョンです。異なるバージョンが必要な場合は、コマンドを修正してください。

$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz

tarファイルを抽出します。

$ sudo tar zxf nagios.tar.gz

抽出したディレクトリを/usr/srcディレクトリに移動します。

sudo mv nagios-4.4.10 /usr/src/nagios

/usr/src/nagiosディレクトリに移動します。

$ cd /usr/src/nagios

Nagiosのコンパイル

次のステップは、ソースファイルからNagiosをコンパイルすることです。configureスクリプトを実行して、すべての依存関係が存在することを確認します。

$ sudo ./configure

スクリプトの成功した完了後、次のような出力が得られるはずです。

* Configuration summary for nagios 4.4.10 2023-01-17 *:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
    Install ${includedir}:  /usr/local/nagios/include/nagios
                Lock file:  /run/nagios.lock
   Check result directory:  /usr/local/nagios/var/spool/checkresults
           Init directory:  /lib/systemd/system
  Apache conf.d directory:  /etc/httpd/conf.d
             Mail program:  /usr/sbin/sendmail
                  Host OS:  linux-gnu
          IOBroker Method:  epoll

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  

上記のオプションが正しいか確認してください。問題がなければ、`make all`を入力してメインプログラムとCGIをコンパイルします。

コンパイルを開始します。

$ sudo make all

Nagiosユーザーとグループの作成

Nagiosプロセスを実行する新しいユーザーとグループを作成します。

$ sudo make install-groups-users

次の出力が表示されるはずです。

groupadd -r nagios
useradd -g nagios nagios

apacheユーザーをnagiosグループに追加します。

$ sudo usermod -a -G nagios apache

Nagiosバイナリのインストール

次のコマンドを実行して、Nagiosバイナリ、CGI、およびHTMLファイルをインストールします。

$ sudo make install

外部コマンドディレクトリの作成

Nagiosは外部アプリケーションからのコマンドを処理できるため、それに必要なディレクトリを設定する必要があります。

$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw

* External command directory configured *

Nagios設定ファイルのインストール

サンプル設定ファイルをインストールします。

$ sudo make install-config

Apache設定ファイルのインストール

次のコマンドを実行して、Apache設定ファイルをインストールします。

$ sudo make install-webconf

設定を有効にするためにWebサーバーを再起動します。

$ sudo systemctl restart httpd

Systemdサービスファイルの作成

次のコマンドを実行して、systemdユニットファイルをインストールします。

$ sudo make install-daemoninit

HTTP認証の有効化

Nagios WebインターフェースをHTTP認証でロックできます。次のコマンドを実行して、htpasswdを使用してユーザーを作成します。パスワードの入力を求められます。

$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin

デフォルトのユーザー名はnagiosadminです。別のユーザー名を使用する場合は、/usr/local/nagios/etc/cgi.cfgファイル内のすべてのnagiosadminのインスタンスを希望のユーザー名に置き換えます。または、次のようにカンマを使用してユーザー名を追加できます。

authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1

読み取り専用アクセスを持つユーザーを追加するには、ファイル内の次の設定の前のハッシュ(#)を削除します。その後、ユーザー名でhtpasswdを実行します。

authorized_for_read_only=username2

設定を有効にするためにサーバーを再起動します。

$ sudo systemctl restart httpd

ステップ4 - Nagiosプラグインのインストール

Nagiosプラグインに必要な前提条件をインストールします。

$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP

NagiosプラグインのGitHubページから最新バージョンをダウンロードします。チュートリアルの時点で、2.4.3が最新バージョンです。異なるバージョンが必要な場合は、コマンドを修正してください。

$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz

tarファイルを抽出します。

$ sudo tar zxf nagios-plugins.tar.gz

抽出したディレクトリを/usr/srcディレクトリに移動します。

$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins

/usr/src/nagios-pluginsディレクトリに戻ります。

$ cd /usr/src/nagios-plugins

次のコマンドを実行してプラグインをコンパイルしてインストールします。

$ sudo ./configure
$ sudo make
$ sudo make install

ステップ5 - check_nrpeプラグインのインストール

NRPE GitHubリリースページから最新バージョンをダウンロードします。チュートリアル執筆時点で、最新バージョンは4.1.0です。異なるバージョンが必要な場合は、次のコマンドを修正してください。

$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz

アーカイブを抽出します。

$ tar zxf nrpe-*.tar.gz

抽出したディレクトリを/usr/srcディレクトリに移動します。

$ sudo mv nrpe-4.1.0 /usr/src/nrpe

/usr/src/nrpeディレクトリに移動します。

$ cd /usr/src/nrpe

プラグインを設定してインストールします。

$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin

これにより、check_nrpeプラグインが/usr/local/nagios/libexec/ディレクトリに配置されます。

ステップ6 - Nagiosの起動

Nagiosとプラグインがインストールされたので、Nagiosサービスを起動する時が来ました。

$ sudo systemctl start nagios

サービスの状態を確認して、正常に実行されているかどうかを確認します。

$ sudo systemctl status nagios

Nagios Webインターフェース

ブラウザでhttp:///nagiosのURLを開きます。ログインプロンプトが表示されるはずです。

HTTP認証メソッド中に作成した資格情報を入力すると、次の画面が表示されるはずです。

Nagiosホームページ

ステップ7 - ホストの監視

ホストを監視するには、ホストにNRPEデーモンとNagiosプラグインをインストールする必要があります。NagiosサーバーからRocky Linux 9サーバーを監視します。

ホストにログインします。

$ ssh user@monitored_server_ip

Nagiosプラグインのインストール

以前のステップ4を繰り返してNagiosプラグインをインストールします。

NRPEのインストール

NRPEデーモンに必要な前提条件をインストールします。

$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget

NRPEをダウンロードします。

$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz

アーカイブを抽出します。

$ tar zxf nrpe-*.tar.gz

抽出したディレクトリを/usr/srcディレクトリに移動します。

$ sudo mv nrpe-4.1.0 /usr/src/nrpe

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

$ cd /usr/src/nrpe

NRPEを設定してインストールします。

$ sudo ./configure --enable-command-args
$ sudo make all

ユーザーとグループを作成します。

$ sudo make install-groups-users

NRPEバイナリ、NRPEデーモン、およびcheck_npreプラグインをインストールします。

$ sudo make install

設定ファイルをインストールします。

$ sudo make install-config

サービスファイルを更新します。/etc/servicesファイルは、サービス名をポート番号に変換するために使用されます。

$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Nagios services' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe    5666/tcp' >> /etc/services"

NPREサービスデーモンをインストールします。

$ sudo make install-init
$ sudo systemctl enable nrpe

/usr/local/nagios/etc/nrpe.cfgにあるNPRE設定ファイルを更新する必要があります。

ファイルを編集するために開きます。

$ sudo nano /usr/local/nagios/etc/nrpe.cfg

デフォルトでは、NPREはローカルホスト(127.0.0.1)からのリクエストのみをリッスンします。NagiosサーバーのIPアドレスをファイルに追加する必要があります。

allowed_hosts=127.0.0.1,10.25.5.2

次のオプションは、NPREデーモンがクライアントにコマンド引数を指定することを許可するかどうかを決定します。このオプションを有効にするには、値を1に設定します。これにより、高度なNPRE設定が有効になります。

dont_blame_nrpe=1

次に、下にスクロールすると、定義されたNRPEコマンドのリストが表示されます。すべてコメントアウトされています。Nagiosがそれらを使用できるようにするために、コメントを解除する必要があります。

各コマンドには引数を渡すことができます。一部のコマンドには、前にハードコーディングされた引数がありますが、一部はユーザーからの引数を受け入れることができます。各コマンドには次の通知オプションがあります。

  • Wは警告サービス状態を表します
  • Cはクリティカルサービス状態を表します
  • Rはサービスの回復(OK状態)を通知します

したがって、コマンドが送信できる通知のレベルを指定できます。各コマンドの詳細な説明と機能については、このチュートリアルの範囲を超えているため、詳しくは説明しません。

# The following examples use hardcoded command arguments...
# This is by far the most secure method of using NRPE

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

# The following examples allow user-supplied arguments and can
# only be used if the NRPE daemon was compiled with support for
# command arguments *AND* the dont_blame_nrpe directive in this
# config file is set to '1'.  This poses a potential security risk, so
# make sure you read the SECURITY file before doing this.

### MISC SYSTEM METRICS ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$

### GENERIC SERVICES ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$

### SYSTEM UPDATES ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt

### PROCESSES ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$

### OPEN FILES ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$

### NETWORK CONNECTIONS ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$

上記のコマンドのコメントを解除するには、前の#記号を削除します。必要なだけ多くのコマンドのコメントを解除できます。

ルートディスクスペースをチェックするための次のコマンドを追加します。

command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /

完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

NPREプラグインで使用されるポート5666を許可します。

$ sudo firewall-cmd --permanent --add-port=5666/tcp

ファイアウォールを再読み込みします。

$ sudo firewall-cmd --reload

NPREを起動します。

$ sudo systemctl start nrpe

ここから先のすべてのコマンドは、特に指定しない限り、メインのNagiosサーバーで実行されます。

メインのNagiosサーバーで次のコマンドを実行して、NRPEが機能しているかどうかを確認します。

$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip

次の出力が表示されるはずです。

NRPE v4.1.0

ホストを監視するには、監視したい各ホストの設定ファイルを作成する必要があります。これらのホストは、Nagios Webインターフェースを介してアクセスできるようになります。

設定ファイルを保存するためのディレクトリを作成し、適切な権限を付与します。

$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers

Nagios設定ファイル/usr/local/nagios/etc/nagios.cfgを編集するために開きます。

$ sudo nano /usr/local/nagios/etc/nagios.cfg

次のファイルを見つけて、前の#を削除してコメントを解除します。

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

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

次のステップは、ホストを監視するためにcheck_nrpeコマンドを/usr/local/nagios/etc/objects/commands.cfgファイルに追加することです。

ファイル/usr/local/nagios/etc/objects/commands.cfgを編集するために開きます。

$ sudo nano /usr/local/nagios/etc/objects/commands.cfg

次のコードをファイルの最後に貼り付けます。

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

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

リモートホストの新しい設定ファイルを/usr/local/nagios/etc/servers/ディレクトリに作成します。

$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg

リモートホストのホスト名、説明、IPアドレスで次のコードを追加します。

define host {
        use                             linux-server
        host_name                       monitored_server_host_name
        alias                           My client server
        address                         monitored_server_private_ip
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

この設定により、Nagiosはホストがアップまたはダウンしていると通知します。追加のものを監視するには、さらにサービスを追加する必要があります。

ホストの接続統計をチェックするための次のブロックを追加します。

define service {
      use                             generic-service
      host_name                       monitored_server_host_name
      service_description             PING
      check_command                   check_ping!200.0,20%!400.0,90%
}

サーバーの負荷平均を監視するための次のブロックを追加します。

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             Load average
        check_command                   check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}

use generic-serviceディレクティブは、Nagiosが事前定義されたgeneric-serviceというテンプレートから継承することを示します。

次に、ディスク使用量を監視するためのブロックを追加します。コマンドを適切なディスクラベルで修正します。

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             /dev/vda1 free space
        check_command                   check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}

次のブロックを使用してSSHを監視します。次のブロックはSSHサーバーをチェックし、サーバーが5秒以内に応答しない場合にアラートを生成します。

define service {
    use                                 generic-service
    host_name                           monitored_server_host_name
    service_description                 SSH Version Check
    check_command                       check_ssh!-t 5
}

実行中のプロセスの合計数を確認します。

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                 Total Processes            
    check_command                       check_nrpe!check_total_procs
}

現在ログインしているユーザーを確認します。

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                 Current Users            
    check_command                       check_nrpe!check_users!-a '-w 5 -c 10'
}

SWAPディスク使用量を確認します。

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                 SWAP Usage            
    check_command                       check_nrpe!check_swap!-a '-w 40% -c 20%'
}

ルートパーティションとそのディスク使用量を確認します。

define service{
    use                                  generic-service
    host_name                            nagiosclient
    service_description                  Root / Partition
    check_command                        check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}

HTTPサーバーがインストールされているかどうかを確認します。

define service {
    use                                  generic-service
    host_name                            nagiosclient
    service_description                  HTTP
    check_command                        check_http
}

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

Nagiosを再起動します。

$ sudo systemctl restart nagios

モニターの確認

Nagiosダッシュボードを開き、左側のサイドバーからホストオプションをクリックします。新しく設定したホストがlocalhostとともにページに表示されるはずです。

Nagiosホスト監視

新しく設定したホスト(nagiosclient)をクリックすると、すべてが正しく設定されていれば、そのステータスが表示されるはずです。ステータスが表示されるまでに1分ほどかかることがあります。

Nagiosホストサービス監視

設定したサービスやモニターを確認するには、このホストのステータス詳細を表示オプションをクリックすると、次のページが表示されるはずです。

Nagiosサービスモニターステータス

これにより、ホストの動作状況が正確に把握できます。

ステップ8 - Nginxのインストール

NagiosをサーバーIP経由で直接実行するか、ドメイン名でホストすることができます。NagiosにはすでにApache設定ファイルが付属していますが、Nginxを使用して実行します。NginxをApacheウェブサーバーの前にリバースプロキシとして使用します。

Apacheはすでにポート80で実行されています。したがって、最初にそれを変更する必要があります。その後、Nginxをプロキシとして実行できます。

/etc/httpd/conf/httpd.confファイルを編集するために開きます。

$ sudo nano /etc/httpd/conf/httpd.conf

Listen 80の行をListen 8080に変更します。Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。Nagiosにアクセスするためにドメイン名を使用するため、パブリックアクセス用にポート8080を開く必要はありません。

Apacheサーバーを再起動します。

$ sudo systemctl restart httpd

次に、Nginxをインストールします。

Rocky Linux 9には古いバージョンのNginxが付属しています。最新バージョンをインストールするために公式のNginxリポジトリをダウンロードする必要があります。

公式のNginxリポジトリを作成して開くために、/etc/yum.repos.d/nginx.repoファイルを作成します。

$ sudo nano /etc/yum.repos.d/nginx.repo

次のコードを貼り付けます。

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

Nginxサーバーをインストールします。

$ sudo dnf install nginx

インストールを確認します。

$ nginx -v
nginx version: nginx/1.22.1

Nginxサーバーを有効にして起動します。

$ sudo systemctl enable nginx --now

ステップ9 - SSLのインストールと設定

Nginxを設定する前に、Nagiosで使用するドメインのSSL証明書を設定して構成します。この場合、http://nagios.example.comを使用します。

Snapdパッケージインストーラーを使用します。Rocky Linuxには付属していないため、Snapdインストーラーをインストールします。EPELリポジトリが必要ですが、すでにインストールされているため、ここではスキップできます。

Snapdをインストールします。

$ sudo dnf install -y snapd

Snapサービスを有効にして開始します。

$ sudo systemctl enable snapd --now

Snapコアパッケージをインストールし、Snapdのバージョンが最新であることを確認します。

$ sudo snap install core && sudo snap refresh core

Snapdが動作するために必要なリンクを作成します。

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

次のコマンドを実行してCertbotをインストールします。

$ sudo snap install --classic certbot

次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリで実行できるようにシンボリックリンクを作成します。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

インストールを確認します。

$ certbot --version
certbot 2.3.0

次のコマンドを実行してSSL証明書を生成します。

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d nagios.example.com

上記のコマンドは、サーバーの/etc/letsencrypt/live/nagios.example.comディレクトリに証明書をダウンロードします。

Diffie-Hellmanグループ証明書を生成します。

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

SSL更新が正常に機能しているかどうかを確認するために、プロセスのドライランを実行します。

$ sudo certbot renew --dry-run

エラーが表示されない場合は、すべて設定完了です。証明書は自動的に更新されます。

ステップ10 - Nginxの設定

Nginxを設定する前に、もう1つ変更する必要があります。デフォルトでは、ApacheはNagiosをhttp://:8080/nagiosで提供します。直接Nagiosをプロキシとして設定できますが、https://nagios.example.com/nagiosで提供されます。NginxでルートURLにリダイレクトを行うと複雑になります。そのため、ApacheとNagiosで直接変更を行います。

最初に、/usr/local/nagios/etc/cgi.cfgファイルを編集するために開きます。

$ sudo nano /usr/local/nagios/etc/cgi.cfg

url_html_path=/nagiosurl_html_path=/に変更します。

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

次に、/etc/httpd/conf.d/nagios.confを編集するために開きます。

$ sudo nano /etc/httpd/conf.d/nagios.conf

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"ScriptAlias /cgi-bin "/usr/local/nagios/sbin"に変更します。

Alias /nagios "/usr/local/nagios/share"の行をコメントアウトします。

#Alias /nagios "/usr/local/nagios/share" 

その下に次の行を追加します。

DocumentRoot /usr/local/nagios/share

ファイルの先頭に次の行を追加します。


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


完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

最後に、/usr/local/nagios/share/config.inc.phpファイルを編集するために開きます。

$ sudo nano /usr/local/nagios/share/config.inc.php

$cfg['cgi_base_url']='/nagios/cgi-bin';$cfg['cgi_base_url']='/cgi-bin';に変更します。

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

ApacheとNagiosの両方を再起動します。

$ sudo systemctl restart httpd
$ sudo systemctl restart nagios

すべてが正しく機能することを確認するために、ブラウザでhttp://:1080のURLを開くと、Nagiosが正常に動作しているはずです。また、ホストのデータが受信されていることを確認してください。

すべてが正常に動作している場合は、Nginxの設定ファイルを作成できます。

/etc/nginx/conf.dディレクトリにNagiosの設定ファイルを作成します。

$ sudo nano /etc/nginx/conf.d/nagios.conf

次のコードを貼り付けます。

server {
     listen 80; listen [::]:80;
     server_name nagios.example.com;
     return 301 https://$host$request_uri;
}

server {
        server_name nagios.example.com;

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log /var/log/nginx/nagios.access.log;
        error_log /var/log/nginx/nagios.error.log;

        ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
       location / {
           proxy_pass http://127.0.0.1:8080;
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
}

完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

設定ファイルを検証します。

$ sudo nginx -t

次のエラーが表示された場合は、/etc/nginx/nginx.confファイルを編集して、server_names_hash_bucket_sizeのサイズを追加または調整する必要があります。

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size

/etc/nginx/nginx.confファイルを編集するために開きます。

$ sudo nano /etc/nginx/nginx.conf

次の行を追加します。

server_names_hash_bucket_size  64;

完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。再度Nginxを検証します。

問題がなければ、Nginxサーバーを再起動します。

$ sudo systemctl restart nginx

SELinuxの設定

SELinuxを有効にしている場合は、次のコマンドを実行してNginxがネットワークに接続できるようにします。

$ sudo setsebool -P httpd_can_network_connect on

ブラウザでhttps://nagios.example.comドメインを開くと、Nagiosのホームページが表示されるはずです。

結論

Rocky Linux 9サーバーにNagiosをインストールして設定し、負荷、ディスク/スワップ使用量、ユーザー、プロセスの合計、HTTP、SSHなどのいくつかのサービスを監視するようにしました。これでチュートリアルは終了です。詳細を学ぶには、監視やさまざまなコマンドに関する公式のNagiosドキュメントを確認してください。質問がある場合は、下のコメントに投稿してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。