search
LoginSignup
4

More than 5 years have passed since last update.

posted at

updated at

Icinga 1をインストール

Icingaとは

Icinga(アイシンガ)はNagiosからforkしたモニタリングシステム。

バージョンの違い

Icinga 1

  • Nagiosの設定ファイル、プラグイン、アドオンと互換性がある
  • Nagios時代の数多くのBugfixや機能が追加されている

Icinga 2

  • コアから作り替えられており、Icinga 1およびNagiosとは互換性がない

今回はNagiosとの互換性がある、Icinga 1をインストールします。

Icinga Classicのインストール

UIがNagiosに近いIcinga Classicをインストールします。

依存パッケージのインストール

$ sudo yum install gcc httpd glibc glibc-common gd

MySQL Serverを使うので入れます。
別途MySQLサーバがある場合は、mysql clientでも良いです。

$ sudo yum install mysql-server

Icingaのリポジトリ追加

Icingaのリポジトリを追加してパッケージをインストールします。

$ cd /etc/yum.repos.d/
$ sudo wget http://packages.icinga.org/epel/ICINGA-release.repo

Icingaパッケージをインストールします。

$ sudo yum install icinga icinga-gui icinga-idoutils icinga-idoutils-libdbi-mysql nagios-plugins nagios-plugins-mysql

nrpe, nagiosプラグインが使えるので、併せてインストールします。

$ sudo yum install nrpe nagios-plugins-nrpe
$ sudo yum install nagios-plugins-all

設定

MySQL

/etc/my.cnf
# 以下を追加
[mysqld]
character-set-server = utf8

[client]
default-character-set = utf8
$ sudo chkconfig mysqld --add
$ sudo chkconfig mysqld on
$ sudo service mysqld start
$ /usr/bin/mysqladmin -u root password 'new-password'

$ echo "CREATE DATABASE icinga; \
GRANT USAGE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0; \
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost'; \
FLUSH PRIVILEGES;" | mysql -u root -p -h localhost

$ mysql -u root -p -h localhost icinga < /usr/share/doc/icinga-idoutils-libdbi-mysql-*/db/mysql/mysql.sql

Icinga

$ sudo sed -i'' 's/^ *enable_environment_macros *=.*/enable_environment_macros=1/' /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *date_format *=.*/date_format=iso8601/' /etc/icinga/icinga.cfg

正しく設定されたかの確認をします。

$ sudo icinga -v /etc/icinga/icinga.cfg
Total Warnings: 0
Total Errors:   0

と表示されていればOK。

$ sudo chkconfig httpd --add
$ sudo chkconfig httpd on
$ sudo chkconfig icinga --add
$ sudo chkconfig icinga on
$ sudo chkconfig ido2db --add
$ sudo chkconfig ido2db on
$ sudo service httpd start
$ sudo service icinga start
$ sudo service ido2db start

ブラウザから確認して次のような画面が表示されればOKです。

http://[Domain]/icinga/
ID: icingaadmin PW: icingaadmin

icinga_top.png

nagiosと似ていますが、見やすくなっていると思います。

pnp4nagiosのインストール

取得したパフォーマンスデータをグラフ表示させてみます。

pnp4nagiosはソースからインストールします。

# 依存パッケージ
$ sudo yum install php php-gd rrdtool rrdtool-perl perl-Time-HiRes

$ cd /usr/local/src
$ sudo wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
$ sudo tar zxvf pnp4nagios-0.6.25.tar.gz
$ cd pnp4nagios-0.6.25
$ sudo ./configure --with-nagios-user=icinga --with-nagios-group=icinga
$ sudo make all
$ sudo make fullinstall

設定

Apache

Basic認証設定をするか、生成された/etc/httpd/conf.d/pnp4nagios.confの設定を弄ってください。

$ sudo mkdir -p /usr/local/nagios/etc
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users icingaadmin
New password: icingaadmin
Re-type new password: icingaadmin

PHP

タイムゾーンが設定されていなければ設定します。

$ sudo sed -i'' "s|^[ ;]*date.timezone *=.*|date.timezone='Asia/Tokyo'|" /etc/php.ini

pnp4nagios

Nagios用の設定になっているのでIcinga用に変更します。

/usr/local/pnp4nagios/etc/config_local.php
- $conf['nagios_base'] = "/nagios/cgi-bin";
+ $conf['nagios_base'] = "/icinga/cgi-bin";

- $conf['date_fmt'] = "d.m.y G:i";
+ $conf['date_fmt'] = "Y.m.d G:i";  // 日付形式をYYYY.MM.DDにする
/usr/local/pnp4nagios/etc/config.php
- $conf['nagios_base'] = "/nagios/cgi-bin";
+ $conf['nagios_base'] = "/icinga/cgi-bin";

- $conf['date_fmt'] = "d.m.y G:i";
+ $conf['date_fmt'] = "Y.m.d G:i";  // 日付形式をYYYY.MM.DDにする
$ cd /usr/local/pnp4nagios/etc/
$ sudo mv rra.cfg-sample rra.cfg
$ sudo mv nagios.cfg-sample icinga.cfg
$ sudo mv misccommands.cfg-sample misccommands.cfg

$ sudo sed -i'' 's/^ *user *=.*/user = icinga/' /usr/local/pnp4nagios/etc/npcd.cfg
$ sudo sed -i'' 's/^ *group *=.*/group = icinga/' /usr/local/pnp4nagios/etc/npcd.cfg
$ sudo sed -i'' 's/^ *log_type *=.*/log_type = file/' /usr/local/pnp4nagios/etc/npcd.cfg
$ sudo sed -i'' 's/^ *load_threshold *=.*/load_threshold = 10.0/' /usr/local/pnp4nagios/etc/npcd.cfg
$ sudo sed -i'' 's|^ *log_file *=.*|log_file = /var/log/pnp4nagios/npcd.log|' /usr/local/pnp4nagios/etc/npcd.cfg
/usr/local/pnp4nagios/etc/misccommands.cfg
# コメント外す
#
# Bulk with NPCD mode
#
define command {
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command {
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
$ sudo sed -i'' 's|^ *LOG_FILE *=.*|LOG_FILE = /var/log/icinga/perfdata.log|' /usr/local/pnp4nagios/etc/process_perfdata.cfg

設定が完了したらIcingaとApacheを再起動します。

$ sudo service icinga restart
$ sudo service httpd restart

正しく設定されたか確認します。

http://[domain]/pnp4nagios/

ID: nagiosadmin PW: nagiosadmin

正しく設定されている場合はすべてグリーンOKになるので、index.phpを削除してください。

$ sudo rm /usr/local/pnp4nagios/share/install.php

Icingaとの連携

pnp4nagiosとIcingaを連携してIcingaからグラフ表示できるようにします。
今回は、Bulk with NPCD モードでの設定を紹介します。
※最もパフォーマンスが良い。

$ sudo sed -i'' 's/^ *process_performance_data *=.*/process_performance_data=1/' /etc/icinga/icinga.cfg
$ sudo sed -i'' "s|^ *# *host_perfdata_file *=.*|host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata|" /etc/icinga/icinga.cfg
$ sudo sed -i'' "s|^ *# *service_perfdata_file *=.*|service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata|" /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *# *host_perfdata_file_mode *=.*/host_perfdata_file_mode=a/' /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *# *service_perfdata_file_mode *=.*/service_perfdata_file_mode=a/' /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *# *host_perfdata_file_processing_interval *=.*/host_perfdata_file_processing_interval=30/' /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *# *service_perfdata_file_processing_interval *=.*/service_perfdata_file_processing_interval=30/' /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *# *host_perfdata_file_processing_command *=.*/host_perfdata_file_processing_command=process-host-perfdata-file/' /etc/icinga/icinga.cfg
$ sudo sed -i'' 's/^ *# *service_perfdata_file_processing_command *=.*/service_perfdata_file_processing_command=process-service-perfdata-file/' /etc/icinga/icinga.cfg
/etc/icinga/icinga.cfg
- #host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$
- #service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$

+ host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
+ service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
/etc/icinga/objects/commands.cfg
# コメントアウト
# 'process-host-perfdata' command definition
#define command{
#       command_name    process-host-perfdata
#       command_line    /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /var/spool/icinga/host-perfdata.out
#       }


# 'process-service-perfdata' command definition
#define command{
#       command_name    process-service-perfdata
#       command_line    /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /var/spool/icinga/service-perfdata.out
#       }

# 以下、追加
define command {
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command {
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
/etc/icinga/objects/templates.cfg
define host{
        name                            generic-host
        ...(省略)...
        register                        0
        action_url                      /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_  ; 追加

...(省略)...

define service{
        name                            generic-service
        ...
        register                        0
        action_url                      /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$  ; 追加

npcd

$ sudo sed -i'' 's|^ *config=.*|config="/usr/local/pnp4nagios/etc/npcd.cfg"|' /etc/init.d/npcd
$ sudo chown -R icinga:icinga /var/log/pnp4nagios
$ sudo chkconfig npcd --add
$ sudo chkconfig npcd on
$ sudo service npcd start
$ sudo service icinga restart
$ sudo service httpd restart

確認

$ ls /usr/local/pnp4nagios/var/host-perfdata
/usr/local/pnp4nagios/var/host-perfdata
$ ls /usr/local/pnp4nagios/var/service-perfdata
/usr/local/pnp4nagios/var/service-perfdata
# タイミングによってはファイルがない場合もある
$ ls /usr/local/pnp4nagios/var/spool/
host-perfdata.1424428761  perfdata.1424428761  service-perfdata.1424428761

http://[Domain]/icinga/ にアクセスして下図のように歯車が表示されるので、クリックするとグラフ表示されるはずです。
画像表示されるまでに多少時間がかかります。

icinga_pnp4nagios_1.png

icinga_pnp4nagios_2.png

画像表示されなかったらログを確認して設定を見直してください。

$ tail -f /var/log/icinga/perfdata.log

Icinga-webのインストール

Icinga ClassicよりもリッチなUIであるIcinga-webをインストールします。

Icingaリポジトリがあるのでyumでインストールできます。

$ sudo yum install icinga-web icinga-web-mysql icinga-web-module-pnp

設定

MySQL

$ echo "CREATE DATABASE icinga_web; \
GRANT USAGE ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0; \
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE, CREATE VIEW, INDEX, EXECUTE ON icinga_web.* TO 'icinga_web'@'localhost'; \
FLUSH PRIVILEGES;" | mysql -u root -p -h localhost
$ mysql -u root -p -h localhost icinga_web < /usr/share/doc/icinga-web-*/schema/mysql.sql
$ sudo service httpd restart
$ sudo service icinga restart

確認

http://[Domain]/icinga-web/

ID: root PW: password

icinga-web.png

UIがリッチになったが表示が重かったり、少々使いづらいです。

補足

icinga-webをyumでインストールした場合、pnp4nagiosも依存関係でインストールされます。
そのため、先にソースでインストールしたpnp4nagiosの設定が上書きされることがあります。
変更された箇所をもう一度修正する必要があり、下記のコマンドをもう一度実行します。

$ sudo sed -i'' 's|^ *config=.*|config="/usr/local/pnp4nagios/etc/npcd.cfg"|' /etc/init.d/npcd
$ sudo chown -R icinga:icinga /var/log/pnp4nagios
$ sudo service npcd restart

補足2

Icinga-webでエラーが出たので対応方法を投稿しました。
http://qiita.com/shu1/items/33951764f1edfde7a5ec

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4