如何部署Icinga服務端


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

2. 官方的部署文檔在MySQL中創建icinga數據庫時,沒有指定字符集,而默認的字符集為latin1,這會導致中文的輸出結果為亂碼,所以,需顯性執行數據庫的默認字符集。

 

參考:

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

2. 《掌控-構建Linux系統Nagios監控服務器》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM