ウェブサイト検索

CentOS 8にNagiosをインストールして設定する方法


CentOS 8にNagiosをインストールして設定する方法

このページで

  1. 前提条件
  2. ステップ1 - ファイアウォールを設定する
  3. ステップ2 - ApacheとPHPをインストールする
  4. ステップ3 - Nagiosをインストールする

    1. 依存関係をインストールする
    2. Nagiosをダウンロード
    3. Nagiosをコンパイルする
    4. Nagiosユーザーとグループを作成する
    5. Nagiosバイナリをインストールする
    6. 外部コマンドディレクトリを作成する
    7. Nagiosの設定ファイルをインストールする
    8. Apacheの設定ファイルをインストールする
    9. Systemd サービスファイルを作成する
    10. HTTP認証を有効にする
  5. ステップ4 - Nagiosプラグインをインストールする
  6. ステップ5 - check_nrpeプラグインをインストールする
  7. ステップ6 - Nagiosを開始する

    1. Nagiosウェブインターフェース
  8. ステップ7 - ホストの監視

    1. Nagiosプラグインをインストールする
    2. NRPEをインストールする
    3. モニターをチェックする
  9. ステップ8 - Nginxをインストールして構成する

    1. ステップ8a - SSLをインストールして構成する
  10. 結論

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

このチュートリアルでは、CentOS 8 ベースのサーバーに Nagios をインストールおよび構成する方法を学びます。また、基本的な設定を行い、Nagios Remote Plugin Executor (NPRE) をインストールします。これにより、リモートホストを監視できるようになります。

前提条件

  1. CentOS 8を実行しているサーバー
  2. ルート権限を持つ非sudoユーザー。
  3. SELinuxが無効化されています
  4. 監視したい別のCentOS 8を実行しているサーバー。
  5. すべてが最新であることを確認してください。
  6. sudo dnf update
    

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

最初のステップはファイアウォールを設定することです。Fedoraサーバーには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 systemctl reload firewalld

ステップ2 - ApacheとPHPをインストールする

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

Apacheサービスをインストールして有効にしてください。

sudo dnf install httpd
sudo systemctl enable --now httpd

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

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module reset php
sudo dnf module enable php:remi-7.4

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

sudo dnf install php php-gd php-curl

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

エディタに次のコードを貼り付けてください。

<?php phpinfo();

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

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

ステップ3 - Nagiosをインストールする

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

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

このチュートリアルでは、Nagiosとそのプラグインをソースからビルドする必要があります。したがって、最初にいくつかの開発ライブラリをインストールする必要があります。

sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip wget gettext autoconf net-snmp-utils epel-release postfix automake
sudo dnf config-manager --enable powertools 
sudo dnf install perl-Net-SNMP

Nagiosをダウンロード

/usr/srcディレクトリに切り替えて、そこにダウンロードしたNagiosのソースファイルを置きます。

cd /usr/src

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

sudo wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz

tarファイルを抽出する。

sudo tar zxf nagios-*.tar.gz

Nagiosのソースディレクトリに切り替えてください。

cd nagioscore-nagios-*/

Nagiosをコンパイルする

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

sudo ./configure

スクリプトの成功した実行後、類似の出力を得るべきです。

*** Configuration summary for nagios 4.4.6 2020-04-28 ***:

 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:  /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):


Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

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

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

設定を有効にするためにウェブサーバーを再起動してください。

sudo systemctl restart httpd

Systemd サービスファイルを作成する

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

sudo make install-daemoninit

HTTP認証を有効にする

Nagiosのウェブインターフェースは、HTTP認証を介してロックすることができます。そのために、nagiosadminという名前の管理者ユーザーを作成してください。

htpasswdを使用してユーザーを作成するには、次のコマンドを実行してください。パスワードの入力を求められます。

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

設定を有効にするには、サーバーを再起動してください。

sudo systemctl restart httpd

ステップ4 - Nagiosプラグインをインストールする

Nagiosプラグインに必要な前提条件をインストールしてください。

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

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

cd /usr/src

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

sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz

tarファイルを抽出する。

sudo tar zxf nagios-plugins.tar.gz

プラグインディレクトリに変更してください。

cd nagios-plugins-*

プラグインをコンパイルしてインストールするために、以下のコマンドを順番に実行してください。

sudo ./configure
sudo make
sudo make install

ステップ5 - check_nrpeプラグインをインストールする

/usr/srcディレクトリに切り替えます。

cd /usr/src

NPREの最新バージョンをそのGithubページからダウンロードしてください。このチュートリアルを書いている時点で、利用可能な最新バージョンは4.0.3です。別のバージョンが必要な場合は、以下のコマンドを変更してください。

sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

アーカイブを抽出してください。

sudo tar zxf nrpe-*.tar.gz

NPREディレクトリに変更してください。

cd nrpe-4.0.3

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

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ウェブインターフェース

ブラウザでURL http://<domain_or_ip_address>/nagios を開いてください。ログインプロンプトが表示されるはずです。

HTTP認証方式で作成した資格情報を入力してください。そうすれば、次の画面が表示されるはずです。

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

ホストを監視するには、ホストにNRPEデーモンとNagiosプラグインをインストールする必要があります。私たちは、NagiosサーバーからCentOS 8ベースのサーバーを監視します。

ホストにログインしてください。

ssh user@monitored_server_ip

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

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

NRPEをインストールする

NRPEデーモンに必要な前提条件をインストールしてください。

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

/usr/srcディレクトリに切り替えます。

cd /usr/src

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

sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

アーカイブを抽出してください。

sudo tar zxf nrpe-*.tar.gz

NPREディレクトリに変更してください。

cd nrpe-4.0.3

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

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

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

sudo make install-groups-users

NPREバイナリ、NPREデーモン、および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

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

ファイルを編集のために開いてください。

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

デフォルトでは、NPREはリクエストをlocalhost(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=サービス回復(正常状態)時に通知することを意味します

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

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$

上記のコマンドの前にある#記号を削除して、コマンドのコメントを解除してください。必要に応じて、任意のコマンドのコメントを解除できます。

完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。

NPREプラグインで使用されているポート5666を許可してください。

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

ファイアウォールを再読み込みしてください。

sudo systemctl reload firewalld

NPREを開始します。

sudo systemctl start nrpe

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

メインのNagiosサーバーで次のコマンドを実行して、NRPEが動作しているか確認してください。

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

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

NRPE v4.0.3

ホストを監視するためには、監視したい各ホストのために設定ファイルを作成する必要があります。これらのホストは、Nagiosのウェブインターフェースを通じてアクセス可能になります。

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

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を編集のために開きます。次のファイルを探して、前についている#を削除してコメントアウトを解除します。

#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

次のコードを追加し、host_nameの値をリモートホスト名に置き換え、aliasの値をホストの説明に置き換え、addressの値をリモートホストの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                       client01
      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がNagiosによって事前に定義された generic-service というテンプレートを継承することを指示します。

次に、ディスク使用量を監視するためのブロックを追加します。

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

次に、以下のコードブロックを使用してHTTPサービスを監視できます。

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

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

define service {
    use                                 generic-service
    host_name                           nagiosclient
    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'
}

ルートパーティションとそのディスク使用量を確認してください。

define service{                     
    use                     			generic-service            
    host_name               			monitored_server_host_name            
    service_description     			Root / Partition            
    check_command           			check_nrpe!check_root
}

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%'
}

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

Nagiosを再起動します。

sudo systemctl restart nagios

モニターをチェックする

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

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

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

私たちの場合、スワップメモリが設定されていないため、スワップスペースが0になっており、サービスのクリティカルステータスが表示されています。これにより、あなたのホストがどのように動作しているかの正確なアイデアを得ることができるはずです。

ステップ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と入力します。

新しいIPアドレスをファイアウォールに追加してください。

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo systemctl reload firewalld

Apacheサーバーを再起動してください。

sudo systemctl restart httpd

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

CentOS 8はデフォルトでNginx 1.14を搭載していますが、これは古いバージョンです。最新のバージョンを有効にすることもできます。

sudo dnf module enable nginx:1.20
sudo dnf install nginx

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

sudo systemctl enable nginx

ステップ8a - SSLをインストールして構成する

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

Let's Encryptを使用してSSL証明書をインストールするためには、Certbotツールをダウンロードする必要があります。Certbotは、すでにチュートリアルで追加したCentOSのEPELリポジトリから入手可能です。

sudo dnf install certbot python3-certbot-nginx

Nginxサービスを停止してください。

sudo systemctl stop nginx

SSL証明書を生成する。

sudo certbot certonly --standalone --preferred-challenges --agree-tos --email [email  http -d nagios.example.com

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

SSLを更新するためにCronジョブを作成します。これは毎日実行され、証明書を確認して必要に応じて更新します。それに先立って、まずはファイル/etc/cron.daily/certbot-renewを作成し、編集のために開きます。

sudo nano /etc/cron.daily/certbot-renew

次のコードを貼り付けてください。

#!/bin/sh
certbot renew --cert-name nagios.example.com --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

タスクファイルの権限を変更して、実行可能にします。

sudo chmod +x /etc/cron.daily/certbot-renew

ディフィー・ヘルマン群証明書を生成します。

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Nginxを設定する前に、もう一つの変更を行う必要があります。デフォルトでは、ApacheはNagiosをhttp://<serverIP>: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=/nagiosをurl_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

ファイルの先頭に次の行を追加してください。

<VirtualHost *:1080>

ファイルの下部に次の行を追加してください。

</VirtualHost>

完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。

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

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

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

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

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

sudo systemctl restart httpd
sudo systemctl restart nagios

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

すべてが正常に動作するようになったら、Nginxの設定ファイルを作成することができます。

Nagios用の設定ファイルを/etc/nginx/conf.dディレクトリに作成してください。

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 X-Forwarded-For $proxy_add_x_forwarded_for;
		       proxy_set_header Host $host;
                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 start nginx

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

結論

あなたは、CentOS 8 ベースのサーバーに Nagios をインストールし、ロード、ディスク/スワップの使用状況、ユーザー、プロセスの合計、HTTP、SSH などの複数のサービスを監視するように構成しました。これで私たちのチュートリアルは終了です。もっと学びたい場合は、監視やさまざまなコマンドに関する公式の Nagios ドキュメントを確認するべきです。質問がある場合は、下のコメントに投稿してください。

関連記事: