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
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インフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
18.217.10.200
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…