【博文推薦】Cacti+Nagios監(jiān)控平臺(tái)完美整合
本博文出自51CTO博客吳光科博主,有任何問題請(qǐng)進(jìn)入博主頁面互動(dòng)討論! 博文地址:http://wgkgood.blog.51cto.com/1192594/1575830 |
近期有很多同學(xué)對(duì)nagios和cacti整合很是糾結(jié),特寫此文方便大家參考,解決大家在nagios和cacti整合的過程中遇到的問題。
一、Cacti安裝部署
作為一名Linux SA,日常最重要的就是保證網(wǎng)站正常穩(wěn)定的運(yùn)行,我們需要實(shí)時(shí)監(jiān)控網(wǎng)站、服務(wù)器的運(yùn)行狀態(tài),這時(shí)需要借助開源軟件(cacti、nagios、zabbix等)監(jiān)控來實(shí)現(xiàn)。
Cacti是用php語言實(shí)現(xiàn)的一個(gè)軟件,它的主要功能是用snmp服務(wù)獲取數(shù)據(jù),然后用rrdtool儲(chǔ)存和更新數(shù)據(jù),當(dāng)用戶需要查看數(shù)據(jù)的時(shí)候用rrdtool生成圖表呈現(xiàn)給用戶。因此,snmp和rrdtool是cacti的關(guān)鍵。
Snmp關(guān)系著數(shù)據(jù)的收集,rrdtool關(guān)系著數(shù)據(jù)存儲(chǔ)和圖表的生成。snmp抓到數(shù)據(jù)不是存儲(chǔ)在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下,一般以rra為后綴名稱)。簡單原理圖如下:
1、Cacti服務(wù)器端安裝
官網(wǎng)下載cacti相關(guān)軟件,一共需要三個(gè)軟件,下載地址分別如下:
- http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
- http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
- http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz
2、安裝LAMP系統(tǒng)環(huán)境
這里采用yum安裝方式,安裝命令:
yum install httpd mysql mysql-server php php-mysql php-json php-pdo -y
3、安裝rrdtool采集工具
安裝rrdtool之前需要安裝相應(yīng)的lib庫,如下安裝:
- yum install cairo-devel libxml2-devel pango pango-devel –y
- tar xzf rrdtool-1.4.5.tar.gz ;cd rrdtool-1.4.5 ; ./configure --prefix=/usr/local/rrdtool/
- make &&make install;ln -s /usr/local/rrdtool/bin/* /usr/local/bin/
4、安裝SNMP服務(wù)
yum install net-snmp net-snmp-utils –y
5、安裝cacti主程序
tar xzf cacti-0.8.8a.tar.gz && mv cacti-0.8.8a /var/www/html/cacti/
6、創(chuàng)建cacti數(shù)據(jù)庫
- mysql -uroot –p 輸入你的密碼進(jìn)入數(shù)據(jù)庫,然后創(chuàng)建數(shù)據(jù)庫:
- create database cacti;創(chuàng)建數(shù)據(jù)庫
- grant all on cacti.* tocacti@'localhost' identified by "123456";創(chuàng)建用戶并授權(quán)
- flush privileges; 刷新權(quán)限
7、mysql配置完畢后,把cacti數(shù)據(jù)導(dǎo)入cacti數(shù)據(jù)庫
- mysql -ucacti -p123456 cacti</var/www/html/cacti/cacti.sql
- 配置完mysql后,我們需要設(shè)置cacti rra、log 目錄的權(quán)限,這里設(shè)置為777:
- chmod -R 777 /var/www/html/cacti/rra/
- chmod -R 777 /var/www/html/cacti/log/
8、修改cacti全局配置文件
vi /var/www/html/cacti/include/config.php為如下配置:
9、添加Rrdtool抓圖任務(wù)計(jì)劃
*/5 * * * */usr/bin/php /var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log 2>&1
10、Cacti安裝完畢,測(cè)試訪問
通過http://ip/cacti/訪問出現(xiàn)如下界面,點(diǎn)擊NEXT下一步。
默認(rèn)一直點(diǎn)擊下一步:
進(jìn)入登錄界面,***次需要修改密碼:
11、進(jìn)入Cacti配置管理界面
12、點(diǎn)擊device,可以添加設(shè)備,默認(rèn)可以看到127.0.0.1這臺(tái)服務(wù)器。右上角Add可以增加設(shè)備。
點(diǎn)擊localhost可以看到具體的設(shè)置,包括采用的snmp協(xié)議版本,監(jiān)控的名稱等:
如果出現(xiàn)snmp error,檢查snmp服務(wù)是否已啟動(dòng),或者是否有權(quán)限。出現(xiàn)如上信息則表示正常。
點(diǎn)擊左上角第二個(gè)按鈕,graphs查看cacti圖像—選擇localhost主機(jī)—右邊會(huì)顯示cacti每5分鐘的監(jiān)控圖像。
更多cacti深入知識(shí),可以一起交流。
#p#
二、 Nagios部署配置
鑒于篇幅的問題,這里nagios部署就略過了,有興趣的同學(xué)可以參考我的從入門到高級(jí)的課程哦,這里直接講解nagios+cacti如何來整合。
首先需要安裝php json模塊和ndoutils,其中Ndoutils是nagios的一個(gè)插件,就是可以用來把nagios的獲取的數(shù)據(jù)存入到mysql數(shù)據(jù)庫中。也可以實(shí)現(xiàn)與cacti的插件npc的集成,這個(gè)工具的安裝是個(gè)關(guān)鍵。
Php-json安裝方法:
- wget http://down1.chinaunix.net/distfiles/json-1.2.1.tgz
- tar xzf json-1.2.1 ;cd json-1.2.1 ;/usr/bin/phpize ;./configure ;make ;make install
安裝完后,然后執(zhí)行如下語句添加json模塊:
echo "extension=json.so" >/etc/php.d/json.ini
重啟apache服務(wù)器,通phpinfo.php頁面可以看到如下內(nèi)容即可:
注意*如果沒有正確加載這個(gè)模塊,可以使用命令查看:
php -m |grep json 如果提示一個(gè)json,則表示模塊加載正確,如果提示libxx.so則表示錯(cuò)誤,解決方法:yum remove php-common,然后重新安裝common就OK。
1、安裝ndoutils:
- wget http://downloads.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz
- tar xzf ndoutils-1.4b9.tar.gz;cd ndoutils-1.4b9 ;./configure--with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql--enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios&&make &&make install
接下來配置ndoutils:
cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
ndo2db.cfg內(nèi)容如下:
- 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=localhost
- db_port=3306
- db_name=cacti
- db_prefix=npc_
- db_user=cacti
- db_pass=123456
- 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
ndomod.cfg內(nèi)容如下:
- 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
同時(shí)在nagios.cfg文件最末尾添加如下語句:
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
2、安裝npc軟件:
wget ftp://ftp.mirrorservice.org/sites/downloads.sourceforge.net/g/gi/gibtmirdas/npc-2.0.4.tar.gz
tar xzf npc-2.0.4.tar.gz ;mv npc /var/www/html/cacti/plugins/
通過界面啟用NPC
3、選擇啟用,然后點(diǎn)擊settings,找到NPC項(xiàng),填入如下內(nèi)容即可。
4、然后后臺(tái)啟動(dòng)nod2db服務(wù):
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
查看后臺(tái)日志還需要在mysql里面執(zhí)行如下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;
執(zhí)行成功后,重啟nagios和ndo2db即可,通過頁面刷新可以看到如下界面即代表整合成功。
自此,nagios+cacti整合完畢,歡迎大家一起交流!