歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

官網 Icinga快速安裝與配置

1.1. 簡述

  說明

如果沒有安裝Icinga,你可使用適用於您的操作系統的軟件包.

  • Debian

  • openSuSE

  • RHEL/CentOS

    如果你打算從源代碼安裝,那麼請使用官方發布的壓縮包.

  提示

除非你有問題,需要通過目前的開發版本來解決,否則請不要使用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加載數據庫

    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 ( Fedora/RHEL/CentOS )

      • apt-cache search ( Debian/Ubuntu )

      • zypper search ( 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- --disable-docs
                 #> make
                 #> make install
                  備注

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

                 #> ./configure --with- \
                    --with--incdir=/usr/include// \
                    --with--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-version.tar.bz2 
                 #> cd icinga-cn-version
                 #> ./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 \
                  --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 
                      備注

                    這取決於您的發行版本和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-nagios-user=icinga --with-nagios-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

Copyright © Linux教程網 All Rights Reserved