你的位置:首页 > 操作系统

[操作系统]如何部署Icinga服务端


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的配置信息和监控数据等保存到数据库中。

一、安装依赖包

主要需安装以下几类包

ApacheGCC compilerC/C++ development librariesGD development librarieslibdbi/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

 

二、创建账户

# /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中文化项目的下载地址为: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。

 

四、安装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-smoothnessReview 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=mysqldb_port=3306db_user=icingadb_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 

输出如下:

Icinga 1.12.2Copyright (c) 2009-2015 Icinga Development Team (http://www.icinga.org)Copyright (c) 2009-2013 Nagios Core Development Team and Community ContributorsCopyright (c) 2009-2014 icinga-cn中文化组Copyright (c) 1999-2009 Ethan GalstadLast Modified: 02-14-2015License: 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总计错误:  0Things look okay - No serious problems were detected during the pre-flight check

启动Icinga服务

# service icinga start

设置开机自启动

# chkconfig ido2db on

# chkconfig icinga on

 

十一、登录WEB界面进行测试

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

登录用户名为:icingaadmin

登录密码为第六步通过htpasswd命令设置的密码。

 

总结:

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

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

 

参考:

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

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