安裝配置cacti-0.8.8a

環境說明:
操作系統:Centos 5.8_x86_64
cacti版本:cacti-0.8.8a
spine版本:cacti-spine-0.8.8a

說明:這裏只介紹如何安裝配置cacti,並不涉及如何配置監控遠程主機。


一、安裝依賴環境包:

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

二、安裝配置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> create database cacti default character set utf8;

導入sql語句
mysql -uroot -p cacti < /var/www/html/cacti/cacti.sql
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'centos';
mysql> flush privileges;

vim /var/www/html/cacti/include/config.php  <<

$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 &> /dev/null" > /var/spool/cron/cacti
注意:首次執行poller.php時應使用cacti用戶,否則生成的rrd文件cacti將沒有寫入權限!

三、配置snmp使可以監控本機

vim /etc/snmp/snmpd.conf  <<

com2sec notConfigUser  default         public   ==>  改爲
com2sec notConfigUser  127.0.0.1       public

四、配置使用spine來執行獲取數據

依賴關係:
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 && make install

提供配置文件
cd /usr/local/spine/etc/
cp spine.conf.dist spine.conf
vi spine.conf     >>   修改一下內容

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

五、被監控端配置

yum install net-snmp

vim /etc/snmp/snmpd.conf   ==>

com2sec  notConfigUser   192.168.56.201(監控端IP)    public
view all included  .1   80
access notConfigGroup "" any noauth exact all none none

六、相關知識點

測試snmp通過如下命令:
snmpwalk -v 2c -c public localhost system


模版:
    圖形模版:圖是如何繪製
    數據模版:定義如何獲取數據及保存方法
    主機模版:歸好類的圖形和數據模版

獲取數據-->保存數據-->繪圖

自定義順序:
1、定義腳本收集數據,執行腳本輸出結果爲:XXX:0-9 XXX:0-9
    Name:輸入數據收集方法名稱
    InputType:獲取數據的方法
    InputString:/bin/bash <path_cacti>/scripts/xx.sh <hostname> <snmp_community>
    創建完成後,添加輸入字段和輸出字段:
    輸入字段爲腳本引用的各個變量
    輸出字段爲腳本執行後生成的各個字段,名字要和輸出的名字一致
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    >>

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章