CentOS8にNagios Coreをインストールする方法

投稿者: | 2020-04-13

今回はサーバ、ネットワークの状態を監視するツールとして使われているNagios Core、NagiosプラグインをCentOS8にインストールし、GUIの管理画面を表示するところまでを説明します。

実施環境・導入バージョン

OSCentOS 8 最小限のインストール
Apache2.4.37
PHP7.2.11
Nagios Core4.4.5
Nagiosプラグイン2.3.3

Nagiosとは

2002年からリリースされているネットワーク、サーバ、アプリケーションの監視をするプル型の監視ツールです。

プル型とは監視サーバで監視対象のホストの設定を行い、監視対象からデータを取ってくるように指示するタイプのツールです。監視サーバで設定を一元管理するため、異常があった際に発見しやすい等の特徴があります。有名なプル型の監視ツールとしては、NagiosやZabbix、Prometheusがあります。

プル型の対象としてプッシュ型のツールもあり、こちらは監視対象のホストにエージェントを導入し、エージェントが監視サーバにデータを送信するタイプになります。新しい監視対象のホストにエージェントを追加するだけなため、手軽に追加を行えることが特徴です。有名なツールにはDatalogやMeckerel等があります。

Nagiosには有償のNagios XIと無料で使えるNagios Coreがあり、有償版ではグラフ等の視覚的な機能が初めから備わっている等の特徴があります。

古くから使われているツールのため、コミュニティ情報が豊富にあることやユーザーが独自で作成した様々なプラグインが公開されている等、情報の多さが特徴です。監視ツールの中では学習コストが低めなため、システムの監視や監視サーバの構築を初めて行う人にも入りやすいかと思います。

事前準備

初めにwget、gcc等のソースファイルからインストールするために必要なものをインストールします。Nagiosのソースコンパイルのためにglib、gd、Perlが必要となるため、Perlも併せてインストールします。

# dnf install -y gcc make unzip wget tar perl、glibc glibc-common gd gd-devel 

次にNagiosのGUIでWebサーバとPHPが必要となるため、ApacheとPHPをインストールします。

# dnf install -y httpd php

ApacheとPHPインストール後、SELinuxを無効にします。sedコマンド入力後は再起動しSELinuxの設定を適用します。

・sedコマンドを使いSELinuxの設定ファイルを書き換え再起動
# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
# reboot

Nagios用ユーザー、グループの作成

Nagios操作用のユーザー、グループを作成する必要があるため、今回はnagiosというユーザーとnagioscmdというグループを作成し、nagiosとapacheをクループに参加させます。

・ユーザー・nagiosを作成しnagiosフォルダの権限を変更
# groupadd nagios
# useradd -d /usr/local/nagios -g nagios -m nagios
# chmod 755 /usr/local/nagios

・nagioscmdグループを作成、ユーザー・apacheとnagiosを追加する
# groupadd nagioscmd
# usermod -aG nagioscmd apache
# usermod -aG nagioscmd nagios

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

初めに、Nagios Coreのソースファイルをダウンロードし、コンパイル、インストールを行います。今回は「/usr/local/nagios」にインストールするように設定します。

# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz 
# tar zxvf nagios-4.4.5.tar.gz
# cd nagios-4.4.5
# ./configure --prefix=/usr/local/nagios --with-command-group=nagioscmd
# make all
# make install

Nagios Coreインストール後はNagiosの設定ファイルをインストールします。

# make install-init
# make install-commandmode
# make install-config
# make install-webconf

各コマンドの内訳は下記の通りです。

make install-initNagiosのUnitファイルのインストール
make install-commandmodeNagios.cmdの権限設定
make install-configNagiosの各種設定ファイルのインストール
make install-webconfNagiosのGUI設定ファイルのインストール

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

Nagiosでホストを監視するためには、ホストへ指示するためのコマンド(プラグイン)が必要となるためインストールします。

# wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz 
# tar zxf nagios-plugins-2.3.3.tar.gz
# cd nagios-plugins-2.3.3/
# ./configure
# make
# make install

Basic認証、nagios.conf、cgi.cfgの設定

NagiosのBasic認証、GUIアクセスの設定、サービス閲覧ユーザーの設定の設定を行います。

・Basic認証でhogeユーザーを設定する
# htpasswd -c /usr/local/nagios/etc/htpasswd.users hoge

パスワードの設定を求められる、パスワードを設定します。

Basic認証設定後、nagios.confファイルを設定します。

# vi /etc/httpd/conf.d/nagios.conf

■nagios.conf
--------------------------------------------------
<Directory "/usr/local/nagios/sbin">
      <省略>
#   <IfVersion < 2.3>
#     Order allow,deny
#     Allow from all
#     Order deny,allow
#     Deny from all
#     Allow from 127.0.0.1

#     AuthName "Nagios Access"
#     AuthType Basic
#     AuthUserFile /usr/local/nagios/etc/htpasswd.users
#     Require valid-user
#   </IfVersion>
</Directory>

<Directory "/usr/local/nagios/share">
      <省略>
#   <IfVersion < 2.3>
#     Order allow,deny
#     Allow from all
#     Order deny,allow
#     Deny from all
#     Allow from 127.0.0.1

#     AuthName "Nagios Access"
#     AuthType Basic
#     AuthUserFile /usr/local/nagios/etc/htpasswd.users
#     Require valid-user
#   </IfVersion>
</Directory>
 --------------------------------------------------

※参考
nagios.confの2.3以降、2.3以前の設定を両方残したままにすると、Nagiosサーバアクセス時に「403 Forbidden」が表示されアクセスできません。また、IPアドレスで制限を行いたい場合には2.3以降のRequireディレクティブで「Require ip <許可するIPアドレス>」を設定します。

# vi /usr/local/nagios/etc/cgi.cfg

■cgi.cfg
--------------------------------------------------
authorized_for_system_information=nagiosadmin,hoge
authorized_for_configuration_information=nagiosadmin,hoge
authorized_for_system_commands=nagiosadmin,hoge
authorized_for_all_services=nagiosadmin,hoge
authorized_for_all_hosts=nagiosadmin,hoge
authorized_for_all_service_commands=nagiosadmin,hoge
authorized_for_all_host_commands=nagiosadmin,hoge
--------------------------------------------------

Firewallの設定

Apacheに接続するため、FirewallでHTTPサービスを有効にします。

・firewallでHTTPサービスを許可
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --reload

動作確認

「http://<NagiosサーバのIPアドレス>/nagios」にアクセスすると、ユーザー名とパスワードの入力を求められるため、Basic認証の設定で作成したユーザーとパスワードを入力します。入力後、下記のNagiosのホーム画面が表示されれば設定完了です。

まとめ

  • Nagiosはプル型の監視ツール
  • Nagios CoreのインストールにはApache、PHP、Perl、glib、gdが必要
  • Nagiosの設定ファイルはmake install-○○コマンドでインストールする
  • リモートホストの監視をするためにはNagiosプラグインが必要
  • GUIのURLは「http://<サーバのIPアドレス>/nagios」

今回はNagios CoreのGUI画面表示までを行いました。普段のソースインストールのように「make install」で終わりではなく、追加のコマンドを入力することで設定ファイルをインストールするのは注意が必要ですね。次回はNagiosの主な設定ファイルについて紹介していきます。