Icinga快速安裝與配置

Icinga快速安裝與配置

1.1. 簡述

說明

若是沒有安裝Icinga,你可以使用適用於您的操做系統的軟件包. css

若是你打算從源代碼安裝,那麼請使用官方發佈的壓縮包.ios

提示

除非你有問題,須要經過目前的開發版原本解決,不然請不要使用git快照.git

本指南旨在爲您提供簡單的如何從源(代碼)安裝Icinga的說明,並在20分鐘內監控您的本地計算機.web

這裏不會對進階安裝選項進行討論 - 只需基本操做大多數的用戶就能夠開始使用.sql

目前提供三種不一樣的Linux發行版的例子: Fedora, UbuntuopenSuSE. 相似發行版也能夠正常使用. 這應該包括 RedHat, CentOS, DebianSLES.數據庫

最終您會獲得結果是什麼apache

若是您按照這些說明操做,最終結果:

  • Icinga和插件將安裝到 /usr/local/icinga

  • 配置Icinga監視您本地系統的幾個方面 (CPU負載, disk使用率, 例如.)

  • Icinga經典web界面能夠經過http://localhost/icinga/ 或 http://yourdomain.com/icinga訪問

  • Icinga使用IDOUtils加載數據庫

1.2. 前提條件

部分安裝過程當中,你須要具備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.3.1 您能夠運行如下命令(以root或使用sudo)安裝這些軟件包.

備註

若是沒有發現相應軟件包,請使用您的包管理器的搜索選項來得到新的不一樣版本之間的變化名稱:

  • yum search <package name> ( Fedora/RHEL/CentOS )

  • apt-cache search <package name> ( Debian/Ubuntu )

  • zypper search <package name> ( openSuSE/SLES )

  • Fedora/RHEL/CentOS:

     #> 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
  • Debian/Ubuntu:

     #> 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
  • openSuSE:

    請使用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

    1. 編譯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
    2. 安裝libdbi. 你還能夠指定額外的配置選項(例如 --prefix=/usr ... )

       #> cd libdbi-0.8.3 #> ./configure --disable-docs #> make #> make install
    3. 安裝libdbi-drivers

       #> cd libdbi-drivers-0.8.3-1 #> ./configure --with-<rdbm> --disable-docs #> make #> make install
    4. 備註

      在64-bit版本上使用,你必須指定include-和lib-dir的路徑:

       #> ./configure --with-<rdbm> \ --with-<rdbm>-incdir=/usr/include/<rdbm>/ \ --with-<rdbm>-libdir=/usr/lib64/ --disable-docs

1.4. 建立賬戶信息

 $> 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取決於發行版本)

1.5. 編譯和安裝Icinga(包括IDOUtils)

提取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支持.
a.若是沒有安裝Oracle庫路徑,您須要指定--with-oracle-lib=/path/to/instantclient
b.若是ocilib沒有安裝到默認路徑(/usr/local), 您須要指定 --with-ocilib-lib=/path/to/ocilib/lib --with-ocilib-inc=/path/to/ocilib/include

此外,若是您要使用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

1.5.1. 編譯和安裝

 #> 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-config 不包括在 make fullinstall中,以免意外覆蓋您的配置文件.

只要使用 "make install" 就能夠安裝IDOUtil和適用的event broker模塊.

ldd ido2db查看加載模塊

libdbi.so.1 => /lib64/libdbi.so.1

libdbi.so.1默認的路徑是/lib64或/lib

不要啓動Icinga- 還有更多的事情須要作...

1.6. 定製配置

使用 "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配置!!!

1.6.1. 啓用idomod event broker 模塊

提示

在正常狀況下,下面的模塊定義已經存在於modules/idoutils.cfg-sample

	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

1.7.數據庫建立和IDOUtils

備註

若是剛安裝了一個新的數據庫系統,在您建立新數據庫以前,你必須啓動數據庫服務. 如 MySQL可能使用 /etc/init.d/mysqld start (或 /etc/init.d/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

1.8. 配置經典的Web界面

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

1.9. 編譯和安裝Icing插件

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

1.9.1. 安裝check_nrpe 插件

#> tar -zxvf nrpe-2.14.tar.gz  #> cd nrpe-2.14  #> ./configure --prefix=/usr/local/icinga --enable-ssl  #> make all #> make install-plugin

2.0. 調整SELinux的設置

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

2.1. 啓動IDOUtils和Icinga

在啓動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

2.1.1. 配置Icinga開機啓動

添加Icinga到服務列表和在系統啓動時自動啓動 (在次以前確保您已經安裝了init腳本).

  • Fedora/RHEL/CentOS/openSuSE:

     #> chkconfig --add icinga chkconfig icinga on
  • Debian/Ubuntu:

     #> update-rc.d icinga defaults

2.1.2. 登陸到經典的Web界面

經過下面的網址,您如今應該可以訪問到Icinga的經典Web界面. 系統將提示您先前指定的用戶名 (例如. icingaadmin ) 和密碼.

 http://localhost/icinga/

 http://yourdomain.com/icinga/ 

2.2. 其它修改

請確保您的系統的防火牆規則配置爲容許訪問到Web服務器,若是您要遠程訪問的Icinga的經典Web界面.

 #> iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

2.3. 客戶端主機的配置

添加用戶(普通帳戶)icinga

 #> /usr/sbin/useradd icinga #> passwd icinga

2.3.1. 客戶端編譯和安裝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

2.3.2. 客戶端編譯和安裝Nrpe

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

2.3.3. 配置客戶端Nrpe

添加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

相關文章
相關標籤/搜索