Icinga快速安装与配置
- 1.1. 绪论
- 1.2. 前提条件
- 1.3. 安装软件包
- 1.4. 创建帐户信息
- 1.5. 编译和安装Icinga(包括IDOUtils)
- 1.5.1. 编译和安装
- 1.6. 定制配置
- 1.6.1. 启用idomod event broker 模块
- 1.7. 数据库创建和IDOUtils
- 1.8. 配置经典的Web界面
- 1.9. 编译和安装Icing插件
- 2.0. 调整SELinux的设置
- 2.1. 启动IDOUtils和Icinga
- 2.1.1. 配置Icinga开机启动
- 2.1.2. 登录到经典的Web界面
- 2.2. 其它修改
- 2.3. 客户端主机的配置
- 2.3.1 客户端编译和安装Icinga插件
- 2.3.2 客户端编译和安装Nrpe
- 2.3.2 配置客户端Nrpe
说明 | |
---|---|
如果没有安装Icinga,你可使用适用于您的操作系统的软件包. 如果你打算从源代码安装,那么请使用官方发布的压缩包. |
提示 | |
---|---|
除非你有问题,需要通过目前的开发版本来解决,否则请不要使用git快照. |
本指南旨在为您提供简单的如何从源(代码)安装Icinga的说明,并在20分钟内监控您的本地计算机.
这里不会对进阶安装选项进行讨论 - 只需基本操作大多数的用户就可以开始使用.
目前提供三种不同的Linux发行版的例子: Fedora, Ubuntu 和 openSuSE. 类似发行版也可以正常使用. 这应该包括 RedHat, CentOS, Debian 和 SLES.
最终您会得到结果是什么
如果您按照这些说明操作,最终结果:
Icinga和插件将安装到 /usr/local/icinga
配置Icinga监视您本地系统的几个方面 (CPU负载, disk使用率, 例如.)
Icinga经典web界面可以通过http://localhost/icinga/ 或 http://yourdomain.com/icinga访问
Icinga使用IDOUtils加载数据库
部分安装过程中,你需要具有root权限.
再继续安装之前,请确保你已经安装以下软件包. 如果安装IDOUtils,需要使用libdb和libdbi-drivers的开发库. 下面的例子将显示如何安装icinga和IDOUtils.
Apache或Nginx
GCC 编译器
C/C++ 开发库
GD 开发库
libdbi/libdbi-drivers, 如MySQL或PostgreSQL数据库(如果不安装IDOUtils请跳过此部分)
说明 PostgreSQL: 由于INSERT语句的变化 PostgreSQL 8.1 无法再运作(2010年11月以来已经 结束产品生命期), 所以请使用8.2或高于8.4的版本. 字符串转义在PostgreSQL 9.x处于实验阶段(请参阅 issue #1974).
1.3.1 您可以运行以下命令(以root或使用sudo)安装这些软件包.
备注 | |
---|---|
如果没有发现相应软件包,请使用您的包管理器的搜索选项来获得新的不同版本之间的变化名称:
|
-
#> yum install httpd gcc glibc glibc-common gd gd-devel #> yum install libjpeg libjpeg-devel libpng libpng-devel
备注 您可能需要使用到libjpeg-turbo和libjpeg-turbo-devel代替
MySQL:
#> yum install mysql mysql-server \ libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql
PostgreSQL:
#> yum install postgresql postgresql-server \ libdbi libdbi-devel libdbi-drivers libdbi-dbd-pgsql
-
#> apt-get install apache2 build-essential libgd2-xpm-dev #> apt-get install libjpeg62 libjpeg62-dev libpng12 libpng12-dev
备注 Debian 6.0 / Ubuntu 10.10开始使用libpng-12-0包, dev-package名称不变.
MySQL:
#> apt-get install mysql-server mysql-client libdbi1 libdbi-dev libdbd-mysql
PostgreSQL:
#> apt-get install postgresql libdbi0 libdbi0-dev libdbd-pgsql
-
请使用YaST安装包 gd, gd-devel, libjpeg, libjpeg-devel, libpng, libpng-devel 和, optionally, net-snmp, net-snmp-devel 和 perl-Net-SNMP.
使用zypper:
#> zypper install gd gd-devel libjpeg libjpeg-devel libpng libpng-devel #> zypper install net-snmp net-snmp-devel perl-Net-SNMP
备注 开发包可能位于SDK DVDs.
MySQL:
使用YaST安装RDBMS包,你要使用,例如. "mysql", "mysql-devel", "mysql-client" 和 libdbi 包s "libdbi", "libdbi-devel", "libdbi-drivers" 和 "libdbi-dbd-mysql", 或 alternatively
zypper
.#> zypper install mysql mysql-devel mysql-client \ libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql
备注 在OpenSuSE 11 (SLES 11)中 "mysql-devel" 已更改为 "libmysqlclient-devel".
PostgreSQL:
使用YaST安装RDBMS包,你要使用, 例如. "postgresql", "postgresql-devel", "postgresql-server" 和libdbi包 "libdbi", "libdbi-devel" and "libdbi-drivers", 或 alternatively
zypper
.#> zypper install postgresql postgresql-devel postgresql-server #> zypper install libdbi libdbi-devel libdbi-drivers
备注 使用旧的OpenSuSE (SLES)版本,包括版本10目前可能还没有任何libdbi包. 所以你必须下载并编译源代码. 您可以使用如mysql或pgsql代替所需的
. 请记住,Oracle驱动程序还无法工作和请使用ocilib代替libdbi. 1.3.2 使用源码安装
首先需要确认gd是否支持TTC,如果不支持请重新编译gd
编译GD(freetype+libjpeg+libpng+fontconfig)
#> tar zxvf libiconv-1.14.1.tar.gz #> cd libiconv-1.14.1 #>./configure --prefix=/usr/local/libiconv #> make #> make install #> /sbin/ldconfig
#> tar xvzf gd-2.0.35.tar.gz #> cd gd-2.0.35 #> ./configure --prefix=/usr/local/gd2 --with-libiconv-prefix=/usr/local/libiconv #> make #> make install
安装libdbi. 你还可以指定额外的配置选项(例如 --prefix=/usr ... )
#> cd libdbi-0.8.3 #> ./configure --disable-docs #> make #> make install
安装libdbi-drivers
#> cd libdbi-drivers-0.8.3-1 #> ./configure --with-<rdbm> --disable-docs #> make #> make install
备注 在64-bit版本上使用,你必须指定include-和lib-dir的路径:
#> ./configure --with-<rdbm> \ --with-<rdbm>-incdir=/usr/include/<rdbm>/ \ --with-<rdbm>-libdir=/usr/lib64/ --disable-docs
$> su -l
创建一个新的Icinga帐户,并设置一个密码.
#> /usr/sbin/useradd -m icinga #> passwd icinga
在某些发行版本 你需要在这一个步骤中添加组:
#> /usr/sbin/groupadd icinga
#> /usr/sbin/usermod -a -G icinga www-data
(或 www, wwwrun, apache取决于发行版本)
提取Icinga源代码tarball
#> tar jxvf icinga-cn-1.11.5.tar.gz #> cd icinga-cn-1.11.5 #> ./configure --prefix=/usr/local/icinga --with-icinga-user=icinga -with-icinga-group=icinga \ --with-command-user=icinga --with-command-group=icinga --with-mail=/usr/bin/mutt \ --with-gd-lib=/usr/local/gd2/lib --with-gd-inc=/usr/local/gd2/include --enable-nanosleep --enable-event-broker
备注 | |
---|---|
--enable-idoutils #数据库支持(默认) --enable-embedded-perl #启用嵌入式Perl解释器 --enable-ssl #使本地的SSL支持 --with-mail #设置邮件通知使用的程序,默认为Mutt. --enable-oraclel #启用oraclel支持. |
此外,如果您要使用PostgreSQL将不宜使用参数--enable-pgsq, 因为它目前还不被支持.
备注 | |
---|---|
如果您想从Oracle作为MRDB, 您需要重新编译和安装IDOUtils! Oracle使用IDOUtils1.5.0至少需要OCILIB3.9.2 - 不要安装3.9.0或3.9.1,因为它们仍然有bug。 |
#> make distclean #> ./configure --prefix=/usr/local/icinga --with-icinga-user=icinga -with-icinga-group=icinga \ --with-command-user=icinga --with-command-group=icinga --enable-idoutils \ --with-httpd-conf=/etc/httpd/conf.d --enable-nanosleep --enable-event-broker
#> make all
安装二进制文件, 初始化脚本, 配置文件样本, 一些事件处理函数, 和设置外部命令目录的权限.
#> make install #> make install-init #> make install-config #> make install-eventhandlers #> make install-commandmode #> make install-idoutils
或使用
#> make fullinstall #> make install-config
备注 | |
---|---|
从Icinga 1.5.0开始 只要使用 "make install" 就可以安装IDOUtil和适用的event broker模块. ldd ido2db查看加载模块 libdbi.so.1 => /lib64/libdbi.so.1 libdbi.so.1默认的路径是/lib64或/lib |
不要启动Icinga- 还有更多的事情需要做...
使用 "make install-config" 安装简单配置文件到 /usr/local/icinga/etc/
#> cd /usr/local/icinga/etc/ #> vi idomod.cfg #> vi ido2db.cfg
如果启用 --enable-ssl, 您需要更改 idomod.cfg文件:
use_ssl=1 output_type=tcpsocket output=127.0.0.1
如果您的数据库没有位于本机,您需要更改ido2db.cfg:
use_ssl=1 socket_type=tcp
备注 | |
---|---|
如果在ido2db上启用SSL, 但对于不同的idomod客户端 - 将会出现数据丢失现象 - 需要在所有的节点上做相同的SSL配置!!! |
提示 | |
---|---|
在正常情况下,下面的模块定义已经存在于 define module{ module_name idomod module_type neb path /usr/local/icinga/lib/idomod.so args config_file=/usr/local/icinga/etc/idomod.cfg } 所以没有必要编辑主配置文件启用broker_module条目! #> mv idoutils.cfg-sample idoutils.cfg |
备注 | |
---|---|
如果刚安装了一个新的数据库系统,在您创建新数据库之前,你必须启动数据库服务. 如 MySQL可能使用 |
MySQL:
创建数据库,用户, 授权:
#> mysql -u root -p mysql> CREATE DATABASE icinga; GRANT USAGE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0; GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost'; FLUSH PRIVILEGES; quit
备注 从Icinga 1.8 开始icinga用户另外需要EXECUTE权限.
向MySQL导入数据库架构:
#> cd /path/to/icinga-src/module/idoutils/db/mysql #> mysql -u root -p icinga < mysql.sql
升级MySQL数据库:
#> cd /path/to/icinga-src/module/idoutils/db/mysql/upgrade #> mysql -u root -p icinga < mysql-upgrade-x.sql
编辑DB配置文件自定义IDOUtils
#> vi /usr/local/icinga/etc/ido2db.cfg
db_servertype=mysql db_port=3306 db_user=icinga db_pass=icinga
PostgreSQL:
创建数据库和用户:
#> su - postgres $ psql postgres=# CREATE USER icinga; postgres=# ALTER USER icinga WITH PASSWORD 'icinga'; postgres=# CREATE DATABASE icinga; postgres=# \q $ createlang plpgsql icinga;
从PostgreSQL 9.1开始 "createlang ..."已经过时.
Debian:
#> vi /etc/postgresql/8.x/main/pg_hba.conf
Fedora/RHEL/CentOS:
#> vi /var/lib/pgsql/data/pg_hba.conf
编辑配置文件 例如. 这样 (本地用户必须信任)
# database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD #icinga local icinga icinga trust # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections host all all 127.0.0.1/32 md5 # IPV6 local connections host all all ::1/128 md5
重新载入和配置数据库架构.
#> /etc/init.d/postgresql-8.x reload
#> cd /path/to/icinga-src/module/idoutils/db/pgsql #> psql -U icinga -d icinga < pgsql.sql
升级PostgreSQL数据库.
#> cd /path/to/icinga-src/module/idoutils/db/pgsql/upgrade #> psql -U icinga -d icinga < pgsql-upgrade-x.sql
编辑DB配置文件自定义IDOUtils
#> vi /usr/local/icinga/etc/ido2db.cfg
db_servertype=pgsql db_port=5432 db_user=icinga db_pass=icinga
Oracle:
创建一个数据库结构描述和用户名/密码 (请参阅Oracle文档 http://www.oracle.com ,或咨询您的DBA). 使用sqlplus导入数据库结构描述 (或 您的首选方法). 复制
module/idoutils/db/oracle/*
到 $ORACLE_HOME 和编辑icinga_defines.sql
以匹配表空间和用户认证信息.#> su - oracle $> sqlplus dbuser/dbpass SQL> @oracle.sql
编辑DB配置文件自定义IDOUtils. 请记住Oracle忽略的db主机, 代替指向 db_name 到 //DBSERVER/DBNAME
#> vi /usr/local/icinga/etc/ido2db.cfg
db_servertype=oracle db_port=1521 db_user=icinga db_pass=icinga
安装Icinga附带的经典web界面("CGIs")
#> make cgis #> make install-cgis #> make install-html
安装经典web配置文件到Apache的conf.d目录下.
#> make install-webconf
创建 icingaadmin 账户,登录到Icinga经典web界面. 记住您分配给这个帐户的密码 -稍后你会需要它.
#> htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin
如果你想改变用户密码,或添加另一个用户,请使用以下命令:
#> htpasswd /usr/local/icinga/etc/htpasswd.users <USERNAME>
备注 | |
---|---|
这取决于您的发行版本和Apache版本,您还可能使用到 htpasswd2 代替. |
重新载入/重新启动Apache使新的设置生效.
Fedora/RHEL/CentOS:
#> service httpd restart
Ubuntu/openSuSE:
#> service apache2 restart
Debian:
#> /etc/init.d/apache2 reload
#> tar -jxvf nagios-cn-plugins-1.5.tar.bz2 #> cd nagios-cn-plugins-1.5
编译并安装插件安装到目录/usr/local/icinga
#> ./configure --prefix=/usr/local/icinga \ --with-package-name=icinga-plugins \ --with-icinga-user=icinga --with-icinga-group=icinga #> make #> make install
备注 | |
---|---|
#查看播件文件是否已安装在这个目录 ls /usr/local/icinga/libexec |
#> tar -zxvf nrpe-2.14.tar.gz #> cd nrpe-2.14 #> ./configure --prefix=/usr/local/icinga --enable-ssl #> make all #> make install-plugin
RHEL和衍生版本(如Fedora和CentOS) 出厂时激活了SELinux(Security Enhanced Linux) 并运行在"enforcing"模式. 当你尝试调用Icinga-CGIs时,可能导致 "内部服务器错误" 消息.
检查SELinux是否运行在enforcing模式
#> getenforce
设置SELinux处于"permissive"模式
#> setenforce 0
如果要永久更改,你必须调整/etc/selinux/config中的该设置并重新启动系统.
如果不停用SELinux或将它设置成permissive模式,您可以在enforcing/targeted模式下,使用下面的命令来运行CGIs:
#> chcon -R -t httpd_sys_script_exec_t /usr/local/icinga/sbin/ #> chcon -R -t httpd_sys_content_t /usr/local/icinga/share/ #> chcon -R -t httpd_sys_script_rw_t /usr/local/icinga/var/rw/
此外你也可以看看这个 http://www.linuxquestions.org/questions/blog/sag47-492023/selinux-and-icinga-34926/.
在启动Icinga之前必须先启动和运行IDOUtils.
启动 IDOUtils:
Fedora/RHEL/CentOS/Ubuntu/openSuSE:
#> service ido2db start
Debian:
#> /etc/init.d/ido2db start
停止 IDOUtils:
Fedora/RHEL/CentOS/Ubuntu/openSuSE:
#> service ido2db stop
Debian:
#> /etc/init.d/ido2db stop
验证Icinga的配置文件样本.
#> /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg
一切正常将显示OK信息。如何有任何错误将会显示相应错误出现的未知. 启动 Icinga.
Fedora/RHEL/CentOS/Ubuntu/openSuSE:
#> service icinga start
Debian:
#> /etc/init.d/icinga start
添加Icinga到服务列表和在系统启动时自动启动 (在次之前确保您已经安装了init脚本).
Fedora/RHEL/CentOS/openSuSE:
#> chkconfig --add icinga chkconfig icinga on
Debian/Ubuntu:
#> update-rc.d icinga defaults
通过下面的网址,您现在应该能够访问到Icinga的经典Web界面. 系统将提示您先前指定的用户名 (例如. icingaadmin ) 和密码.
http://localhost/icinga/
或
http://yourdomain.com/icinga/
请确保您的系统的防火墙规则配置为允许访问到Web服务器,如果您要远程访问的Icinga的经典Web界面.
#> iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
添加用户(普通账户)icinga
#> /usr/sbin/useradd icinga #> passwd icinga
#> tar jxvf nagios-cn-plugins-1.5.tar.bz2 #> cd nagios-cn-plugins-1.5 #> ./configure -prefix=/usr/local/icinga \ --with-package-name=icinga-plugins \ --with-nagios-user=icinga --with-nagios-group=icinga #> make #> make install
备注 | |
---|---|
#查看播件文件是否已安装在这个目录 ls /usr/local/icinga/libexec |
#> tar xvzf icinga-nrpe-2.14.tar.gz #> cd icinga-nrpe-2.14 #> ./configure --prefix=/usr/local/icinga --with-nrpe-user=icinga --with-nrpe-group=icinga \ --with-icinga-user=icinga --with-icinga-group=icinga #> make all #> make install #> make install-plugin #> make install-daemon #> make install-daemon-config #> make install-init
添加nrpe服务器地址,允许服务器对其读取信息
#> vi /usr/local/icinga/etc/nrpe.cfg #> allowed_hosts=127.0.0.1,IPADDRESS
增加command字段来添加要监控的服务
command[check_users]=/usr/local/icinga/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/icinga/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/usr/local/icinga/libexec/check_disk -w 20% -c 10% -p /dev/hda1 command[check_zombie_procs]=/usr/local/icinga/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/local/icinga/libexec/check_procs -w 150 -c 200 command[check_ssh]=/usr/local/icinga/libexec/check_ssh -H localhost command[check_swap]=/usr/local/icinga/libexec/check_swap -w 20% -c 10% command[check_mysql]=/usr/local/icinga/libexec/check_mysql -H localhost -uroot -ptomcat2008 command[check_apache]=/usr/local/icinga/libexec/check_apachestatus -H localhost -p 80 command[check_ntp]=/usr/local/icinga/libexec/check_ntp -H localhost -w 0.5 -c 1 command[check_snmp]=/usr/local/icinga/libexec/check_snmp_service -H localhost -C monitor_energysh
启动Nrpe
Fedora/RHEL/CentOS:
#> service icinga-nrpe start
Debian/Ubuntu/openSuSE:
#> /etc/init.d/icinga-nrpe start 或 #> service icinga-nrpe start
备注 | |
---|---|
检测服务端check_nrpe与客户端运行的nrpedaemon之间的通信 /usr/local/icinga/libexec/check_nrpe -H ClientIPADDRESS |
© 2009-2013 Icinga Development Team, http://www.icinga.org
© 2009-2013 Icinga 中文化项目组, http://sourceforge.net/projects/icinga-cn