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等不会暴露给外部机器的系统资源。
原理如下:
images/loading.gif' data-original="http://images2015.cnblogs.com/blog/576154/201601/576154-20160113113813397-650714192.png" />
所以本方案实现的是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监控服务器》
原标题:如何部署Icinga服务端
关键词: