Nagiosを利用して、サーバーやサーバー内のプロセスの定期監視、異常検知時のメール通知が行える監視サーバーが構築できます。簡単な構築例などNagiosについてまとめています。
この記事の目次です。
1. Nagiosとは
2. Nagiosの読み方
3. 構築に必要なミドルウェア
4. 簡単な構築例
Nagiosは、統合監視が行えるソフトウェアです。 Nagiosを利用して、サーバーやサーバー内のプロセスの定期監視、異常検知時のメール通知が行える監視サーバーが構築できます。
Nagiosの読み方は「なぎおす」もしくは「なじおす」です。 2通りありますが、個人的な体験としては「なぎおす」の方が多かったです。
Nagiosの構築に必要なミドルウェアについてです。
NagiosのWebベースの管理画面を表示するためにApacheとPHPが必要です。
CentOS7にNagiosを構築する簡単な例を以下に記載しています。
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をインストールします。
# 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をインストールします。
# 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のプラグインをインストールします。
# 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の設定を行います。
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をインストールします。
# 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を編集してコア設定を行います。
# 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
<メールアドレス>に通知する例です。
# 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
        }
コマンドの設定を行います。以下は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の起動・停止などの操作についてです。
まずは起動ファイルを作成します。
# 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
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
 Web API
Web API
Google Maps
 ITインフラ
ITインフラ OSとミドルウェア
OSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
 ITインフラ
ITインフラ セキュリティ
セキュリティ
公開サーバーのセキュリティ
 SI
SI
ホームページの作り方
スポンサーリンク
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
216.73.216.181
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved.