nagios+cacit 整合(rpm)

系統環境 centos 5.6
系統設置時間
yum install ntp* -y

vim /etc/sysconfig/clock

ZONE="Asia/Shanghai"
UTC=false
ARC=false

/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

/etc/init.d/ntpd stop

ntpdate us.pool.ntp.org

hwclock -w

/etc/init.d/ntpd restart

chkconfig ntpd on

安裝環境(http php mysql net-snmp gcc) 
yum install -y php php-devel php-mysql php-snmp php-gd mysql mysql-server mysql-devel net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL gcc gcc-c++  glibc glibc-common gd gd-devel libxml2* openssl*
rpm -ivh rrdtool-1.3.8-1.el5.pp.i386.rpm
 
啓動http mysql等服務
/etc/init.d/httpd restart
chkconfig httpd on
/etc/init.d/mysqld restart
chkconfig mysqld on

首先安裝nagios
添加nagios用戶
useradd -s /sbin/nologin nagios
passwd nagios
groupadd nagcmd
usermod -G nagcmd nagios
usermod -G nagcmd apache
安裝軟件

tar zxvf nagios-3.2.3.tar.gz
cd nagios-3.2.3
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd && make all && make install && make install-init && make install-config && make install-commandmode && make install-webconf
cd ..

tar xvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios && make && make install && cd ..

tar xvf nagios-cn-3.2.3.tar.bz2
cd nagios-cn-3.2.3
./configure && make all && make install && cd ..

#配置一個nagiosadmin用戶,用於nagios的web管理接口登錄
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

#驗證nagios.cfg文件是否有錯,建議每次修改配置文件後都驗證一下,確認無誤後重啓nagios服務
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

#關閉selinux
vi /etc/selinux/config
將'SELINUX=enforcing'改成'SELINUX=disabled'
setenforce 0

#啓動apache服務,並設置爲開機啓動
service httpd start
chkconfig httpd on

#啓動nagios服務,並設置爲開機啓動
service nagios start
chkconfig nagios on

#檢查開啓情況
ps -ef  //檢查進程
訪問:http://10.2.0.250/nagios/,輸入用戶名密碼,便可打開nagios的web管理接口

至此,主監控服務器上的nagios配置完畢。

#配置郵件報警功能
1、安裝sendmail服務
yum install -y sendmail*

2、開啓服務,並設置爲開機啓動
service sendmail start
chkconfig sendmail on

3、設置sendmail郵件接收和轉發功能
vi /etc/mail/access
添加如下內容:
Connect:http://www.163.com               RELAY
Connect:[email protected]    RELAY
Connect:root@localhost                       RELAY
:wq

makemap -v hash /etc/mail/access.db < /etc/mail/access

4、更改mqueue權限
chmod 777 /var/spool/mqueue

5、檢查所傳送的電子郵件是否送出,或滯留在郵件服務器中
/usr/lib/sendmail -bp
若屏幕顯示爲“Mail queue is empty” 的信息,表示mail 已送出

6、發送郵件進行檢查
echo testing | /usr/sbin/sendmail -v [email protected]

#設置聯繫人郵件通知,在系統有故障時通過郵件告知管理員
vi /usr/local/nagios/etc/objects/contacts.cfg
註釋掉原來的define contact,並添加如下內容:
define  contact{
        contact_name                    yang_ang0219
        use                             generic-contact
        alias                           nagios admin    
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           [email protected]
        }
並修改聯繫人組,修改成如下內容:
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 yang_ang0219
        }

#安裝pnp4nagios 輸出圖形和圖表(需要php5.2以上的版本)
http://www.360doc.com/content/11/0810/11/1208969_139346861.shtml
安裝pnp4nagios-0.6.7
tar zxvf pnp4nagios-0.6.7.tar.gz
cd pnp4nagios-0.6.7
./configure --with-nagios-user=nagios --with-nagios-group=nagcmd&& make all &&make install &&make install-webconf &&make install-config &&make install-init &&cd ..

4、修改配置
cd /usr/local/pnp4nagios/etc
cp misccommands.cfg-sample misccommands.cfg
cp nagios.cfg-sample nagios.cfg
cp npcd.cfg-sample npcd.cfg
cp process_perfdata.cfg-sample process_perfdata.cfg
cp rra.cfg-sample rra.cfg

cd pages
cp web_traffic.cfg-sample web_traffic.cfg

cd ../check_commands
cp check_all_local_disks.cfg-sample check_all_local_disks.cfg
cp check_nrpe.cfg-sample check_nrpe.cfg
cp check_nwstat.cfg-sample check_nwstat.cfg

5、啓動npcd服務並設置爲開機啓動
service npcd start
chkconfig npcd on

6、修改nagios.cfg文件
cd /usr/local/nagios/etc
vi nagios.cfg
修改配置如下:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
:wq

7、修改commands.cfg文件
cd /usr/local/nagios/etc/objects
vi commands.cfg
修改process-host-perfdata和process-service-perfdata爲:
#'process-host-perfdata' command definitio
define command{
        command_name    process-host-perfdata
        command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
           }

#'process-service-perfdata' command definition
define command{
        command_name    process-service-perfdata
        command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
        }
:wq

8、修改模板,添加小太陽鑲嵌在nagios頁面上
vi templates.cfg
在最後添加:
define host{
     name       host-pnp
     action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_
     register   0
         }

define service{
     name       srv-pnp
     action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
     register   0
           }
:wq

9、修改主機配置文件:
[root@localhost ~]# cat /usr/local/nagios/etc/objects/localhost.cfg |grep -v "#"  |sed /^$/d
define host{
        use                     linux-server,host-pnp            ; Name of host template to use
                                                        ; This host definition will inherit all variables that are defined
                                                        ; in (or inherited by) the linux-server host template definition.
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        }
define hostgroup{
        hostgroup_name  linux-servers ; The name of the hostgroup
        alias           Linux Servers ; Long name of the group
        members         localhost     ; Comma separated list of hosts that belong to this group
        }
define service{
        use                             local-service,srv-pnp        ; Name of service template to use
        host_name                       localhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }
define service{
        use                             local-service,srv-pnp         ; Name of service template to use
        host_name                       localhost
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }
define service{
        use                             local-service,srv-pnp         ; Name of service template to use
        host_name                       localhost
        service_description             Current Users
        check_command                   check_local_users!20!50
        }
define service{
        use                             local-service,srv-pnp         ; Name of service template to use
        host_name                       localhost
        service_description             Total Processes
        check_command                   check_local_procs!250!400!RSZDT
        }
define service{
        use                             local-service,srv-pnp         ; Name of service template to use
        host_name                       localhost
        service_description             Current Load
        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }
define service{
        use                             local-service,srv-pnp         ; Name of service template to use
        host_name                       localhost
        service_description             Swap Usage
        check_command                   check_local_swap!20!10
        }
define service{
        use                             local-service,srv-pnp         ; Name of service template to use
        host_name                       localhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
        }
define service{
        use                             local-service,srv-pnp        ; Name of service template to use
        host_name                       localhost
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0
        }

10、刪除instal.php
cd /usr/local/pnp4nagios/share
rm -f install.php

11、驗證配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

12、無誤後重啓nagios和httpd 服務
service nagios restart
service httpd restart

最後登錄nagios控制檯,選擇host--主機名旁邊的小太陽,即可看到圖形界面!大功告成!
 

 

 

 

好的至此  nagios監控端安裝軟件完成



下面安裝cacti 
cacti 是基於snmp的 
所以配置安裝snmp(net-snmp)
vim /etc/snmp/snmpd.conf  修改如下:
 
 

 

 

 

重啓snmp服務器
/etc/init.d/snmpd restart
chkconfig snmpd on

tar zxvf cacti-0.8.7e.tar.gz
mv cacti-0.8.7e /var/www/html/cacti
修改cacti連接數據庫的配置文件 
vim /var/www/html/cacti/include/config.php
 

 好的 我們需要創建一個cacti數據庫設置密碼 給予權限
>create database cacti;
>grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
>grant all privileges on cacti.* to [email protected] identified by 'cacti' with grant option;
>use cacti;
>source /var/www/html/cacti/cacti.sql;
>exit

然後登陸網頁 http://IP/cacti   請安裝提示操作
添加計劃任務
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
如果想立即cacti繪圖的話 請直接執行:
/usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
然後刷新頁面 稍等會 就看到繪圖了


整合cacti+nagios
整合cacti和nagios是利用了cacti的一個插件nagios for cacti,它的原理是將nagios的數據通過ndo2db導入到mysql數據庫(cacti的庫中),然後cacti讀取數據庫信息將nagios的結果展示出來。
1、安裝ndoutils
tar xvf ndoutils-1.4b7.tar.gz 
cd ndoutils-1.4b7
./configure --with-mysql-lib=/usr/lib/mysql/ --with-mysql-inc=/usr/include/mysql/
make
cd src/
cp ndomod-3x.o /usr/local/nagios/bin/.
cd ndo2db-3x /usr/local/nagios/bin/ndo2db
cd ../config
cp ndo2db.cfg /usr/local/nagios/etc/
cp ndomod.cfg /usr/local/nagios/etc/
cd /usr/local/nagios/etc/
chown nagios:nagios ndo2db.cfg ndomod.cfg
cd ../bin/
chown nagios:nagios ndo2db ndomod-3x.o
 


然後修改ndo2db.cfg  ndomod.cfg的配置文件

cat /usr/local/nagios/etc/ndo2db.cfg |grep -v '^#'|sed /^$/d
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
db_servertype=mysql
db_host=127.0.0.1
db_port=3306
db_name=cacti
db_prefix=npc_
db_user=cactiuer
db_pass=cactiuser
max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
debug_level=1
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000

cat /usr/local/nagios/etc/ndomod.cfg |grep -v '^#'|sed /^$/d
instance_name=default
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2

然後再編輯nagios的主配置文件 nagios.cfg 在最後添加如下:
check_external_commands=1
command_check_interval=-1
event_broker_options=-1
process_performance_data=1
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

保存退出
啓動ndo
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
echo "/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg" >>/etc/rc.local
service nagios restart
service httpd restart

2.安裝php-json
tar xvf php-json-ext-1.2.0.tar.bz2
cd php-json-ext-1.2.0
首先初始化php(如果沒有這個命令  請 yum install php-devel)
phpize
./configure
make 
make install

查看是否安裝成功
find / -name *json.so

vim /etc/php.ini
查找到include 在旗下添加如下語句:
include ('/etc/php.d/json.ini')

vim /etc/php.d/json.ini
內容如下:
extension=json.so
重啓web服務
/etc/init.d/httpd restart


安裝cacti的插件管理器 (cacti插件使用的前提 需要和cacti主程序版本一致)
unzip cacti-plugin-0.8.7e-PA-v2.5.zip -d cacti-plugin
cp -R cacti-plugin/* /var/www/html/cacti/
cd /var/www/html/cacti/
mysql -uroot cacti < pa.sql (這裏因爲我沒有設置mysql數據庫的密碼 所以沒有-p選項 設置mysql密碼 : mysqladmin -uroot -p password mysql)
patch -p1 -N < cacti-plugin-0.8.7e-PA-v2.5.diff
 
vim include/global.php (修改如下):
 

這是連接數據庫方面的設置
 
 

 

重啓httpd服務
cacti的插件 安裝完成 。


3.npc插件的安裝
tar zxvf npc-2.0.4.tar.gz
mv npc /var/www/html/cacti/plugins/.
 
vim /var/www/html/cacti/include/global.php 修改如下:(這是爲了讓npc插件在管理裏面看到)
 

保存退出
重啓httpd服務
重啓nagios服務
 
然後呢 只需要去cacti的web頁面上 設置下即可:如圖
 

 

 

 

 

 

 

好的 至此 cacti和nagios的整合成功 
不足之處 請大牛指出來 並給以相關的資料 謝謝

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章