Ubuntu Server26.10 : Nagios Server インストール

オープンソースの統合監視ソフトウェア「Nagios Server」インストール

Nagiosは、Linux 上で実行するオープンソースの監視ソリューションです。
Nagiosは、 Ethan Galstadによって開発され、 1999 年に最初にリリースされました。その後、このプロジェクトは、いくつかの貢献者によってオープンソース プロジェクトとして改良されました。

Nagiosは、ネットワーク、アプリケーション、またはサーバーの重要なパラメーターを定期的にチェックするように設計されています。これらのパラメータには、マイクロプロセッサの負荷、実行中のプロセス数、ログ ファイル、ディスクおよびメモリの使用量の他、SMTP (Simple Mail Transfer Protocol)、HTTP (Hypertext Transfer Protocol)、POP3 ( Post Office Protocol 3)の他の多くのサービスもチェックできます。

Nagoisを実行するにはPHP、MySQLなどのデータベース、ApacheやNginxなどのWebサーバーが必要です。今回はこれらすべてが構成済みという前提で進めます。

1. インストール

# apt -y install nagios4

Apache再起動

# a2enmod cgi
# systemctl restart nagios4 apache2

3. Nagios プラグインをインストール

①インストール

# apt -y install nagios-plugins

下記のとおりnagios-pluginsが利用可能である

 # ls /usr/lib/nagios/plugins/

check_apt       check_fping         check_load         check_nwstat     check_ssh
check_breeze    check_ftp           check_log          check_oracle     check_ssmtp    
check_by_ssh    check_game          check_mailq        check_overcr     check_swap     
check_clamd     check_host          check_mrtg         check_ping       check_tcp      
check_cluster   check_hpjd          check_mrtgtraf     check_pop        check_time     
check_curl      check_http          check_mssql        check_procs      check_udp      
check_dbi       check_icmp          check_mysql        check_radius     check_ups      
check_dhcp      check_ide_smart     check_mysql_query  check_real       check_users    
check_dig       check_ifoperstatus  check_nagios       check_rpc        check_wave     
check_disk      check_ifstatus      check_nntp         check_rta_multi  negate
check_disk_smb  check_imap          check_nntps        check_sensors    urlize
check_dns       check_ircd          check_nt           check_simap      utils.pm       
check_dummy     check_jabber        check_ntp          check_smtp       utils.sh       
check_file_age  check_ldap          check_ntp_peer     check_snmp
check_flexlm    check_ldaps         check_ntp_time     check_spop

4. Nagios Web ユーザーの作成

Nagios Web ダッシュボードにアクセスするためのユーザー アカウントを作成する。このユーザーアカウントは、認証に使用される。
ユーザーのデフォルト名はnagiosadminで、/etc/nagios4/cgi.cfg ファイル内に優先ユーザー名として定義されています。

# htdigest /etc/nagios4/htdigest.users "Nagios4" nagiosadmin
New password:  [password]
Re-type new password:  [again password]
Adding password for user nagiosadmin

ファイアウォールで HTTP サービスポートを解放します

# ufw allow http
# ufw reload

Nagios サービスを有効化

# systemctl enable nagios4 --now
Created symlink '/etc/systemd/system/multi-user.target.wants/nagios4.service' → '/usr/lib/systemd/system/nagios4.service'.

サービスが実行しているか確認

# systemctl status nagios4

● nagios4.service - nagios4
     Loaded: loaded (/usr/lib/systemd/system/nagios4.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-10-19 13:41:43 JST; 7min ago
 Invocation: cfa131779dc9434cbd5c011aabc18f3c
       Docs: man:nagios4
    Process: 11351 ExecStartPre=sh -c nagiospipe=$$(sed -n "s/^command_file=\(.*\)/\1/p" ${NAGIOSCFG}); [ >
   Main PID: 11356 (nagios4)
      Tasks: 6 (limit: 3938)
     Memory: 2.5M (peak: 4M)
        CPU: 186ms
     CGroup: /system.slice/nagios4.service
             ├─11356 /usr/sbin/nagios4 /etc/nagios4/nagios.cfg
             ├─11357 /usr/sbin/nagios4 --worker /var/lib/nagios4/rw/nagios.qh
             ├─11358 /usr/sbin/nagios4 --worker /var/lib/nagios4/rw/nagios.qh
             ├─11359 /usr/sbin/nagios4 --worker /var/lib/nagios4/rw/nagios.qh
             ├─11360 /usr/sbin/nagios4 --worker /var/lib/nagios4/rw/nagios.qh
             └─11362 /usr/sbin/nagios4 /etc/nagios4/nagios.cfg

Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11357;pid=11357
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11357;pid=11357
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11358;pid=11358
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11359;pid=11359
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11360;pid=11360
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11358;pid=11358
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11359;pid=11359
Oct 19 13:41:43 Lepard nagios4[11356]: wproc: Registry request: name=Core Worker 11360;pid=11360
Oct 19 13:41:43 Lepard nagios4[11356]: Successfully launched command file worker with pid 11362
Oct 19 13:41:43 Lepard nagios4[11356]: Successfully launched command file worker with pid 11362

5. Nagios Web インターフェイスにアクセス

任意のブラウザで http://[FQDN]/nagios/ もしくは http://[IP address]/nagios4 にアクセスすると、以下のダッシュボードが表示されます。

ホストの可用性を表示
左メニューの[Hosts]をクリック

左メニューの [Tactical Overview] をクリックすると監視データを閲覧できる

左メニューの [Current Status] [Services] をクリック : 現在の監視サービス内容が表示される

※ SSHポートをカスタム設定で2244を割り当てている場合は下記の通りlocalhost.cfgを変更しておきます

# vi /etc/nagios4/objects/localhost.cfg
143行目当たり
check_command           check_ssh
↓
check_command           check_ssh!-p 2244
# systemctl restart nagios4

6. Nagios エージェントの構成

エージェントを監視するため。以下をインストールする
• プラグインを実行するNRPE Agent

6.1 Nagios NRPE Agentのインストール
NRPE エージェントは、デフォルトの Ubuntu リポジトリで利用可能

# apt-cache policy nagios-nrpe-server
nagios-nrpe-server:
  Installed: (none)
  Candidate: 4.1.3-1ubuntu3
  Version table:
     4.1.3-1ubuntu3 500
        500 http://archive.ubuntu.com/ubuntu stonking/universe amd64 Packages
# apt install -y nagios-nrpe-server

バージョン確認

# nrpe -V
NRPE - Nagios Remote Plugin Executor
Version: 4.1.3

サービスを開始して有効にする

# systemctl enable --now nagios-nrpe-server

NRPEエージェントのステータスを確認

# systemctl status nagios-nrpe-server

● nagios-nrpe-server.service - Nagios Remote Plugin Executor
     Loaded: loaded (/usr/lib/systemd/system/nagios-nrpe-server.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-10-19 14:22:50 JST; 1min 54s ago
 Invocation: aa3f5dcbe4aa4f59a4a493eb0d3074e5
       Docs: http://www.nagios.org/documentation
   Main PID: 6213 (nrpe)
      Tasks: 1 (limit: 3938)
     Memory: 1.3M (peak: 2.2M)
        CPU: 10ms
     CGroup: /system.slice/nagios-nrpe-server.service
             └─6213 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f

Oct 19 14:22:50 Lepard systemd[1]: Started nagios-nrpe-server.service - Nagios Remote Plugin Executor.     
Oct 19 14:22:50 Lepard (nrpe)[6213]: nagios-nrpe-server.service: Referenced but unset environment variable>
Oct 19 14:22:50 Lepard nrpe[6213]: Starting up daemon
Oct 19 14:22:50 Lepard nrpe[6213]: Server listening on 0.0.0.0 port 5666.
Oct 19 14:22:50 Lepard nrpe[6213]: Server listening on :: port 5666.
Oct 19 14:22:50 Lepard nrpe[6213]: Listening for connections on port 5666
Oct 19 14:22:50 Lepard nrpe[6213]: Allowing connections from: 127.0.0.1,::1

ファイアウォールでNRPEのポートを開く
NRPEはデフォルトでTCP 5666ポートを使用します。ファイアウォールが動作している場合は、Nagiosモニタリングサーバーからの外部チェックを許可するために、このポートを開きます。

# ufw allow 5666/tcp
# ufw reload

ポート5666/tcpがリッスンされているか確認

# ss -altnp | grep 5666
LISTEN 0      5            0.0.0.0:5666       0.0.0.0:*    users:(("nrpe",pid=6213,fd=4))
LISTEN 0      5               [::]:5666          [::]:*    users:(("nrpe",pid=6213,fd=5))

7. 監視ホストの追加

下記サーバーをホストに追加し、 単純なPing による死活監視対象として設定
OS : Ubuntu26.10
IPアドレス : 192.168.11.85

7.1 設定ファイル編集

# vi /etc/nagios4/nagios.cfg
62行目 : コメント解除
cfg_dir=/etc/nagios4/servers

7.2 ディレクトリー作成

# mkdir /etc/nagios4/servers
# chgrp nagios  /etc/nagios4/servers
# chmod 750 /etc/nagios4/servers

7.3 定義ファイル新規作成

"korodes.cfg" 名称は任意でよい

# vi /etc/nagios4/servers/korodes.cfg

define host {
    use                     linux-server
    host_name               korodes
    alias                   korodes
    address                 192.168.11.85
}
define service {
    use                     generic-service
    host_name               korodes
    service_description     PING
    check_command           check_ping!100.0,20%!500.0,60%
}

7.4 Nagiosサーバー再起動

# systemctl restart nagios4.service

Nagios サーバーにログイン(http://[サーバーIPアドレス]/nagios)しHostsを見るとホストが追加されている

8. 監視サービスの追加

上記で追加したホストに監視サービスを追加する
OS : Ubuntu26.10
IPアドレス : 192.168.11.85

8.1 監視対象サーバー側の設定

8.1.1 監視対象ホストにエージェントをインストール

# apt install -y nagios-nrpe-server

8.1.2 設定ファイル編集

# vi /etc/nagios/nrpe.cfg

106行目 : 接続を許可するホストを追記 (Nagios サーバーを指定)
allowed_hosts=127.0.0.1,::1,192.168.11.83

122行目 : コマンドの引数を許可
dont_blame_nrpe=1

300-304行目コメントにし、追加
# command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
# command[check_load]=/usr/lib/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
# command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
# command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
# command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

pluginの一部を追加する

command[check_by_ssh]=/usr/lib/nagios/plugins/check_by_ssh $ARG1$
command[check_dhcp]=/usr/lib/nagios/plugins/check_dhcp $ARG1$
command[check_disk]=/usr/lib/nagios/plugins/check_disk $ARG1$
command[check_file_age]=/usr/lib/nagios/plugins/check_file_age $ARG1$
command[check_ftp]=/usr/lib/nagios/plugins/check_ftp $ARG1$
command[check_http]=/usr/lib/nagios/plugins/check_http $ARG1$
command[check_imap]=/usr/lib/nagios/plugins/check_imap $ARG1$
command[check_load]=/usr/lib/nagios/plugins/check_load $ARG1$
command[check_log]=/usr/lib/nagios/plugins/check_log $ARG1$
command[check_mysql]=/usr/lib/nagios/plugins/check_mysql $ARG1$
command[check_ntp]=/usr/lib/nagios/plugins/check_ntp $ARG1$
command[check_ntp_peer]=/usr/lib/nagios/plugins/check_ntp_peer $ARG1$
command[check_ntp_time]=/usr/lib/nagios/plugins/check_ntp_time $ARG1$
command[check_ping]=/usr/lib/nagios/plugins/check_ping $ARG1$
command[check_pop]=/usr/lib/nagios/plugins/check_pop $ARG1$
command[check_spop]=/usr/lib/nagios/plugins/check_spop $ARG1$
command[check_procs]=/usr/lib/nagios/plugins/check_procs $ARG1$
command[check_smtp]=/usr/lib/nagios/plugins/check_smtp $ARG1$
command[check_ssmtp]=/usr/lib/nagios/plugins/check_ssmtp $ARG1$
command[check_ssh]=/usr/lib/nagios/plugins/check_ssh $ARG1$
command[check_swap]=/usr/lib/nagios/plugins/check_swap $ARG1$
command[check_tcp]=/usr/lib/nagios/plugins/check_tcp $ARG1$
command[check_udp]=/usr/lib/nagios/plugins/check_udp $ARG1$
command[check_ups]=/usr/lib/nagios/plugins/check_ups $ARG1$
command[check_users]=/usr/lib/nagios/plugins/check_users $ARG1$

8.1.3 nrpeサーバー有効化、起動

# systemctl enable nagios-nrpe-server
# systemctl start nagios-nrpe-server

# /etc/init.d/nagios-nrpe-server status
● nagios-nrpe-server.service - Nagios Remote Plugin Executor
     Loaded: loaded (/usr/lib/systemd/system/nagios-nrpe-server.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-10-19 14:33:56 JST; 6min ago
 Invocation: 1337774dc6424a0c885b9947e5dadc5a
       Docs: http://www.nagios.org/documentation
   Main PID: 5491 (nrpe)
      Tasks: 1 (limit: 3939)
     Memory: 1.3M (peak: 2.2M)
        CPU: 31ms
     CGroup: /system.slice/nagios-nrpe-server.service
             mq5491 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f

Oct 19 14:33:56 Lion systemd[1]: Started nagios-nrpe-server.service - Nagios Remote Plugin Executor.
Oct 19 14:33:56 Lion (nrpe)[5491]: nagios-nrpe-server.service: Referenced but unset environment variable evaluates to an empty string: NRPE_OPTS
Oct 19 14:33:56 Lion nrpe[5491]: Starting up daemon
Oct 19 14:33:56 Lion nrpe[5491]: Server listening on 0.0.0.0 port 5666.
Oct 19 14:33:56 Lion nrpe[5491]: Server listening on :: port 5666.
Oct 19 14:33:56 Lion nrpe[5491]: Listening for connections on port 5666
Oct 19 14:33:56 Lion nrpe[5491]: Allowing connections from: 127.0.0.1,::1

8.1.4 ファイアウォールでNRPEのポート5666/tcp,5666/udpを開く

# ufw allow 5666/tcp
# ufw allow 5666/udp
# ufw reload
8.2 Nagios サーバー側の設定

8.2.1 先ほどホストを追加したときに作成した korodes.cfg を編集追加する
今回はHTTP,SSH,FTPを追加してみる

# vi /etc/nagios4/servers/korodes.cfg

# 以下を追加する

# 'HTTP' command definition
define service{
        use                              local-service
        host_name                        korodes
        service_description              HTTP
        check_command                    check_http
        }
# 'SSH' command definition
define service{
        use                              local-service
        host_name                        korodes
        service_description              SSH
        check_command                    check_ssh
       }
# 'FTP' command definition
define service{
        use                              local-service
        host_name                        korodes
        service_description              FTP
        check_command                    check_ftp
        }

8.2.2 Nagios 再起動

# systemctl restart nagios4.service

8.2.3 http://[Nagios Server IP Address]/nagios にアクセスする
下図のように新しく追加した監視サービスが追加されている