Icinga是Nagios的一个变种,配置,使用方式几乎一样,而且完全兼容Nagios的插件。所以下面的部署方案对Nagios同样使用。
它还推出了两个中文版本,icinga-cn原版和icinga-pnp4nagios-cn,前者和Nagios几乎一模一样,只不过界面是中文的,而后者则集成了php4绘图功能,能以图形化的方式呈现系统的监控信息,类似于Cacti。
Icinga服务端一般是指其内核,它提供的只是一个框架,并不能监控具体的资源,譬如CPU,内存,进程等。对这些的监控是通过Icinga插件来实现的。
对远程Linux主机的监控一般有两种方式:
1. check_by_ssh插件
譬如我要查看远程Linux主机的磁盘空间的使用情况,
# /usr/local/icinga/libexec/check_by_ssh -H 192.168.244.134 -C 'df -h'
root@192.168.244.134's password: Filesystem Size Used Avail Use% Mounted on /dev/sda2 7.7G 5.8G 1.6G 79% / tmpfs 850M 0 850M 0% /dev/shm /dev/sda1 194M 27M 158M 15% /boot /dev/sda4 9.9G 7.2G 2.3G 77% /u01
该插件能够实现安全传输,使用SSH将会比NRPE插件更安全,而且,通过这种方式,远程被监控主机上不需要部署任何软件,但是这会导致远程主机和监控主机上的CPU负载过高。如果监控的主机比较多,这就会成为一个问题,因此,许多运维管理员选择NRPE插件,这样会使CPU负载降低。
2. NRPE插件
NRPE插件的原理是允许Icinga在远程主机上执行Nagios插件,这样就可监控远程主机上的本地资源,譬如CPU,内存,SWAP等不会暴露给外部机器的系统资源。
原理如下:
所以本方案实现的是Icinga内核+Nagios插件+NRPE插件。同时,本方案中使用了IDOUtils,这样,可将icinga的配置信息和监控数据等保存到数据库中。
一、安装依赖包
主要需安装以下几类包
Apache GCC compiler C/C++ development libraries GD development libraries libdbi/libdbi-drivers, database like MySQL or PostgreSQL
# yum install httpd gcc glibc glibc-common gd gd-devel
# yum install libjpeg libjpeg-devel libpng libpng-devel
安装MySQL及其开发包
# yum install mysql mysql-server libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql
二、创建账户
# /usr/sbin/useradd -m icinga
# passwd icinga
如果是要从WEB界面发送命令给Icinga,还需要多配置一个组,并将web用户和icinga用户加入到该组中。
# /usr/sbin/groupadd icinga-cmd
# /usr/sbin/usermod -a -G icinga-cmd icinga
# /usr/sbin/usermod -a -G icinga-cmd apache
三、下载Icinga及其插件包
Icinga中文化项目的下载地址为: ,在这里,下载icinga-cn目录下的icinga-cn-1.12.2.tar.xz。
Icinga plugins的下载地址为:%20plugins/,在这里,下载nagios-cn-plugins-2.0.3.tar.xz。
icinga nrpe的下载地址为:%20plugins/,在这里,下载icinga-nrpe-2.14.tar.gz。
四、安装Icinga内核
即icinga-cn-1.12.2.tar.xz。
# cd /usr/src/
# tar xvf /root/icinga-cn-1.12.2.tar.xz
# cd icinga-cn-1.12.2/
编译
# ./configure --with-command-group=icinga-cmd --enable-idoutils
编译没有问题,则输出如下:
Web Interface Options: ------------------------ HTML URL: http://localhost/icinga/ CGI URL: http://localhost/icinga/cgi-bin/ Main URL: http://localhost/icinga/cgi-bin/status.cgi?allunhandledproblems UI THEME: ui_theme=ui-smoothness Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs. !!! Please take care about the upgrade documentation !!!
# make all
# make fullinstall
# make install-config
五、创建MySQL数据及IDOUtils
# mysql -u root -p
mysql> CREATE DATABASE icinga; Query OK, 1 row affected (0.00 sec) mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga'; Query OK, 0 rows affected (0.00 sec) mysql> quit
# cd /usr/src/icinga-cn-1.12.2/module/idoutils/db/mysql/
# mysql -u root -p icinga < mysql.sql
修改IDOUtils的配置文件
# vim /usr/local/icinga/etc/ido2db.cfg
db_servertype=mysql db_port=3306 db_user=icinga db_pass=icinga
其实,默认就是这样。
六、配置经典的WEB界面
# cd /usr/src/icinga-cn-1.12.2/
# make cgis
# make install-cgis
# make install-html
# make install-webconf
设置Icinga WEB界面的登录用户和密码
# htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin
如果要修改密码,可通过以下命令
# htpasswd /usr/local/icinga/etc/htpasswd.users icingaadmin
重启Apache服务,使上述设置生效
# service httpd restart
七、编译和安装Icinga插件
# cd /usr/src/
# tar xvf /root/nagios-cn-plugins-2.0.3.tar.xz
# cd nagios-cn-plugins-2.0.3/
# ./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-nagios-user=icinga --with-nagios-group=icinga
# make
# make install
八、编译和安装NRPE插件
# cd /usr/src/
# tar xvf /root/icinga-nrpe-2.14.tar.gz
# cd icinga-nrpe-2.14/
# ./configure
# make
# make install
# make install-plugin
# make install-init
# make install-xinetd
# make install-daemon-config
其实make install-plugin,make install-init,make install-xinetd, make install-daemon-config也可以不执行,具体作用执行完make后有说明,建议都执行下。
九、调整SELinux策略
最简单的是直接关闭
临时关闭:# setenforce 0
永久关闭:# vim /etc/sysconfig/selinux
SELINUX=disabled
十、开启IDOUtils和Icinga服务
启动IDOUtils服务
# service ido2db start
验证Icinga的配置文件
# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg
输出如下: