參考文獻
http://kling.blog.51cto.com/3320545/1180778
前言:
原本是想原始碼安裝的,但是現在發現還是太麻煩了,就直接透過apt-get install安裝了。
一、cacti概述
1. cacti是用php語言實現的一個軟體,它的主要功能是用snmp服務獲取資料,然後用rrdtool儲存和更新資料,當使用者需要檢視資料的時候用rrdtool生成圖表呈現給使用者。因此,snmp和rrdtool是cacti的關鍵。Snmp關係著資料的收集,rrdtool關係著資料儲存和圖表的生成。
2. Mysql配合PHP程式儲存一些變數資料並對變數資料進行呼叫,如:主機名、主機ip、snmp團體名、埠號、模板資訊等變數。
3. snmp抓到資料不是儲存在mysql中,而是存在rrdtool生成的rrd檔案中(在cacti根目錄的rra資料夾下)。rrdtool對資料的更新和儲存就是對rrd檔案的處理,rrd檔案是大小固定的檔案檔案(Round Robin Archive),它能夠儲存的資料筆數在建立時就已經定義。
二、系統環境
1、Linux ubuntu-server 3.5.0-23-generic x86_64
三、apache、mysql、php安裝
參考:http://developer.51cto.com/art/201110/299303.htm
四、cacti安裝
enadmin@ubuntu-server:~$ apt-get update enadmin@ubuntu-server:~$ sudo apt-get install cacti
透過這種方式安裝會顯示依賴包
Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libperl5.14 libphp-adodb libsensors4 libsnmp-base libsnmp15 mysql-server php5-snmp rrdtool snmp Suggested packages: php5-ldap php5-adodb lm-sensors snmp-mibs-downloader The following NEW packages will be installed: cacti libperl5.14 libphp-adodb libsensors4 libsnmp-base libsnmp15 mysql-server php5-snmp rrdtool snmp 0 upgraded, 10 newly installed, 0 to remove and 113 not upgraded. Need to get 4,205 kB/4,574 kB of archives. After this operation, 12.6 MB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://mirrors.163.com/ubuntu/ precise-security/main php5-cli amd64 5.3.10-1ubuntu3.13 [3,051 kB] Get:2 http://mirrors.163.com/ubuntu/ precise-security/main php5-mysql amd64 5.3.10-1ubuntu3.13 [76.6 kB] Get:3 http://mirrors.163.com/ubuntu/ precise-security/main php5-gd amd64 5.3.10-1ubuntu3.13 [38.8 kB] Get:4 http://mirrors.163.com/ubuntu/ precise-security/main libapache2-mod-php5 amd64 5.3.10-1ubuntu3.13 [3,137 kB] Get:5 http://mirrors.163.com/ubuntu/ precise-security/main php5-common amd64 5.3.10-1ubuntu3.13 [1,774 kB] Get:6 http://mirrors.163.com/ubuntu/ precise-security/main libsnmp-base all 5.4.3~dfsg-2.4ubuntu1.2 [217 kB] Get:7 http://mirrors.163.com/ubuntu/ precise-security/main libsnmp15 amd64 5.4.3~dfsg-2.4ubuntu1.2 [1,334 kB] Get:8 http://mirrors.163.com/ubuntu/ precise-security/main mysql-server all 5.5.38-0ubuntu0.12.04.1 [11.4 kB] Get:9 http://mirrors.163.com/ubuntu/ precise-security/main php5-snmp amd64 5.3.10-1ubuntu3.13 [11.0 kB] Get:10 http://mirrors.163.com/ubuntu/ precise-security/main snmp amd64 5.4.3~dfsg-2.4ubuntu1.2 [162 kB] Fetched 9,813 kB in 16s (594 kB/s) Preconfiguring packages ... Package configuration
下面是安裝過程截圖
選中Apache2以後,接下來再會安裝一些軟體
Selecting previously unselected package libsensors4. (Reading database ... 58559 files and directories currently installed.) Unpacking libsensors4 (from .../libsensors4_1%3a3.3.1-2ubuntu1_amd64.deb) ... Preparing to replace php5-cli 5.3.10-1ubuntu3.10 (using .../php5-cli_5.3.10-1ubuntu3.13_amd64.deb) ... Unpacking replacement php5-cli ... Preparing to replace php5-mysql 5.3.10-1ubuntu3.10 (using .../php5-mysql_5.3.10-1ubuntu3.13_amd64.deb) ... Unpacking replacement php5-mysql ... Preparing to replace php5-gd 5.3.10-1ubuntu3.10 (using .../php5-gd_5.3.10-1ubuntu3.13_amd64.deb) ... Unpacking replacement php5-gd ... Preparing to replace libapache2-mod-php5 5.3.10-1ubuntu3.10 (using .../libapache2-mod-php5_5.3.10-1ubuntu3.13_amd64.deb) ... Unpacking replacement libapache2-mod-php5 ... Preparing to replace php5-common 5.3.10-1ubuntu3.10 (using .../php5-common_5.3.10-1ubuntu3.13_amd64.deb) ... Unpacking replacement php5-common ... Selecting previously unselected package libperl5.14. Unpacking libperl5.14 (from .../libperl5.14_5.14.2-6ubuntu2.4_amd64.deb) ... Selecting previously unselected package libphp-adodb. Unpacking libphp-adodb (from .../libphp-adodb_5.12-1_all.deb) ... Selecting previously unselected package libsnmp-base. Unpacking libsnmp-base (from .../libsnmp-base_5.4.3~dfsg-2.4ubuntu1.2_all.deb) ... Selecting previously unselected package libsnmp15. Unpacking libsnmp15 (from .../libsnmp15_5.4.3~dfsg-2.4ubuntu1.2_amd64.deb) ... Selecting previously unselected package mysql-server. Unpacking mysql-server (from .../mysql-server_5.5.38-0ubuntu0.12.04.1_all.deb) ... Selecting previously unselected package php5-snmp. Unpacking php5-snmp (from .../php5-snmp_5.3.10-1ubuntu3.13_amd64.deb) ... Selecting previously unselected package snmp. Unpacking snmp (from .../snmp_5.4.3~dfsg-2.4ubuntu1.2_amd64.deb) ... Selecting previously unselected package rrdtool. Unpacking rrdtool (from .../rrdtool_1.4.7-1_amd64.deb) ... Selecting previously unselected package cacti. Unpacking cacti (from .../cacti_0.8.7i-2ubuntu1_all.deb) ... Processing triggers for man-db ... Setting up libsensors4 (1:3.3.1-2ubuntu1) ... Setting up php5-common (5.3.10-1ubuntu3.13) ... Setting up php5-cli (5.3.10-1ubuntu3.13) ... Setting up libapache2-mod-php5 (5.3.10-1ubuntu3.13) ... * Reloading web server config apache2 ...done. Setting up php5-mysql (5.3.10-1ubuntu3.13) ... Setting up php5-gd (5.3.10-1ubuntu3.13) ... Setting up libperl5.14 (5.14.2-6ubuntu2.4) ... Setting up libphp-adodb (5.12-1) ... Setting up libsnmp-base (5.4.3~dfsg-2.4ubuntu1.2) ... Setting up libsnmp15 (5.4.3~dfsg-2.4ubuntu1.2) ... Setting up mysql-server (5.5.38-0ubuntu0.12.04.1) ... Setting up php5-snmp (5.3.10-1ubuntu3.13) ... Setting up snmp (5.4.3~dfsg-2.4ubuntu1.2) ... Setting up rrdtool (1.4.7-1) ... Setting up cacti (0.8.7i-2ubuntu1) ... dbconfig-common: writing config to /etc/dbconfig-common/cacti.conf Creating config file /etc/dbconfig-common/cacti.conf with new version Creating config file /etc/cacti/debian.php with new version granting access to database cacti for cacti@localhost: success. verifying access for cacti@localhost: success. creating database cacti: success. verifying database cacti exists: success. populating database via sql... done. dbconfig-common: flushing administrative password Creating config file /etc/cacti/apache.conf with new version Creating config file /etc/cacti/lighttpd.conf with new version * Reloading web server config apache2 ...done. Processing triggers for libc-bin ... ldconfig deferred processing now taking place
網頁安裝
在安裝完上面內容以後,請進入以下地址http://your-ip/cacti/再安裝
安裝snmpd
enadmin@ubuntu-server:~$ sudo apt-get install snmpd Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: snmpd 0 upgraded, 1 newly installed, 0 to remove and 146 not upgraded. Need to get 76.0 kB of archives. After this operation, 267 kB of additional disk space will be used. Get:1 http://mirrors.163.com/ubuntu/ precise-security/main snmpd amd64 5.4.3~dfsg-2.4ubuntu1.2 [76.0 kB] Fetched 76.0 kB in 0s (97.6 kB/s) Preconfiguring packages ... Selecting previously unselected package snmpd. (Reading database ... 59498 files and directories currently installed.) Unpacking snmpd (from .../snmpd_5.4.3~dfsg-2.4ubuntu1.2_amd64.deb) ... Processing triggers for ureadahead ... ureadahead will be reprofiled on next reboot Processing triggers for man-db ... Setting up snmpd (5.4.3~dfsg-2.4ubuntu1.2) ... update-rc.d: warning: snmpd stop runlevel arguments (1) do not match LSB Default-Stop values (0 1 6) * Starting network management services: enadmin@ubuntu-server:~$
測試snmp的服務
enadmin@ubuntu-server:~$ snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntu-server 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64" enadmin@ubuntu-server:~$
檢視localhost的監控畫面
在配置完畢上述內容以後,正常情況下應該可以看到cacti對於自身localhost的的預設監控了。我們進入到Graphs->Tree Mode->Default Tree->Host:Localhost當中檢視對於localhost的監控,如下圖所示。
常見問題解決
問題1:cacti無法正常生成圖片
在cacti當中看不到圖片,透過Turn Off Graph Debug Mode.提示報錯如下:
'/var/lib/cacti/rra/localhost_users_6.rrd': No such file or directory
解決方法:
這是因為許可權問題原因導致的,系統無法生成相應的rrd檔案,需要我們人工手動生成,具體操作方法如下:
Console->System Utilities->Rebuild Poller Cache