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