天天看點

安裝配置cacti-0.8.8a

環境說明:

作業系統:Centos 5.8_x86_64

cacti版本:cacti-0.8.8a

spine版本:cacti-spine-0.8.8a

說明:這裡隻介紹如何安裝配置cacti,并不涉及如何配置監控遠端主機。

<b>一、安裝依賴環境包:</b>

yum install httpd php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-utils php-gd vixie-cron

如果為編譯安裝apache,需要指定--enable-sockets

yum install rrdtool --nogpgcheck

service mysqld start

service httpd start

service crond start

service snmpd start

chkconfig httpd on

chkconfig mysqld on

chkconfig snmpd on

chkconfig crond on

确定php擴充子產品:

  mysql,SNMP,XML,Session,Sockets,GD,LDAP(如果安裝了php-ldap子產品的話)

給MySQL使用者root添加密碼:

mysqladmin --user=root password centos

<b></b>

二、安裝配置cacti

tar xf cacti-0.8.8a.tar.gz -C /var/www/html/

mv /var/www/html/cacti-0.8.8a /var/www/html/cacti

建立cacti資料庫

mysqladmin -uroot -p create cacti    

如果是中文版則,需要如下指令建立

mysql&gt; create database cacti default character set utf8;

導入sql語句

mysql -uroot -p cacti &lt; /var/www/html/cacti/cacti.sql

mysql&gt; GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'centos';

mysql&gt; flush privileges;

vim /var/www/html/cacti/include/config.php  &lt;&lt;

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "centos";

useradd cacti

cd /var/www/html/cacti

chown -R cacti rra/ log/

echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &amp;&gt; /dev/null" &gt; /var/spool/cron/cacti

注意:首次執行poller.php時應使用cacti使用者,否則生成的rrd檔案cacti将沒有寫入權限!

<b>三、配置snmp使可以監控本機</b>

vim /etc/snmp/snmpd.conf  &lt;&lt;

com2sec notConfigUser  default         public   ==&gt;  改為

com2sec notConfigUser  127.0.0.1       public

<b>四、配置使用spine來執行擷取資料</b>

依賴關系:

mysql-devel

net-snmp-devel

編譯安裝

tar -xf cacti-spine-0.8.8a.tar.gz -C /usr/src/

cd /usr/src/cacti-spine-0.8.8a/

./configure

make &amp;&amp; make install

提供配置檔案

cd /usr/local/spine/etc/

cp spine.conf.dist spine.conf

vi spine.conf     &gt;&gt;   修改一下内容

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         centos

DB_Port         3306

DB_PreG         0

啟用spine

登入cacti的網頁,點選Settings,在頁面上方點選Paths,找到Alternate Poller Path,寫入spine的路徑:/usr/local/spine/bin/spine,然後點選Save儲存。

再點選頁面上方的Poller,找到Poller Typer項,在下拉清單中選擇spine,然後點選Save儲存。

通過浏覽器通路http://serverip/cacti

<b>五、被監控端配置</b>

yum install net-snmp

vim /etc/snmp/snmpd.conf   ==&gt;

com2sec  notConfigUser   192.168.56.201(監控端IP)    public

view all included  .1   80

access notConfigGroup "" any noauth exact all none none

<b>六、相關知識點</b>

測試snmp通過如下指令:

snmpwalk -v 2c -c public localhost system

模版:

    圖形模版:圖是如何繪制

    資料模版:定義如何擷取資料及儲存方法

    主機模版:歸好類的圖形和資料模版

擷取資料--&gt;儲存資料--&gt;繪圖

自定義順序:

1、定義腳本收集資料,執行腳本輸出結果為:XXX:0-9 XXX:0-9

    Name:輸入資料收集方法名稱

    InputType:擷取資料的方法

    InputString:/bin/bash &lt;path_cacti&gt;/scripts/xx.sh &lt;hostname&gt; &lt;snmp_community&gt;

    建立完成後,添加輸入字段和輸出字段:

    輸入字段為腳本引用的各個變量

    輸出字段為腳本執行後生成的各個字段,名字要和輸出的名字一緻

2、定義資料模版

    根據輸出字段添加各自的資料源

3、定義資料源

4、定義圖像模版

    1、建立圖像模闆

        Vertical Lable  tcp_3 conn

    2、添加圖像(Graph Template Items)

        Text Format:該顔色線條的說明

        Graph Item Type:圖像類型:

            GPRINT:列印,類似目前值,最大值,平均值

            COMMENT:顯示到圖形中的

4、圖形管理添加圖形

    定義資料源所關聯的圖像

常用相關指令:

1、檢視一rrd檔案的最後一次或第一次的更新時間

rrdtool last localhost_load_1min_5.rrd | xargs -i date -d '1970-01-01 {} sec utc'

rrdtool first localhost_load_1min_5.rrd | xargs -i date -d '1970-01-01 {} sec utc'

2、檢視rrd檔案的内容

rrdtool fetch XXX.rrd AVERAGE

2、檢視rrd檔案結構資訊

rrdtool info XXX.rrd    &gt;&gt;

filename = "eth0.rrd"

rrd_version = "0003"

step = 300                                        # RRDtool 希望每5分鐘收到一個資料

last_update = 1163862985          # 這是最近一次更新的 timestamp 。可以用 date 轉換為具體的時間

ds[eth0_in].type = "COUNTER"              # 有一個名為 eth0_in 的 DS,DST是 COUNTER

ds[eth0_in].minimal_heartbeat = 600       # hearbeat 時間是600 秒

ds[eth0_in].min = 0.0000000000e+00        # eth0_in 的最小值是 0 (bytes)

ds[eth0_in].max = 1.2500000000e+07        # eth0_in 的最大值是 1250000000 (bytes)

ds[eth0_in].last_ds = "UNKN"      

ds[eth0_in].value = 0.0000000000e+00

ds[eth0_in].unknown_sec = 85

ds[eth0_out].type = "COUNTER"

ds[eth0_out].minimal_heartbeat = 600

ds[eth0_out].min = 0.0000000000e+00

ds[eth0_out].max = 1.2500000000e+07

ds[eth0_out].last_ds = "UNKN"

ds[eth0_out].value = 0.0000000000e+00

ds[eth0_out].unknown_sec = 85

rra[0].cf = "AVERAGE"                             # 第一個 RRA 的編号是0,不是1。

rra[0].rows = 600                                 # 共儲存 600 個記錄

rra[0].pdp_per_row = 1                    # 每個 CDP 由一個 PDP 統計得出

rra[0].xff = 5.0000000000e-01             # 隻要目前interval 的 PDP 為 unknown ,則該 CDP 的值也是unknown

rra[0].cdp_prep[0].value = NaN

rra[0].cdp_prep[0].unknown_datapoints = 0

rra[0].cdp_prep[1].value = NaN

rra[0].cdp_prep[1].unknown_datapoints = 0

rra[1].cf = "AVERAGE"                             # 第二個 RRA 的編号是 1。同樣也是 AVERAGE 型。

rra[1].rows = 600                                 # 也是儲存 600 個記錄

rra[1].pdp_per_row = 4                    # 每個 CDP 由4個 PDP 的求平均值得出

rra[1].xff = 5.0000000000e-01             # 每個 CDP 最多允許2個 PDP 為 unknown ,超過則該 CDP 為unknown