天天看點

Cacti與nagios結合所需插件的安裝與報錯處理

Cacti和Nagios安裝這裡就不做介紹了

我們這裡介紹的是nagios與cacti的整合,首先需要安裝php json子產品和ndoutils,其中Ndoutils是nagios的一個插件,就是可以用來把nagios的擷取的資料存入到mysql資料庫中。也可以實作與cacti的插件npc的內建,這個工具的安裝是個關鍵。還需要安裝使用npc插件。下面我們來一一介紹安裝的方法。

一、安裝Php-json 

tar xzf json-1.2.1 ;

cd json-1.2.1 ;

/usr/bin/phpize ;

./configure ;

make ;

make install 

安裝完後,然後執行如下語句添加json子產品:

echo "extension=json.so" >/etc/php.d/json.ini

使用php -m|grep json應該可以顯示json這個字元

<a href="https://s5.51cto.com/wyfs02/M00/8F/22/wKiom1jUhjSgmbKxAAAGbGlzTSo034.png-wh_500x0-wm_3-wmp_4-s_4204049219.png" target="_blank"></a>

如果沒顯示這個字元,證明子產品沒有安裝正确

解決方法:yum remove php-common,然後重新安裝php-common

二、安裝Ndoutils

Ndoutils安裝

1.DBI的安裝

到官網http://www.cpan.org/modules/by-module/DBI/ 下載下傳

這裡下載下傳的是DBI-1.633.tar.gz

tar -zxvf DBI-1.633.tar.gz

cd DBI-1.633

perl Makefile.PL

make

make test

這裡出現test錯誤,不用管他,繼續安裝。

make install

2. DBD的安裝

DBD-mysql-4.025

tar -zxvf DBD-mysql-4.025.tar.gz

cd DBD-mysql-4.025

perl  Makefile.PL --libs="-L/usr/lib64/mysql #mysql 使用yum裝的,檢查配置時系統一般能找到頭檔案和庫檔案的位置,不用過多配置一些選項

3.NDOUTILS安裝

編譯安裝NDOUtils

tar -zxvf ndoutils-2.0.0

cd ndoutils-2.0.0

./configure --prefix=/usr/local/nagios --enable-mysql

4.拷貝檔案

我的Nagios是3.5.1,是以拷貝的是ndomod-3x.o、ndo2db-3x,如果你的是2.X.x請拷貝ndomod-2x.o、ndo2db-2x

cd  ndoutils-2.0.0

cd src

cp ndo2db-3x ndomod-3x.o file2sock log2ndo /usr/local/nagios/bin

cd /usr/local/nagios/bin

mv ndo2db-3x ndo2db

cd config

cp ndo2db.cfg-sample ndomod.cfg-sample /usr/local/nagios/etc/

cd  /usr/local/nagios/etc

mv ndo2db.cfg-sample ndo2db.cfg

mv ndomod.cfg-sample ndomod.cfg

5.編輯ndo2db.cfg配置檔案

vim /usr/local/nagios/etc/ndo2db.cfg

lock_file=/usr/local/nagios/var/ndo2db.lock

ndo2db_user=nagios

ndo2db_group=nagios

socket_type=tcp

socket_name=/usr/local/nagios/var/ndo.sock

tcp_port=5668

use_ssl=0

db_servertype=mysql

db_host=localhost

db_port=3306

db_name=cacti#資料庫名稱

db_prefix=npc_

db_user=cactiuser#資料庫使用者

db_pass=huaxia#資料庫密碼

max_timedevents_age=1440

max_systemcommands_age=10080

max_servicechecks_age=10080

max_hostchecks_age=10080

max_eventhandlers_age=44640

max_externalcommands_age=44640

debug_level=0

debug_verbosity=1

debug_file=/usr/local/nagios/var/ndo2db.debug

max_debug_file_size=1000000

6.配置ndomod.cfg檔案

vim /usr/local/nagios/etc/ndomod.cfg

instance_name=default

output_type=tcpsocket

output=127.0.0.1

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 

8.配置nagios.cfg檔案

vi /usr/local/nagios/etc/nagios.cfg

# 修改下面參數的值為-1(一般預設如此)。

event_broker_options=-1

# 複制下面内容粘貼到#broker_module=...下面。

# 注意broker_module= 和config_file是在一行上

# Uncomment the line below if you're running Nagios 3.x

broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

process_performance_data=1#注意該參數修改成啟動狀态

9.配置啟動腳本

cd  /usr/local/src/ndoutils-1.5.2

cp daemon-init /etc/init.d/ndo2db

chmod +x ndo2db

10、啟動ndo2db服務

Service ndo2db start 

11.重新開機nagios

service nagios restart

12.檢視啟動日志資訊

[root@BestTone-zabbix var]# tail -f nagios.log

[1468292167] Successfully shutdown... (PID=29500)

[1468292167] ndomod: Shutdown complete.

[1468292167] Event broker module '/usr/local/nagios/bin/ndomod-3x.o' deinitialized successfully.

[1468292167] Nagios 3.5.1 starting... (PID=14197)

[1468292167] Local time is Tue Jul 12 10:56:07 CST 2016

[1468292167] LOG VERSION: 2.0

[1468292167] ndomod: NDOMOD 1.5.2 (06-08-2012) Copyright (c) 2009 Nagios Core Development Team and Community Contributors

[1468292167] ndomod: Could not open data sink!  I'll keep trying, but some output may get lost...

[1468292167] Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.

[1468292167] Finished daemonizing... (New PID=14198)

[1468293079] ndomod: Still unable to connect to data sink.  721 items lost, 5000 queued items to flush.

 檢視到報錯資訊ndomod: Could not open data sink!  I'll keep trying, but some output may get lost...

從報錯的資訊可以看到ndomod沒有把資料存到cacti資料庫裡,錯誤解決方法:

vim /usr/local/nagios/etc/ndo2db.cfg

ndo2db_group=apache#修改資料庫的屬組為apache

cd /usr/local/nagios/bin

chown nagios:apache ndo*#把兩個主程式的屬組改為apache

 cd ../etc

chown nagios:apache ndo*#把兩個配置檔案的屬組改為apache

13、重新開機相關服務 

service ndo2db restart

14、再次檢視啟動日志,發現啟動成功,ndomod已經連接配接上cacti資料庫

[root@localhost ~]# tail -f /var/log/messages

Mar 24 09:31:25 localhost nagios: ndomod registered for retention data'

Mar 24 09:31:25 localhost nagios: ndomod registered for contact data'

Mar 24 09:31:25 localhost nagios: ndomod registered for contact notification data'

Mar 24 09:31:25 localhost nagios: ndomod registered for acknowledgement data'

Mar 24 09:31:25 localhost nagios: ndomod registered for contact status data'

Mar 24 09:31:25 localhost nagios: ndomod registered for adaptive contact data'

Mar 24 09:31:25 localhost nagios: Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.

Mar 24 09:31:25 localhost nagios: Finished daemonizing... (New PID=1828)

Mar 24 10:31:25 localhost nagios: Auto-save of retention data completed successfully.

Mar 24 10:47:35 localhost kernel: hrtimer: interrupt took 3738538 ns

三、安裝npc軟體

tar  -vxzf  npc-2.0.4.tar.gz ;

mv  npc  /var/www/html/cacti/plugins/

1、通過界面啟動npc

<a href="https://s1.51cto.com/wyfs02/M02/8F/22/wKiom1jUjf-Q8KxGAACUd5UoIM0692.png-wh_500x0-wm_3-wmp_4-s_1595401359.png" target="_blank"></a>

2、在Cacti的"console"的"Settings"裡設定好nagios指令檔案的主路徑和nagios的URL的路徑,注意勾上"Romote Commands"項,點選"Save"按鈕

<a href="https://s2.51cto.com/wyfs02/M01/8F/22/wKiom1jUjt6y9-CQAAByou6RV18475.png-wh_500x0-wm_3-wmp_4-s_443663901.png" target="_blank"></a>

3、再cacti資料庫裡,執行下面的sql語句

mysql裡面執行如下sql即可:

mysql&gt; use cacti;

alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;

alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output; 

alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output; 

alter table npc_notifications add long_output TEXT NOT NULL default '' after output; 

alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output; 

alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output; 

alter table npc_statehistory add long_output TEXT NOT NULL default '' after output; 

alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output; 

4、執行成功後,重新開機nagios和ndo2db,下面界面是nagios與cacti的整合效果圖:

<a href="https://s5.51cto.com/wyfs02/M01/8F/26/wKiom1jUyJyCA0UeAAH5toTS4Ok579.png-wh_500x0-wm_3-wmp_4-s_1807191738.png" target="_blank"></a>

遇到的問題

1)、假如這裡的Nagios的狀态是off

我也曾遇到,主要是檢查ndo2db連cacti庫是否正常,可以檢視/var/log/messages

裡的日志資訊,看不到資訊可能是你的ndomod.cfg和ndo2db.cfg配置有錯誤!建議檢查配置檔案。同時在cacti資料庫裡執行上面提示的幾條sql語句。

2)、假如nagios狀态欄無資訊

在cacti的資料庫中找到表npc_programstatus,從表中選取programstatus_id、instance_id、status_update_time、last_command_check、last_log_rotation等幾個字段并删除前面的一條記錄,重新整理一會,應該就可以出圖。如下圖所示:

<a href="https://s5.51cto.com/wyfs02/M01/8F/24/wKioL1jU0NTQ76x6AABLTF4O0dI641.png-wh_500x0-wm_3-wmp_4-s_3233204474.png" target="_blank"></a>

本文轉自伺服器運維部落格51CTO部落格,原文連結http://blog.51cto.com/shamereedwine/1910066如需轉載請自行聯系原作者

neijiade10000