Cacti的安裝并整合nagios
一:cacti環境的搭建
1.rrdtool的安裝,這裡需要安裝的是:rrdtool,rrdtool-devel.rrdtool-perl,rrdtool-php,我用的rrdtools的版本是1.4.4.1_x86_64。
在這裡沒有提供rrdtool的工具,需要下載下傳可以去這裡下載下傳上述的3個軟體包
rrdtool、rrdtool-devel的位址:http://packages.express.org/rrdtool/
rrdtool-php的位址:http://pkgs.org/download/rrdtool-php
注意,rrdtool的元件和附加元件版本盡量一緻,而由于rrdtool-php這個包非常稀有,是以,盡量請以rrdtool-php的版本來決定rrdtool以及rrdtool-devel的版本。還有一定要對應環境,别安裝成了fedora的版本了=。=
下載下傳完成後,本地yum安裝
1 yum localinstall -y --nogpgcheck rrdtool-*
2 service mysqld start
2.配置snmp
3 vim /etc/snmp/snmpd.conf
4 # 修改3項 127.0.0.1 、 all、啟用項(修改的内容詳見我Cacti的安裝文檔,上面有非常詳細的内容介紹)
5 service snmpd restart
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iMoVEN3cTNwYTM3MzMx8VNycTN1QzMvwlNx8CX1AjMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
3.安裝cacti
6 wget http://www.cacti.net/downloads/cacti-0.8.7h.tar.gz
7 tar zxvf cacti-0.8.7h.tar.gz
8 mv cacti-0.8.7h /var/www/html/cacti
4.建立cacti資料庫
9 mysql> create database cacti;
10 mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
11 mysql> flush privileges;
5.将cacti的表内容導入建立的資料庫
12 cd /var/www/html/cacti
13 mysql -ucacti -pcacti cacti < /var/www/html/cacti/cacti.sql
6.分别編輯兩個.php檔案,以适應環境,修改内容相同。
14 vim /var/www/html/cacti/include/config.php
15 vim /var/www/html/cacti/include/global.php
$database_default = "cacti"; //預設資料庫名
$database_hostname = "localhost"; //主機名
$database_username = "cacti"; //登陸資料庫使用者名
$database_password = "cacti"; //登陸資料庫密碼
$database_port = "3306";
16 useradd –r –M cacti
17 chown –R cacti /var/www/html/cacti/rra/
18 chown –R cacti /var/www/html/cacti/log/
7.在cacti使用者下建立計劃任務以畫圖
19 su cacti
20 crontab –e
21 */5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
22 php /var/www/html/cacti/poller.php > /dev/null 2>&1
23 exit
8.從web頁面啟動cacti,安裝,并檢視圖形化界面
二:整合Nagios與Cacti
1.下載下傳并安裝ndoutils
24 wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download
25 tar zxvf ndoutils-1.4b9.tar.gz
26 cd ndoutils-1.4b9
27 ./configure --prefix=/var/www/html/nagios --enable-mysql --disable-pgsql --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql
28 make
2.準備配置檔案
29 cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /var/www/html/nagios/bin
30 cd db
31 ./installdb -ucacti -pcacti -hlocalhost -d cacti
32 cd ..
33 cp -v config/{ndo2db.cfg-sample,ndomod.cfg-sample} /var/www/html/nagios/etc
34 mv /var/www/html/nagios/etc/ndo2db.cfg-sample /var/www/html/nagios/etc/ndo2db.cfg
35 mv /var/www/html/nagios/etc/ndomod.cfg-sample /var/www/html/nagios/etc/ndomod.cfg
36 chmod 644 /var/www/html/nagios/etc/ndo*
37 chown nagios:nagios /var/www/html/nagios/etc/*
38 chown nagios:nagios /var/www/html/nagios/bin/*
3.修改nagios.cfg配置檔案以适應目前環境
39 vim /var/www/html/nagios/etc/nagios.cfg
40 # 在檔案中添加:
41 broker_module=/var/www/html/nagios/bin/ndomod-3x.o config_file=/var/www/html/nagios/etc/ndomod.cfg
42 # 檢查
43 event_broker_options=-1 ## 為Nagios開啟event broker
4.修改ndo2db.cfg以适應目前環境
44 vim /var/www/html/nagios/etc/ndo2db.cfg
45 # 確定下列内容為唯一項
46 socket_type=tcp
47 db_servertype=mysql
48 db_host=localhost
49 db_port=3306
50 db_name=cacti
51 db_prefix=nagios_
52 db_user=cacti
53 db_pass=cacti
5.修改ndomod.cfg以适應目前環境
54 vim /var/www/html/nagios/etc/ndomod.cfg
55 # 確定下列項的唯一内容為
56 output_type=tcpsocket
57 output=127.0.0.1
6.為ndo2db添加啟動程序
58 cp ./daemon-init /etc/init.d/ndo2db
59 vim /etc/init.d/ndo2db
60 # 檢查裡面的路徑確定不會出現“//",并将Ndo2dbBin修改成下面的值:
61 Ndo2dbBin=/var/www/html/nagios/bin/ndo2db-3x
62 chmod +x /etc/init.d/ndo2db
7.啟動守護程序與nagios
63 service ndo2db start
64 tail -20 /var/log/messages ## 檢視其中是否有錯誤出現。如無報錯請繼續
65 service nagios start
三:安裝ncp,以在Cacti中展現Nagios
1.先安裝cacti擴充子產品
66 wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz
67 tar xvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz
68 cp -R cacti-plugin-arch/* /var/www/html/cacti/
69 cd /var/www/html/cacti/
70 mysql -ucacti -pcacti cacti < pa.sql
71 patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff
72 ## 為cacti配置檔案打更新檔的時候注意在為include/config.php打更新檔的時候有可能它将 include/config.php.dist給打更新檔了,我們隻需要手動加入下面的内容即可。
73 vim include/config.php
74 # 修改(或新加入)為
75 $url_path = "/cacti/";
從web進入cacti,啟用cacti plugin擴充
2.安裝npc
76 tar zxvf npc-2.0.4.tar.gz
77 mv npc /var/www/html/cacti/plugins/
78 vim /var/www/html/cacti/include/config.php
79 # 加入:
80 $plugins[] = 'npc';
3.安裝 npc支援:json
81 wget http://pkgs.fedoraproject.org/repo/pkgs/php-pecl-json/json-1.2.1.tgz/d8904d2f004ceec85eeacf524cd25539/json-1.2.1.tgz
82 tar zxvf json-1.2.1.tgz
83 cd json-1.2.1
84 phpize ## 如果發現沒有Phpize檔案,則是因為php-devel包沒有安裝導緻的
85 ./configure
86 make && make install
87
88 php -i | grep php.ini ## 檢視是否有導入資訊
4.打開php.ini檔案添加對json的支援
89 vim /etc/php.ini
90 # 添加
91 extension=json.so
5.為apache添加php支援。
92 vim /etc/httpd/conf/httpd.conf
93 # 添加一行:
94 AddType application/x-httpd-php .php .phtml
95 # 修改原DirectoryIndex内容為:
96 DirectoryIndex index.html index.html.var index.php
97
98 usermod -G cacti apache
99 service httpd restart ## 重新開機apache以讓php生效
100 php -m ## 檢視是否有json被加載
6.修改配置檔案以讓npc讀取到新的資料。
101 vim /var/www/html/nagios/etc/ndo2db.cfg
102 db_prefix=npc_
6.1從Web進入Cacti,確定正确使用npc選項。
6.2 修改mysql中的表結構:
103 ./mysql -ucacti -p cacti
104 mysql> use cacti;
105 mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
106 mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;
107 mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;
108 mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output;
109 mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;
110 mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;
111 mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;
112 mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;
7.重新開機ndo2db程序,重新加載配置檔案重新開機nagios服務。
113 service ndo2db restart
114 service nagios restart
8.在Web上配置NPC以使之正常讀取工作。
在Settings->npc中 ,勾上Remote Commands
Nagios Command File Path= /var/www/html/nagios/var/rw/nagios.cmd
Nagios URL=你的位址(http://ocalhost/nagios/)
接下來重新整理npc就可以看到資料啦:
四:Nconf的安裝與配置
1.nconf的準備工作
115 # 進入mysql資料庫
116 mysql> create database nconf;
117 # 建立nconf資料庫
118 mysql> grant all privileges on nconf.* to nconf@localhost identified by 'nconf';
119 # 建立nconf使用者并賦權
120 mysql> flush privileges;
121 # 重新整理特權表
122 mysql> quit
2.安裝nconf
123 wget http://sourceforge.net/projects/nconf/files/nconf/1.2.6-0/nconf-1.2.6-0.tgz/download
124 tar -zxf nconf-1.2.6-0.tgz -C /var/www/html/
125 cd /var/www/html/nconf
126 chown -R apache.apache config/ temp/ static_cfg/ output/
3.進入Web頁面在web頁面按照安裝提示一步步安裝
4.使用剛才建立的nconf資料庫和nconf資料庫使用者/密碼
5.成功連接配接mysql資料庫,之後一切保持預設,直到下面的,設定nconf管理者密碼,此時預設登入使用者為admin
6.之後,網頁安裝完成。
127 rm -rf INSTALL INSTALL.php UPDATE UPDATE.php
128 # 删除安裝所需的初始化檔案
129 ln -s /var/www/html/nagios/bin/nagios bin/nagios
130 chmod +x /var/www/html/nconf/bin/generate_config.pl
131 chown -R apache.apache bin
132 chmod +x /var/www/html/nagios/bin/nagios
133 chmod +x /var/www/html/nconf/ADD-ONS/deploy_local.sh
134 vim /var/www/html/nconf/ADD-ONS/deploy_local.sh
135 修改裡面的Nagios路徑為 /var/www/html/nagios/etc/
7.重新重新整理頁面,輸入admin/您設定的密碼,進入nconf頁面
8.點選Generate Nagios config嘗試生成配置檔案,以測試是否與nagios成功關聯
9.最後的設定
①在web頁面對監控服務和主機配置完畢,點選Generate Nagios config
②deploy_local.sh是nconf自帶配置檔案導入腳本
136 /var/www/html/nconf/ADD-ONS/deploy_local.sh
手動執行此腳本,将在/var/www/html/nagios/etc下生成兩目錄Default_collector與global
③修改nagios主配置檔案
137 vim /var/www/html/nagios/etc/nagios.cfg
138 # 将其中cfg_file=*******字段全部注釋 ,并加入
139 cfg_dir=/var/www/html/nagios/etc/Default_collector
140 cfg_dir=/var/www/html/nagios/etc/global
141 service nagios reload
142 # 重載nagios配置檔案使之生效
五:錯誤總結:
1.啟動ndo2db發現日志報錯:
ndomod: Could not open data sink! I'll keep trying, but some output may get lost...
解決辦法:
檢查 /nagios/etc目錄的權限是否足夠的大
確定/var/www/html/nagios/etc/nagios.cfg中有如下行出現,否則,請自行添加:
event_broker_options=-1
檢查ndo2db.cfg中的配置,確定使用tcp連接配接
socket_type=tcp
檢查ndomod.cfg中的配置,確定使用tcp套接字
output_type=tcpsocket
2.在npc安裝過程中進行表操作時報錯
mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
ERROR 1146 (42S02): Table 'cacti.npc_eventhandlers' doesn't exist
解決辦法:要先在cacti頁面下正确的啟用npc插件,正确的啟用~一個向上的箭頭和一個向右的箭頭都要開啟才行~
3.在應用nconf的時候報錯
點 nconf --> Generate Nagios config --> 報錯了。
Error accessing or executing Nagios / Icinga binary '/var/www/html/nconf/bin/nagios'.
Cannot run the mandatory syntax check.
檢查你的/var/www/html/nconf/bin/nagios這個檔案所連結的那個原始檔案的權限,確定是777或者775
4....當然還沒有發現錯誤,如果有,将會繼續補充,歡迎網友在安裝部署的過程中發現錯誤将錯誤積極交流,我将一一添加……