トップ ITインフラ サーバー 監視 Nagios

Nagiosとは―統合監視ソフト。簡単な構築方法など。

Nagiosを利用して、サーバーやサーバー内のプロセスの定期監視、異常検知時のメール通知が行える監視サーバーが構築できます。簡単な構築例などNagiosについてまとめています。

▲記事トップへ

目次

この記事の目次です。

1. Nagiosとは
2. Nagiosの読み方
3. 構築に必要なミドルウェア
4. 簡単な構築例

更新履歴

1. Nagiosとは

Nagiosは、統合監視が行えるソフトウェアです。 Nagiosを利用して、サーバーやサーバー内のプロセスの定期監視、異常検知時のメール通知が行える監視サーバーが構築できます。

2. Nagiosの読み方

Nagiosの読み方は「なぎおす」もしくは「なじおす」です。 2通りありますが、個人的な体験としては「なぎおす」の方が多かったです。

3. 構築に必要なミドルウェア

Nagiosの構築に必要なミドルウェアについてです。

NagiosはApacheとPHPが必要

NagiosのWebベースの管理画面を表示するためにApacheとPHPが必要です。

4. 簡単な構築例

CentOS7にNagiosを構築する簡単な例を以下に記載しています。

Apache HTTP Serverのインストール

Apacheをインストールしてhttpでアクセスできるようにします。

# yum -y install httpd
# systemctl enable httpd
# systemctl restart httpd
# firewall-cmd --add-service=http --permanent
# firewall-cmd --reload
# echo "OK" > /var/www/html/index.html

PHPのインストール

PHPをインストールします。

# yum -y install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum install --disablerepo=* --enablerepo=epel libargon2
# yum remove php* -y
# yum --enablerepo=remi,remi-php73 install php php-devel pcre-devel php-mysqlnd php-gd php-mbstring php-mcrypt
# php -v
# systemctl restart httpd
# echo "<?php echo 'PHP OK'; ?>" > /var/www/html/index.php

Nagiosのインストール

Nagiosをインストールします。

# yum -y install gd-devel gcc perl wget patch unzip
# useradd -d /usr/local/nagios/ -M nagios
# wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.4.6/nagios-4.4.6.tar.gz/download -O nagios-4.4.6.tar.gz
# tar zxvf nagios-4.4.6.tar.gz
# cd nagios-4.4.6
# wget http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.4.6.patch.gz
# gzip -dc nagios-jp-4.4.6.patch.gz|patch -p1
# ./configure && make all && make fullinstall && make install-config
# cd ..
# rm -Rf nagios-4.4.6  nagios-4.4.6.tar.gz

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

Nagiosのプラグインをインストールします。

# yum -y install mysql-devel
# wget http://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
# tar -zxvf nagios-plugins-2.3.3.tar.gz
# cd nagios-plugins-2.3.3
# ./configure && make && make install
# cd ..
# rm -Rf nagios-plugins-2.3.3  nagios-plugins-2.3.3.tar.gz

Nagiosの設定

Nagiosの設定を行います。

Apacheの設定

BASIC認証を設定します。

# cat /etc/httpd/conf.d/nagios.conf|grep AuthUserFile
         AuthUserFile /usr/local/nagios/etc/htpasswd.users
      AuthUserFile /usr/local/nagios/etc/htpasswd.users
         AuthUserFile /usr/local/nagios/etc/htpasswd.users
      AuthUserFile /usr/local/nagios/etc/htpasswd.users
# usermod -G nagios apache
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

メール通知(mailx)

メール通知用にmailxをインストールします。

# yum install sendmail sendmail-cf
# yum -y install mailx

/etc/mail/sendmail.mcを編集します。

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

上記のところを以下に変更します。

DAEMON_OPTIONS(`Port=smtp, Addr=127.0.0.1, Name=MTA-loopback')dnl

sendmailを再起動します。

# systemctl restart sendmail
# systemctl enable sendmail

以下のコマンドでテストメールが送信できればOKです。

# echo "TEST" | /bin/mail -s "TEST" <メールアドレス>

コア設定(nagios.cfg)

nagios.cfgを編集してコア設定を行います。

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

「cfg_file=/usr/local/nagios/etc/objects/localhost.cfg」コメントアウトします。

# cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

「# cfg_dir=/usr/local/nagios/etc/servers」のコメントを外します。

cfg_dir=/usr/local/nagios/etc/servers

サーバ用設定ファイル用のディレクトリ作成

サーバ用設定ファイル用のディレクトリを作成します。

# mkdir /usr/local/nagios/etc/servers

通知設定(contacts.cfg)

<メールアドレス>に通知する例です。

# vi /usr/local/nagios/etc/objects/contacts.cfg
:
define contact{
        contact_name                    nagiosadmin		; Short name of user
	use				generic-contact		; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin		; Full name of user

        email                           <メールアドレス> 	; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }
:
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagiosadmin
        }

コマンド設定(commands.cfg)

コマンドの設定を行います。以下はcheck_httpの例です。

# vi /usr/local/nagios/etc/objects/commands.cfg
:
# 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -H $HOSTADDRESS$ -u $ARG1$ -w $ARG2$ -c $ARG3$
        }
:

監視対象の設定(通知設定)

監視対象の設定(通知設定)を行います。

# vi /usr/local/nagios/etc/servers/www.zealseeds.com.cfg

1分に1回、/index.htmlをチェックし、レスポンスが15秒の場合警告、30秒の場合クリティカルにする例です。

define host{
        use                     linux-server
        host_name               www.zealseeds.com
        alias                   www.zealseeds.com
        address                 www.zealseeds.com
        }

define service{
        use                             generic-service
        host_name                       www.zealseeds.com
        service_description             HTTP
        check_command                   check_http!/index.html!15!30
        notifications_enabled           1
        normal_check_interval           1
        retry_check_interval            1
        contact_groups                  admins
        }

Nagiosの操作

Nagiosの起動・停止などの操作についてです。

起動

まずは起動ファイルを作成します。

# vi /etc/systemd/system/nagios.service

起動ファイルの記述例です。

[Unit]
Description=Nagios
BindTo=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=nagios
Group=nagios
Type=simple
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

サービス登録します。

# systemctl enable /etc/systemd/system/nagios.service

起動コマンドは以下です。

# systemctl start nagios

管理画面表示

もし初期構築の場合は初めに「# systemctl restart httpd」でApacheを再起動して設定を反映します。

「http://<ホスト>/nagios/」にアクセスしてnagiosのページが表示されます。 BASIC認証は「/usr/local/nagios/etc/htpasswd.users」を作成したときのユーザ名とパスワードを入力します。

更新履歴

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

18.225.31.159

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク