0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Virtualboxでnagiosを構築してみた

Last updated at Posted at 2022-05-01

はじめに

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のバージョンを外部に公開する。

image.png

[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」と設定したパスワードを入れる。
image.png

nagios構築完了

image.png

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に表示されていることを確認した。
image.png

commands.cfgファイルのコマンドを確認した

image.png

監視設定ファイルは、Nagios統合監視[実践]リファレンスの本で学びました。
https://www.amazon.co.jp/dp/4774145823

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?