如何部署Icinga服務端

Icinga是Nagios的一個變種,配置,使用方式幾乎同樣,並且徹底兼容Nagios的插件。因此下面的部署方案對Nagios一樣使用。php

它還推出了兩個中文版本,icinga-cn原版和icinga-pnp4nagios-cn,前者和Nagios幾乎如出一轍,只不過界面是中文的,然後者則集成了php4繪圖功能,能以圖形化的方式呈現系統的監控信息,相似於Cacti。html

Icinga服務端通常是指其內核,它提供的只是一個框架,並不能監控具體的資源,譬如CPU,內存,進程等。對這些的監控是經過Icinga插件來實現的。mysql

對遠程Linux主機的監控通常有兩種方式:linux

1. check_by_ssh插件ios

譬如我要查看遠程Linux主機的磁盤空間的使用狀況,web

# /usr/local/icinga/libexec/check_by_ssh -H 192.168.244.134 -C 'df -h'sql

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插件apache

NRPE插件的原理是容許Icinga在遠程主機上執行Nagios插件,這樣就可監控遠程主機上的本地資源,譬如CPU,內存,SWAP等不會暴露給外部機器的系統資源。vim

原理以下:

因此本方案實現的是Icinga內核+Nagios插件+NRPE插件。同時,本方案中使用了IDOUtils,這樣,可將icinga的配置信息和監控數據等保存到數據庫中。

1、安裝依賴包

主要需安裝如下幾類包

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

 

2、建立帳戶

# /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

 

3、下載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。

 

4、安裝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

 

5、建立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

其實,默認就是這樣。

 

6、配置經典的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

 

7、編譯和安裝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

 

8、編譯和安裝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後有說明,建議都執行下。

 

9、調整SELinux策略

最簡單的是直接關閉

臨時關閉:# setenforce 0

永久關閉:# vim /etc/sysconfig/selinux 

SELINUX=disabled

 

10、開啓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

 

11、登陸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監控服務器》

相關文章
相關標籤/搜索