nagiosインストール備忘録 - 2
使用するスキンとアイコン
ポップな感じのスキン nuvola と logo。VerdorLogosは色々なUNIXベンダーのロゴがあっていい感じ。
- nagios-nuvola(http://www.nagiosexchange.org/cgi-bin/page.cgi?g=Detailed%2F1723.html;d=1)
- centos image logo(http://www.nagiosexchange.org/cgi-bin/page.cgi?g=Detailed%2F1393.html;d=1)
- ubuntu image logo(http://www.nagiosexchange.org/cgi-bin/page.cgi?g=Detailed%2F1417.html;d=1)
- vendor logos(http://www.nagiosexchange.org/cgi-bin/page.cgi?g=Detailed%2F1401.html;d=1)
Nuvolaインストール
nuvola.tar.gzを 展開して $NAGIOSHOME/share/ 以下にコピーすればOK.
$ mkdir archive $ mv nagios-nuvola-1.0.3.tar.gz; cd archive $ gzip -cd nagios-nuvola-1.0.3.tar.gz | tar xvf - $ \cp -pr html/* /home/nagios/share/
画面のロゴのインストール
CentOSならCentOS、SolarisならSun、HP-UXならHPのロゴにしたいので、
好きなロゴをNagiosExchangeから適当にダウンロードして、$NAGIOSHOME/share/images/logos に展開。
$ gzip -cd logos-v1.1.tar.gz | tar xvf - $ gzip -cd imagepack-ubuntu.tar.gz | tar xvf - $ \cp -pr logos/* $NAGIOSHOME/share/images/logos/
nagiosのアイコン定義ファイル hostextinfo.cfg を作成
こういう定義をいちいち手で書いていくのは面倒。
define hostextinfo{ name www icon_image www.gif icon_image_alt www vrml_image www.gif statusmap_image www.gd2 register 0 }
シェルスクリプト作成。
#!/bin/bash imagedir=/home/nagios/share/images/logos #hostextinfor_cfg=/home/nagios/etc/objects/hostextinfo.cfg cd $imagedir for i in *gd2 do f_name=${i%.*} if [ -f $f_name.png ] then image=$f_name.png elif [ -f $f_name.gif ] then image=$f_name.gif elif [ -f $f_name.jpg ] then image=$f_name.jpg fi cat <<EOF define hostextinfo{ name $f_name icon_image $image icon_image_alt $f_name vrml_image $image statusmap_image $f_name.gd2 register 0 } EOF done
上記シェルスクリプトをfoo1.shとか適当に名前をつけて実行。
$ foo1.sh > /home/nagios/etc/objects/hostextinfo.cfg
OSごとのtemplateを設定。
同じテンプレートなんだけど、一応名前だけaliasっぽく別名にしておく。そうすることで、監視するホストのカテゴリがわかりやすくなる。
$ cat /home/nagios/etc/objects/templates.cfg define host{ name aix-server use linux-server } define host{ name hpux-server use linux-server } define host{ name solaris-server use linux-server } define host{ name suse-server use linux-server } define host{ name redhat-server use linux-server } define host{ name centos-server use linux-server }
ホストの一覧は、hosts.cfgにまとめておく。こんなかんじ。AIXはAIXのテンプレート、HP-UXはHP-UXのテンプレート
define host{ use aix-server host_name aix001 alias aix001 parents 192.168.1.1 hostgroups aix_servers } define host{ use hpux-server host_name hpux001 alias hpux001 parents 192.168.1.1 hostgroups hpux_servers }
すでに、ホスト一覧のcfgでOSのカテゴリをわけているので、
ホストに対してアイコンの設定を自動生成しやすくなる。
で、自動生成するrubyスクリプト。
#!/usr/bin/ruby flg = 0 nagios_server = "mynagios" h = {} hostconfig = [] f = open("hosts.cfg") f.each {|s| flg = 1 if s.split[0] =~ /^define/ && s.split[1] =~ /^host/ flg = 0 if s.strip == '}' h[s.split[0]] = s.split[1] unless s.split[0] =~ /^#.*/ if flg == 1 hostconfig << h.dup unless h.size == 0 if flg == 0 } hostconfig.each {|h| puts "define hostextinfo{" if h["host_name"] == nagios_server.chomp puts " use nagios" else case h["use"] when "aix-server" puts " use aix" when "hpux-server" puts " use hpux" when "solaris-server" puts " use sunlogo" when "linux-server" puts " use redhat" when "centos-server" puts " use centos" when "redhat-server" puts " use redhat" when "suse-server" puts " use novell40" when "windows-server" puts " use win40" when "generic-switch" puts " use router" else end end puts " host_name #{h["host_name"]}" puts "}" }
foo2.rbでも名前つけて、hostextinfo.cfgに追加
$ ruby foo2.rb >> /home/nagios/etc/objects/hostextinfo.cfg
とうぜん、/home/nagios/etc/nagios.cfgには上記のcfgは登録しておく必要がある。
cfg_file=/home/nagios/etc/objects/hosts.cfg cfg_file=/home/nagios/etc/objects/hostextinfo.cfg
全部終わったら、cfgチェックして、nagiosを再起動。
$ sudo /home/nagios/bin/nagios -v /home/nagios/etc/nagios.cfg $ sudo /etc/init.d/nagios restart