共计 5717 个字符,预计需要花费 15 分钟才能阅读完成。
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
在 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-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
输出如下:
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
十一、登录 WEB 界面进行测试
登录地址:http://192.168.244.145/icinga/
登录用户名为:icingaadmin
登录密码为第六步通过 htpasswd 命令设置的密码。
总结:
1. 在上述方案中,IDOUtils 和 NRPE 并不是必需的,如果只需搭建一个简单的 Icinga 服务端,只需要 Icinga 内核和 Nagios 插件。具体可参考:
http://docs.icinga.org/latest/en/quickstart-icinga.html
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127380.htm