はじめに
nagiosを業務で使うようになり、どんなものか確認するためにVirtualboxで構築してみた。
nagiosは、Zabbixと同様にホストとリソース(CPU メモリ ハードディスク)を監視するモニタリングツールです。
Zabbixの様にWebインタフェースの画面(GUI)で監視の設定が出来ません。
監視する際は、nagiosサーバーのOS内でプラグイン(監視用のコマンド)を使って監視を行います。
個人的な感想としては、nagiosはZabbixに比べると、データベースの構築がないため、
Zabbixに比べて簡単に構築出来ますが、監視の設定追加やアラート発報条件の閾値を変更する際に、
nagiosサーバーにssh接続し、linuxコマンドを使ってコンフィグファイルを修正する必要があるため、
初心者には少しハードル高いと感じました。
以下のサイトでnagiosサーバー構築を学びました。
infracollege
https://infracollege.vamdemicsystem.black/linux/
前提条件
Virtualboxをインストール済み
以下のゲストOSは、OSはCentOS7を使用 ネットワークの設定済み
nagiosサーバー用のゲストOS作成済み
ゲストOSのネットワークの設定は以下の記事を参考にしてください。
https://qiita.com/gama1234/items/d857fe5941ad5519f04c
nagiosサーバー 構築手順
SElinuxが無効化する。
[root@localhost ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing ※この行をコメントアウト
SELINUX=disabled ※設定追加
※途中の記載省略
[root@localhost ~]# init 6 ※サービスの再起動
[root@localhost ~]# getenforce
Disabled
httpdインストールする。
httpdのサービスのバージョンは今回指定がないため、
デフォルトの2.4.6をインストールする。
httpdサービスのバージョンを確認し、問題なければyを入力してインストールを開始する。
[root@localhost ~]# yum install httpd
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
※処理の記載省略
依存性を解決しました
※バージョンを確認し、問題なければyを入力する。
======================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
======================================================================================================================
インストール中:
httpd x86_64 2.4.6-97.el7.centos.5 updates 2.7 M
※処理の記載省略
Is this ok [y/d/N]:y
httpdサービスがインストールされたことを確認する。
[root@localhost ~]# rpm -qa | grep httpd ※httpdインストール確認
httpd-2.4.6-97.el7.centos.5.x86_64
httpd-tools-2.4.6-97.el7.centos.5.x86_64
[root@localhost etc]# systemctl enable httpd ※httpdサービス自動起動設定
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]#
ファイアウォール設定
既にhttpdが許可されていることを確認した。
[root@localhost ~]# firewall-cmd --add-service=http --permanent
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
拡張リポジトリ追加
php7.xをインストールするため、remi-release-7.rpmのリポジトリをインストールする。
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
phpインストール
phpはバージョンを間違えてインストールすることがあるため、
phpサービスのバージョンを確認し、問題なければyを入力してインストールを開始する。
[root@localhost ~]# yum install --enablerepo=remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
※処理の記載省略
Is this ok [y/d/N]:y
[root@localhost ~]#
[root@localhost ~]# php -v
PHP 7.3.33 (cli) (built: Nov 16 2021 11:18:28) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
phpの設定
/var/www/htmlはドキュメントルートでhttpdが外部に公開するサイトを設定する。
今回はphpのバージョンを外部に公開する。
[root@localhost ~]# vi /var/www/html/index.php
<?php phpinfo(); ?>
PHPの設定ファイルでタイムゾーンを日本にする。
[root@localhost ~]# vi /etc/php.ini
919行 [Date]
920行 ; Defines the default timezone used by the date functions
921行 ; http://php.net/date.timezone
922行 ;date.timezone =
923行 date.timezone = "Asia/Tokyo" ※ここに追加
httpdを再起動
1.httpdの設定ファイルの文法チェックをする
[root@localhost ~]# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK
2.httpdの設定ファイルにServerNameを設定する。
[root@localhost conf]# cp -p httpd.conf httpd.confbk
※vi httpd.confでファイルを開き、ServerNameの設定を追加する。
※修正後と修正前の差分確認
[root@localhost conf]# sdiff -s httpd.conf httpd.confbk
ServerName localhost:80 <
※再度、httpdの文法チェックをする
[root@localhost conf]# httpd -t
Syntax OK
3.httpdサービスを再起動する。
[root@localhost ~]# systemctl restart httpd
nagiosのインストールとnagiosのプラグインをインストールする。
[root@localhost ~]# yum --enablerepo=epel -y install nagios
[root@localhost ~]# yum --enablerepo=epel -y install nagios-plugins-{ping,disk,users,procs,load,swap,ssh,http}
Basic認証用ユーザ作成
[root@localhost ~]# htpasswd /etc/nagios/passwd nagiosadmin
New password: ※パスワードを設定する。
Re-type new password:※再度パスワードを設定する。
Updating password for user nagiosadmin
nagiosサーバーの再起動
[root@localhost ~]# systemctl start nagios
[root@localhost ~]#
[root@localhost ~]# systemctl status nagios ※activeのため、実行中
● nagios.service - Nagios Core 4.4.6
Loaded: loaded (/usr/lib/systemd/system/nagios.service; disabled; vendor preset: disabled)
Active: active (running) since 土 2022-04-30 09:21:14 JST; 5s ago
Docs: https://www.nagios.org/documentation
Process: 5376 ExecStart=/usr/sbin/nagios -d /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
※途中記載省略
※システム起動時にnagiosサービスが自動起動する設定を入れる。
[root@localhost ~]# systemctl enable nagios
Created symlink from /etc/systemd/system/multi-user.target.wants/nagios.service to /usr/lib/systemd/system/nagios.service.
[root@localhost ~]#
不要ファイル一時削除
[root@localhost ~]# rm -fr /var/www/html/index.php
[root@localhost ~]# systemctl restart httpd
構築したnagiosサーバーのIPアドレスを確認する。
nagiosサーバーのIPアドレスが「192.168.0.2」であることを確認
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:bc:1e:5a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::dffb:bd06:1975:aca8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]#
nagios ブラウザをアクセスする
http://192.168.0.2(nagiosサーバーのIP)/nagios/
ユーザー名「nagiosadmin」と設定したパスワードを入れる。
nagios構築完了
nagios設定ファイルについて
nagiosの設定ファイルを勉強しました。
# cd /etc/nagios
※nagiosのメインの設定ファイル
-rw-rw-r-- 1 root root 45665 3月 7 2021 nagios.cfg
※cgi設定ファイル
-rw-rw-r-- 1 root root 13699 3月 7 2021 cgi.cfg
drwxr-x--- 2 root nagios 26 5月 2 07:43 private
-rw-r----- 1 root apache 51 5月 2 07:43 passwd
drwxr-x--- 2 root nagios 167 5月 2 07:57 objects
# cd /etc/nagios/objects
※windowsOSのホストの設定ファイル
-rw-rw-r-- 1 root root 4074 3月 7 2021 windows.cfg
※時間帯定義ファイル
-rw-rw-r-- 1 root root 3512 3月 7 2021 timeperiods.cfg
-rw-rw-r-- 1 root root 12895 3月 7 2021 templates.cfg
-rw-rw-r-- 1 root root 3484 3月 7 2021 switch.cfg
-rw-rw-r-- 1 root root 3001 3月 7 2021 printer.cfg
※通知先設定ファイル
-rw-rw-r-- 1 root root 1797 3月 7 2021 contacts.cfg
※各コマンドの定義ファイル
-rw-rw-r-- 1 root root 6743 3月 7 2021 commands.cfg
※nagiosサーバーの監視設定ファイル
-rw-rw-r-- 1 root root 5051 5月 2 07:56 localhost.cfg
localhost.cfgファイルの中身を確認した
localhost.cfgで定義した監視が、nagiosサーバーのloalhostに表示されていることを確認した。
commands.cfgファイルのコマンドを確認した
監視設定ファイルは、Nagios統合監視[実践]リファレンスの本で学びました。
https://www.amazon.co.jp/dp/4774145823