如何部署Icinga服务端

来源:互联网 发布:光头大大捏脸数据网盘 编辑:程序博客网 时间:2024/06/06 16:34
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

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

 

参考:

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

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

0 0