Nagiosの監視結果をグラフ化は nagiosgraphがお勧め!!
運用上でNagiosを使っている人にすごくこれ、便利なのです。日々の観測を、グラフ化してくれるツールになります。私的には結構設定が難しく、次回設定する時に理解できるようにしようと、メモがわりに掲載しております。なので、色々間違ってたらごめんなさい。 ただインストールするとこれがまた便利です!!
PlayStation 4 ジェット・ブラック 500GB (CUH-2100AB01)
- 出版社/メーカー: ソニー・インタラクティブエンタテインメント
- 発売日: 2017/07/24
- メディア: Video Game
- この商品を含むブログ (2件) を見る
モンスターハンター:ワールド(発売日以降お届け分) - PS4
- 出版社/メーカー: カプコン
- 発売日: 2018/01/26
- メディア: Video Game
- この商品を含むブログ (1件) を見る
- 出版社/メーカー: カプコン
- 発売日: 2018/01/26
- メディア: Video Game
- この商品を含むブログ (5件) を見る
動作環境
以下の環境でテストしました。
ここでは Nagiosサーバのインストールには触れませんが、基本 yumでこれだけだと思いますw
yum --enablerepo=epel -y install nagios nagios-plugins nagios-plugins-all yum --enablerepo=epel -y install gd-devel yum --enablerepo=epel -y install nagios-nrpe yum --enablerepo=epel -y nagios-plugins-nrpe
nagiosgraph インストール方法
ソースをダウンロード
https://sourceforge.net/projects/nagiosgraph/files/nagiosgraph/
からとりあえず最新版をダウンロードしました。
上記では、最新版が、1.5.2でしたのでこちらでインストールしてみます。 なお、当方のNagiosのバージョンは、Nagios® Core™ Version 3.5.1 でした。 バージョン依存するという話もあるみたいなので、一応メモがわりに載せました。
download
ソースのダウンロードをします
# cd /usr/local/src wget http://downloads.sourceforge.net/project/nagiosgraph/nagiosgraph/1.5.2/nagiosgraph-1.5.2.tar.gz
解凍
ソースを解凍し、解凍したディレクトリに移動します
tar xvf nagiosgraph-1.5.2.tar.gz cd nagiosgraph-1.5.2
インストール
nagiosgraph をインストールします。いくつか質問項目がでてきますが、大概はデフォルトのままでいいと思います 当方、amazonlinuxの環境で、レイアウトは、redhatで行いました(あっているかどうかわからないけど。。)
# ./install.pl --layout redhat checking required PERL modules Carp...1.26 CGI...3.63 Data::Dumper...2.145 Digest::MD5...2.52 File::Basename...2.84 File::Find...1.20 MIME::Base64...3.13 POSIX...1.30 RRDs...1.4008 Time::HiRes...1.9725 checking optional PERL modules GD...2.49 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
確認事項
ほとんどが空ENTERかYで進めました。当方で入力した部分は、
Destination directory
くらいかな?。。あとは、y くらい、apcheや、nagiosのセットアップ環境は、まちまちだと思いますので、内容をよく確認してやったほうがベターだと思います
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
apacheの設定
nagiosgraphインストール時の指定により、以下のnagiosgraph.confが自動的に、/etc/httpd/conf.d内に生成されます。ここは、各自の環境に合わせて適宜設定を変更してください
# pwd /etc/httpd/conf.d # cat nagiosgraph.conf ------- ScriptAlias /nagiosgraph/cgi-bin "/usr/lib/nagiosgraph/cgi-bin" <Directory "/usr/lib/nagiosgraph/cgi-bin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/passwd Require valid-user </Directory> # enable nagiosgraph CSS and JavaScript Alias /nagiosgraph "/usr/share/nagiosgraph/htdocs" <Directory "/usr/share/nagiosgraph/htdocs"> Options None AllowOverride None # Order allow,deny # Allow from all require all granted </Directory>
nagiosgraphのテンプレート編集
インストールしただけだとグラフは表示されません。グラフのテンプレートをnagiosサーバに設定する必要があります。nagiosをyumでインストールした場合、おそらくテンプレートは以下に入っていると思います。 (もしかしたらインストール時にすでに入っているかもなんで、一応中身確認したほうがよさそう。。)
下記テンプレートを追記します
# cat << '_EOT_' >> /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 } _EOT_
グラフ化する監視を追加
nagis-serverの話になってしまいますが、おそらく、各ホストの設定は、 /etc/nagios/servers に入れているかと思います。 ここがすこし面倒なんのですが、グラフ化したい監視項目に上記で設定したテンプレートを適用する必要があります
以下、例ですが、当方が設定した例になります。
db.cfg
define service{ use generic-service,graphed-service ; Name of service template to use host_name db01 service_description USERS check_command check_nrpe!check_users max_check_attempts 3 ; knock out count normal_check_interval 3 retry_check_interval 5 notification_interval 5 register 1 contact_groups admins_stats } define service { host_name db01 service_description LOAD use generic-service,graphed-service check_command check_nrpe!check_load max_check_attempts 2 ; knock out count normal_check_interval 1 retry_check_interval 3 notification_interval 2 register 1 contact_groups admins_stats }
use句の中に、generic-service,graphed-serviceの2つを列挙しているものがあると思います。また、graphed-serviceを設定していないものも載せました。
httpdを再起動
/etc/init.d/httpd restart
nagiosの構文チェック、および再起動
# nagis -v /etc/nagios/nagios.conf # /etc/init.d/nagios restart
グラフが出ているか確認
さっそくグラフが表示できるか確認してみましょう。上記の設定で、グラフのテンプレートを設定したものは以下のようにグラフのアイコンが表示されていると思います
このグラフのアイコンをクリックすると表示されます。
補足:グラフが表示されない時は??
いざ動かしてみると・・ webブラウザにこんなエラーが出る時があります
JavaScript is disabled. nagiosgraph.js is not installed or wrong version.
- 設定を間違っている
- 旧バージョンが実は入っていた
ということほとんどだと思うのですが、このメッセージに翻弄され結構ハマったので 次回、はまらないようにメモしておきます。
javascriptが最新か調べる
javascriptが最新か?というか、nagiosgraph.jsが最新バージョンのものかってことですね。これは、Nagiosサーバが入っている、ディスクをfindで見つけてください。当方は案の定、旧バージョンが入っていました汗
# find / -name nagiosgraph.js /root/nagiosgraph-1.5.1/share/nagiosgraph.js /usr/local/src/nagiosgraph-1.5.2/share/nagiosgraph.js /usr/share/nagiosgraph/htdocs/nagiosgraph.js
ここで私は、以下のコマンドで、WEB上のディレクトリに上書きコピーしました。
# cp -a /usr/local/src/nagiosgraph-1.5.2/share/nagiosgraph.js /usr/share/nagiosgraph/htdocs # cp -a /usr/local/src/nagiosgraph-1.5.2/share/nagiosgraph.css /usr/share/nagiosgraph/htdocs
/etc/nagiosgraph/nagiosgraph.conf を確認
cgiとcssでキーワードを検索して、 http.conf もしくは、 nagiosgraph.conf で指定しているパスと一致しているか確認します。ちなみにですが、 ここで指定している設定は、Nagiosグラフに出力される時は、静的htmlなので、もし間違えたら、たぶん作り直しだと思います。
# cat /etc/nagiosgraph/nagiosgraph.conf | egrep "\.js|\.css" javascript = /nagiosgraph/nagiosgraph.js stylesheet = /nagiosgraph/nagiosgraph.css
httpd (/etc/httpd/conf.d/nagiosgraph.conf)を確認
apacheの設定は以下のようにしました。
ScriptAlias /nagiosgraph/cgi-bin "/usr/lib/nagiosgraph/cgi-bin" <Directory "/usr/lib/nagiosgraph/cgi-bin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/passwd Require valid-user </Directory> # enable nagiosgraph CSS and JavaScript Alias /nagiosgraph "/usr/share/nagiosgraph/htdocs" <Directory "/usr/share/nagiosgraph/htdocs"> Options None AllowOverride None # Order allow,deny # Allow from all require all granted </Directory>
もしくは、rrdを残念ながら一旦消して再起動
rrdディレクトリには、nagiosgraphのデータが入っておりますが、バージョン毎に微妙に形式が違うのか、旧バージョンの残骸が残っている場合、残念ながらエラーになります。ここの判断は、おのおのの環境で違うと思うのですが、私の場合はきれいさっぱり消しました。
cd /var/spool/nagiosgraph/rrd rm -rf *
apache,nagios の再起動
上記いずれかの変更を加えた場合は、あとで混乱しないように、再起動かけておきましょう
/etc/init.d/httpd restart /etc/init.d/nagios restart