寫了一遍垃圾的CACTI安裝使用參考

zhang41082發表於2019-04-10

前段時間在PINER的BLOG上看到監控DB的圖形畫的很漂亮,詢問後得知是使用CACTI畫的,於是拿來學習。因為linux下的所有技術都很差,因此最後實現了一個執行在linux下,使用java來採集資料進行畫圖的咚咚。

網上有很多安裝文件,這裡記錄的僅僅是安裝過程中碰到的問題和cacti自定義繪圖的基本原理和方法。

[@more@]

CACTI安裝使用總結
linux:REDHAT AS4U4X86
cacti:0.86j 此版本的cacti需要的相關軟體版本:
1、RRDTool 1.0.49 或者 1.2.x 或者更高
2、MySQL 3.23 或者更高, 推薦使用4.0.20d 或者更高版本(可以使用更多的功能)
3、PHP 4.1 或者更高, 推薦使用4.3.6或者更高版本(可以使用更多功能)
4、需要安裝的軟體包括:httpd、php、php-mysql、php-snmp、mysql、mysql-server、net-snmp


官方安裝文件:
Extract the distribution tarball.

shell> tar xzvf cacti-version.tar.gz
Create the MySQL database:

shell> mysqladmin --user=root create cacti
Import the default cacti database:

shell> mysql cacti < cacti.sql
Optional: Create a MySQL username and password for Cacti.

shell> mysql --user=root mysql
mysql> GRANT ALL ON cacti.* TO IDENTIFIED BY 'somepassword';
mysql> flush privileges;
Edit include/config.php and specify the MySQL user, password and database for your Cacti configuration.

$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cacti";
Set the appropriate permissions on cacti's directories for graph/log generation. You should execute these commands from inside cacti's directory to change the permissions.

shell> chown -R cactiuser rra/ log/
(Enter a valid username for cactiuser, this user will also be used in the next step for data gathering.)

Add a line to your /etc/crontab file similar to:

*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1
Replace cactiuser with the valid user specified in the previous step.

Replace /var/www/html/cacti/ with your full Cacti path.

Point your web browser to:

Log in the with a username/password of admin. You will be required to change this password immediately. Make sure to fill in all of the path variables carefully and correctly on the following screen.


安裝依賴關係需要的包(可以在REDHAT的釋出版中找到):
1、安裝HTTP伺服器:apr-0.9.4-24.5.i386.rpm|apr-util-0.9.4-21.i386.rpm|httpd-suexec-2.0.52-25.ent.i386.rpm|httpd-2.0.52-25.ent.i386.rpm四個包(在DISK2中)
2、安裝PHP伺服器:php-4.3.9-3.15.i386.rpm|php-pear-4.3.9-3.15.i386.rpm|php-mysql-4.3.9-3.15.i386.rpm|php-snmp-4.3.9-3.15.i386.rpm
3、安裝PERL:perl-DBD-MySQL-2.9004-3.1.i386.rpm|perl-DBI-1.40-8.i386.rpm
4、安裝MYSQL:mysql-4.1.20-1.RHEL4.1.i386.rpm|mysql-server-4.1.20-1.RHEL4.1.i386.rpm
5、安裝NET-SNMP:net-snmp-5.1.2-11.EL4.7.i386.rpm|net-snmp-utils-5.1.2-11.EL4.7.i386.rpm|lm_sensors-2.8.7-2.40.3.i386.rpm
6、安裝RRDTOOL:freetype-2.1.10.tar.tar(tar -jxvf)|libart_lgpl-2.3.17.tar.gz|libpng-1.2.10.tar.gz|rrdtool-1.2.19.tar.gz,把編譯通不過提示路徑不存在的地方的/usr/include改為/usr/local/include(直接修改configure檔案),對應的每個LIB都有兩個地方要改,然後把/usr/local/rrdtool-1.2.19/bin目錄下的可執行檔案全部複製到/usr/bin和/usr/local/bin目錄下,同時把/usr/local/lib/libpng12.so.0複製到/usr/lib/libpng12.so.0,覆蓋原檔案。
7、安裝cacti:參照上面的文件
8、更換CACTID需要包mysql-devel-4.1.20-1.RHEL4.1.i386.rpm|net-snmp-devel-5.1.2-11.EL4.7.i386.rpm|beecrypt-devel-3.1.0-6.i386.rpm|elfutils-devel-0.97.1-3.i386.rpm|elfutils-libelf-devel-0.97.1-3.i386.rpm(需要注意的是有時候在命令列測試執行沒問題,但是新增到CRONTAB執行卻有問題,有可能是bug。目前的解決方法是,自己定義一個可執行指令碼,然後把這個指令碼新增到crontab中去。範例:
. /home/cactiuser/.bash_profile
/usr/bin/php /var/www/html/cacti/poller.php
/home/cactiuser/j2sdk1.4.2_13/bin/java OracleUpdateCactiTable)

在bash_profile中記錄了java執行的classpath:

export CLASSPATH=/var/www/html/cacti/scripts/:/var/www/html/cacti/scripts/classes12.jar
9、更換完後需要配置/ETC/CACTID.CONF,並且好像要把這個配置檔案複製到/VAR/SNMP/CACTID.CONF,並且修改/VAR/SNMP和CACTID.CONF的檔案許可權為最大。
10、修改POLLER配置中選擇CACTID來執行POLLER.PHP,然後在PATH中設定CACTID的路徑,並把DATA INPUT METHOD中的關於路徑的都更改為絕對路徑。
11、檢查RRA下的檔案的生成以及採集後的檔案時間是否更新,另外RRA的許可權和RRA下檔案的屬主、許可權是否正確。
11、最後執行PHP POLLER.PHP來測試(可以開啟最大的DEBUG日誌,也可以直接在最後繪圖那裡進行TRUN ON DEBUG進行除錯)

使用:
1、cacti的流程是從Data Input Methods開始,建立一個資訊採集的方法先,裡面定義了採集的方法和採集需要的指令碼(注意:如果使用CACTID最好使用可執行檔案的全路徑),可以定義一個輸入和輸出。輸入可以為你執行這個指令碼帶入引數,比如連線資料庫的引數,這樣只要設定這個引數就可以連上不同的資料庫了。輸出是資訊採集的輸入結果,以列名+冒號+採集結果的形式返回。
2、然後是資料模版,裡面需要選擇Data Input Methods,如果資料輸入方法中有引數的,這裡可以設定引數,也可以選擇忽略這個設定,然後到最後配置圖形的時候再輸入特定的引數。
3、建立圖形模版,裡面需要定義圖形的ITEM,可以使用AREA方式先畫一個框,然後把其他值以STACK的方式往前面的AREA上面累加。也可以使用GPRINT方式在最下面的備註那裡輸出些資訊(一般是輸入最後採集時候的值)。這裡可以定義CDEF function,這個函式可以把你顯示的ITEM進行轉換,比如把8k轉換成8192位元組等,這個函式可以自定義的(可以參考Graph Management中的CDEFs中的定義來進行自定義)。
4、建立DATASOURCE,然後建立GRAPH。
最後可以把他們放到一個TREE上


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-911764/,如需轉載,請註明出處,否則將追究法律責任。

相關文章