Naigosと、Nagiosgraph(http://nagiosgraph.sourceforge.net/)をインストールして、Naigosが取得したデータをグラフで見れるようにします。
以下の様なグラフを表示して、数値を「見える化」してみます。
OSはCentOS6.5です。
# cat /etc/redhat-release CentOS release 6.5 (Final)
Naigosをインストール
Naigosをyumでインストールしちゃいます。
一緒に、Nagiosgraphで必要になるPerlモジュールも一緒にインストールしておきます。
# yum --enablerepo=epel -y install nagios nagios-plugins nagios-plugins-all gd-devel perl-CGI rrdtool-perl perl-GD perl-Time-HiRes perl-Data-Dumper nagios-plugins-nrpe
nagios管理ユーザーのBASIC認証を設定します。
# htpasswd /etc/nagios/passwd nagiosadmin New password:[パスワードを入力] Re-type new password:[パスワードを入力] Updating password for user nagiosadmin
nagiosをスタートして、自動起動の設定をしておきます。
# service nagios start # chkconfig nagios on
httpdをスタート。
# service httpd start
ブラウザでアクセスしてみましょう。
http://サーバー名/nagios/
ちゃんとnagiosが立ち上がっているでしょうか?
左の[Services]をクリックしてlocalhostの状態を確認してみましょう。
http://サーバー名/ のapacheのウェルカムページが
「HTTP WARNING: HTTP/1.1 403 Forbidden - 5237 bytes in 0.001 second response time 」
となっているので、この項目がWARNINGになっています。
正しい挙動です。
設定ファイルなどは /etc/nagios ディレクトリ以下に設置されています。
便宜設定しておきましょう。
Nagiosgraphをインストール
ここでは、バージョン1.5.1を使います。
Nagiosgraphをダウンロードして解凍。
# cd /usr/local/src # wget http://downloads.sourceforge.net/project/nagiosgraph/nagiosgraph/1.5.1/nagiosgraph-1.5.1.tar.gz # tar xvf nagiosgraph-1.5.1.tar.gz # cd nagiosgraph-1.5.1
インストール時に、いくつかパスを聞かれますが、ここでは「Destination directory (prefix)」のみ入力します。
あと、いくつか「y」を入力して、その他は、Enterでスキップしていきます。
※色を変えた箇所が入力した箇所です。
最後に、自動でnagiosとapacheの設定ファイルを書き換えます。
書き換えたファイルは、バックアップが作成されます。
# ./install.pl --layout redhat checking required PERL modules Carp...1.11 CGI...3.51 Data::Dumper...2.124 Digest::MD5...2.39 File::Basename...2.77 File::Find...1.14 MIME::Base64...3.08 POSIX...1.17 RRDs...1.3008 Time::HiRes...1.9721 checking optional PERL modules GD...2.44 Nagios::Config... ***FAIL*** checking nagios installation found nagios exectuable at /usr/sbin/nagios found nagios init script at /etc/init.d/nagios checking web server installation found apache executable at /usr/sbin/httpd found apache init script at /etc/init.d/httpd Destination directory (prefix)? [/] /usr/local/nagiosgraph Location of configuration files (etc-dir)? [/etc/nagiosgraph] Location of executables? [/usr/libexec/nagiosgraph] Location of CGI scripts? [/usr/lib/nagiosgraph/cgi-bin] Location of documentation (doc-dir)? [/usr/share/doc/nagiosgraph] Location of examples? [/usr/share/nagiosgraph/examples] Location of CSS and JavaScript files? [/usr/share/nagiosgraph/htdocs] Location of utilities? [/usr/share/nagiosgraph/util] Location of state files (var-dir)? [/var/spool/nagiosgraph] Location of RRD files? [/var/spool/nagiosgraph/rrd] Location of log files (log-dir)? [/var/log/nagiosgraph] Path of log file? [/var/log/nagiosgraph/nagiosgraph.log] Path of CGI log file? [/var/log/nagiosgraph/nagiosgraph-cgi.log] Base URL? [/nagiosgraph] URL of CGI scripts? [/nagiosgraph/cgi-bin] URL of CSS file? [/nagiosgraph/nagiosgraph.css] URL of JavaScript file? [/nagiosgraph/nagiosgraph.js] URL of Nagios CGI scripts? [/nagios/cgi-bin] Path of Nagios performance data file? [/tmp/perfdata.log] username or userid of Nagios user? [nagios] username or userid of web server user? [apache] Modify the Nagios configuration? [n] y Path of Nagios configuration file? [/etc/nagios/nagios.cfg] Path of Nagios commands file? [/etc/nagios/objects/commands.cfg] Modify the Apache configuration? [n] y Path of Apache configuration directory? [/etc/httpd/conf.d] configuration: ng_prefix /usr/local/nagiosgraph ng_etc_dir /etc/nagiosgraph ng_bin_dir /usr/libexec/nagiosgraph ng_cgi_dir /usr/lib/nagiosgraph/cgi-bin ng_doc_dir /usr/share/doc/nagiosgraph ng_examples_dir /usr/share/nagiosgraph/examples ng_www_dir /usr/share/nagiosgraph/htdocs ng_util_dir /usr/share/nagiosgraph/util ng_var_dir /var/spool/nagiosgraph ng_rrd_dir /var/spool/nagiosgraph/rrd ng_log_dir /var/log/nagiosgraph ng_log_file /var/log/nagiosgraph/nagiosgraph.log ng_cgilog_file /var/log/nagiosgraph/nagiosgraph-cgi.log ng_url /nagiosgraph ng_cgi_url /nagiosgraph/cgi-bin ng_css_url /nagiosgraph/nagiosgraph.css ng_js_url /nagiosgraph/nagiosgraph.js nagios_cgi_url /nagios/cgi-bin nagios_perfdata_file /tmp/perfdata.log nagios_user nagios www_user apache modify_nagios_config y nagios_config_file /etc/nagios/nagios.cfg nagios_commands_file /etc/nagios/objects/commands.cfg modify_apache_config y apache_config_dir /etc/httpd/conf.d apache_config_file Continue with this configuration? [y] y
nagiosの設定ファイルをチェック
# /usr/sbin/nagios -v /etc/nagios/nagios.cfg
nagiosをリスタート
# service nagios restart
※ Apache/2.4以上の場合は下記設定を変更しておきます。2箇所あります。
/etc/httpd/conf.d/nagiosgraph.conf Order allow,deny Allow from all -> Require all granted
httpdをリスタート
# service httpd restart
しばらくすると、以下のディレクトリにグラフ用のrrdファイルが作成されていきます。
# cd /var/spool/nagiosgraph/rrd # ls -al 合計 12 drwxr-xr-x 3 nagios root 4096 6月 24 16:54 2014 . drwxr-xr-x 3 root root 4096 6月 24 16:48 2014 .. drwxrwxr-x 2 nagios nagios 4096 6月 24 16:55 2014 localhostそうすると、以下のURLでnagiosgraphのURLが確認できるようになります。ブラウザでアクセスしてみましょう。
http://サーバー名/nagiosgraph/cgi-bin/show.cgi
エラーがでたり、うまくいかなかったらnagiosのログを確認しましょう。
# tail -f /var/log/nagios/nagios.log
nagiosのテンプレートファイルを編集して、nagiosのコンソール画面からグラフを見れるようにします。
以下を追記。
# vim /etc/nagios/objects/templates.cfg define service { name graphed-service action_url /nagiosgraph/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/nagiosgraph/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=week&rrdopts=-w+450+-j register 0 }
サーバの監視ファイルのuseにgraphed-serviceを追加していきます。
カンマ区切りで追加しますが、スペースを空けるとエラーになるので注意です。
それぞれの監視項目に、graphed-serviceを追加しておきましょう。
# vim /etc/nagios/objects/localhost.cfg
define service{ use local-service,graphed-service host_name localhost service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use local-service,graphed-service host_name localhost service_description Root Partition check_command check_local_disk!20%!10%!/ }
nagiosの設定ファイルをチェック
# /usr/sbin/nagios -v /etc/nagios/nagios.cfg
nagiosをリスタート
# service nagios restart
ブラウザでアクセスしてみましょう。
Total Processesなど、グラフの出やすい項目で、ちゃんと描画されているか確認してみましょう。
logrotateを設定
# vim /etc/logrotate.d/nagiosgraph /var/log/nagiosgraph/*log { daily dateext create missingok compress rotate 30 } # logrotate -dv /etc/logrotate.d/nagiosgraph # logrotate -fv /etc/logrotate.d/nagiosgraph
まとめ。
Nagiosで取得した情報をNagiosgraphによってグラフ化しました。久しぶりに、Nagiosgraphのページを見たらアップデートされていたので導入をしてみました。
Nagiosgraphは、リリースされてから時間がたつのですが、案外、日本語の情報がなかったので、再度、導入方法についてまとめた意味はあったかと思います。
こういった監視ツールは、SaaSサービスも含め色々リリースされている昨今ですが、まだまだNagiosも行けるなーと感じました。
※こちらも参考にしてみてください。
Nagiosgraphのタイムアウトを解決する
http://takeshiyako.blogspot.jp/2014/07/nagiosgraph.html