如何部署Icinga服务端

Icinga是Nagios的一个变种,配置,使用方式几乎同样,并且彻底兼容Nagios的插件。因此下面的部署方案对Nagios一样使用。php

它还推出了两个中文版本,icinga-cn原版和icinga-pnp4nagios-cn,前者和Nagios几乎如出一辙,只不过界面是中文的,然后者则集成了php4绘图功能,能以图形化的方式呈现系统的监控信息,相似于Cacti。html

Icinga服务端通常是指其内核,它提供的只是一个框架,并不能监控具体的资源,譬如CPU,内存,进程等。对这些的监控是经过Icinga插件来实现的。mysql

对远程Linux主机的监控通常有两种方式:linux

1. check_by_ssh插件ios

譬如我要查看远程Linux主机的磁盘空间的使用状况,web

# /usr/local/icinga/libexec/check_by_ssh -H 192.168.244.134 -C 'df -h'sql

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插件apache

NRPE插件的原理是容许Icinga在远程主机上执行Nagios插件,这样就可监控远程主机上的本地资源,譬如CPU,内存,SWAP等不会暴露给外部机器的系统资源。vim

原理以下:

因此本方案实现的是Icinga内核+Nagios插件+NRPE插件。同时,本方案中使用了IDOUtils,这样,可将icinga的配置信息和监控数据等保存到数据库中。

1、安装依赖包

主要需安装如下几类包

Apache
GCC compiler
C/C++ development libraries
GD development libraries
libdbi/libdbi-drivers, database like MySQL or PostgreSQL

Fedora/RHEL/CentOS系统中,具体以下:

# 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

 

2、建立帐户

# /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

 

3、下载Icinga及其插件包

Icinga中文化项目的下载地址为:http://sourceforge.net/projects/icinga-cn/files/ ,在这里,下载icinga-cn目录下的icinga-cn-1.12.2.tar.xz。

Icinga plugins的下载地址为:http://sourceforge.net/projects/icinga-cn/files/icinga%20plugins/,在这里,下载nagios-cn-plugins-2.0.3.tar.xz。

icinga nrpe的下载地址为:http://sourceforge.net/projects/icinga-cn/files/icinga%20plugins/,在这里,下载icinga-nrpe-2.14.tar.gz。

 

4、安装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

 

5、建立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

其实,默认就是这样。

 

6、配置经典的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

 

7、编译和安装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

 

8、编译和安装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后有说明,建议都执行下。

 

9、调整SELinux策略

最简单的是直接关闭

临时关闭:# setenforce 0

永久关闭:# vim /etc/sysconfig/selinux 

SELINUX=disabled

 

10、开启IDOUtils和Icinga服务

启动IDOUtils服务

# service ido2db start

验证Icinga的配置文件

# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg 

输出以下:

Icinga 1.12.2
Copyright (c) 2009-2015 Icinga Development Team (http://www.icinga.org)
Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
Copyright (c) 2009-2014 icinga-cn中文化组
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 02-14-2015
License: GPL

读取配置数据...
警报: 未知 'event_profiling_enabled' 配置设置. 将其从配置中移除!
   Read main config file okay...
Processing object config directory '/usr/local/icinga/etc/conf.d'...
Processing object config file '/usr/local/icinga/etc/objects/commands.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/contacts.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/notifications.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/timeperiods.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/templates.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/localhost.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/linux.cfg'...
Processing object config directory '/usr/local/icinga/etc/modules'...
Processing object config file '/usr/local/icinga/etc/modules/idoutils.cfg'...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking services...
    已检查17服务.
检查主机...
    已检查2主机.
检查主机组...
    已检查2主机组.
检查服务组...
    已检查2服务组.
检查联系人...
    已检查1联系人.
检查联系人组...
    已检查1联系人组.
检查服务升级...
    已检查0服务升级.
检查服务依赖关系...
    已检查0服务依赖关系.
检查主机升级...
    已检查0主机升级.
检查主机依赖关系...
    已检查0主机依赖关系.
检查命令...
    已检查36命令.
检查时间段...
    已检查6时间段.
检查模块...
    已检查1模块.
检查主机之间的回路...
检查回路主机和服务的依赖性...
检查全局事件处理...
检查强迫性处理命令...
检查杂项设置...

总计警报s: 0
总计错误:   0

Things look okay - No serious problems were detected during the pre-flight check

启动Icinga服务

# service icinga start

设置开机自启动

# chkconfig ido2db on

# chkconfig icinga on

 

11、登陆WEB界面进行测试

登陆地址:http://192.168.244.145/icinga/

登陆用户名为:icingaadmin

登陆密码为第六步经过htpasswd命令设置的密码。

 

总结:

1. 在上述方案中,IDOUtils和NRPE并非必需的,若是只需搭建一个简单的Icinga服务端,只须要Icinga内核和Nagios插件。具体可参考:

http://docs.icinga.org/latest/en/quickstart-icinga.html

2. 官方的部署文档在MySQL中建立icinga数据库时,没有指定字符集,而默认的字符集为latin1,这会致使中文的输出结果为乱码,因此,需显性执行数据库的默认字符集。

 

参考:

1. http://docs.icinga.org/latest/en/quickstart-idoutils.html

2. 《掌控-构建Linux系统Nagios监控服务器》

相关文章
相关标签/搜索