Cacti深入學習



1、安裝LAMP與Cacti環境

# yum install -y httpd php php-mysql php-snmp php-xml php-gd mysql mysql-server gd gd-devel
# tar xf cacti-0.8.8b.tar.gz -C /var/www/html/
# cd /var/www/html/
# mv cacti-0.8.8b/ cacti
# useradd cactiuser

# mysql
mysql> create database cactidb;
mysql> grant all on cactidb.* to cactiuser@'localhost' identified by 'asdasd';
mysql> flush privileges;
mysql> use cactidb;
mysql> source /var/www/html/cacti/cacti.sql
# cd /var/www/html/cacti/
# vim include/config.php 
    $database_type = "mysql";
    $database_default = "cactidb";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "asdasd";
    $database_port = "3306";
    $database_ssl = false;
# chown -R root.root .
# chown -R cactiuser.cactiuser log rra
# vim /etc/php.ini 
    date.timezone = Asia/Shanghai
# date 0624163814                    //確保時間正確,如果你可以連接ntp服務器可以使用ntpdate time.windows.com
Tue Jun 24 16:38:00 CST 2014
# service httpd restart

接下來我們可以在瀏覽器上使用Cacti了

wKiom1OpOzyTrC9wAAQeEJs2sgo697.jpg

wKioL1OpOzPSIMWeAAIRvhlHekg066.jpg

wKiom1OpO-fiNsT8AATkxBEPa-8315.jpg

如查是用yum安裝net-snmp/net-snmp-utils/php/rrdtool的默認情況下是不需要修改的,如果你是有源碼安裝則需要改變相應位置;

wKioL1OpPCCxbXI_AAKZ-heKZ_Q068.jpg

# su - cactiuser
# crontab -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null //如果我們有很多主機需要監控,我們可以在cacti官網上下載spine,它有多線程功能;
$ tail -f /var/www/html/cacti/log/cacti.log   //每執行一次,它都會產生一條日誌信息;
06/24/2014 05:03:07 PM - SYSTEM STATS: Time:0.8103 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
此時,我們的Cacti己部署完成,接下來繼續深入瞭解它的使用。



2、本機配置:

Devices->localhost

如果SNMP報錯,查看communicaty與snmpd服務是否正常;

wKioL1OpQcLgJeiQAAo04yfeAX8532.jpg

剛開始部署完成數據產生是很慢的,當然了我們根據rrdtool相關知識進行跟蹤與查看

首先查看本機當前時間

# date +%s
# rrdtool fetch /var/www/html/cacti/rra/localhost_mem_swap_4.rrd AVERAGE
查看最下面的一個時間戳,是否與本機當前時間戳接近了....

過一段時間我們就可以看到圖像了,高興吧!!!

wKioL1OpR-qBOCcIAAi5C6XZsNA386.jpg


實例1:自定TCP Established連接數


1、創建腳本

# snmpnetstat -v 2c -c public -Can -Cp tcp localhost
Active Internet (tcp) Connections (including servers)
Proto Local Address          Remote Address         (state)
tcp   *.22                   *.*                   LISTEN
tcp   *.111                  *.*                   LISTEN
tcp   *.3306                 *.*                   LISTEN
tcp   *.51507                *.*                   LISTEN
tcp   127.0.0.1.25           *.*                   LISTEN
tcp   127.0.0.1.199          *.*                   LISTEN
tcp   127.0.0.1.631          *.*                   LISTEN
tcp   192.168.100.14.22      192.168.100.1.49676   ESTABLISHED
# vim tcp.sh
#!/bin/bash
ES=`snmpnetstat -v 2c -c public -Can -Cp tcp $1 |grep -i 'established' |wc -l`
echo -n "established:$ES"
# chmod +x tcp.sh 
# ./tcp.sh localhost
established:1[root@station14 ~]#
# cp tcp.sh /var/www/html/cacti/scripts/tcp_conn.sh


2、創建數據輸入方法

Console -> Data Input Methods ->"Add"

Name:            SNMP - Connections

Input Type:      這裏是自定義腳本,所以選擇Script/Command

Input String:    /bin/bash <path_cacti>/scripts/tcp_conn.sh <hostname>    //這裏定義腳本如何執行

點擊“Save”     

wKiom1OphZmRcNrtAAOrMuVe5_U248.jpg

然後添加

Input Fields:    表示上面Input String中輸入的參數

Add ->

    Field [Input]:    腳本的輸入參數,這裏我們只有一個參數hostname,如果你的腳本需要多個參數,則需要多次Add Input Field;

    Friendly Name:    輸入一個爲數據輸入方法見明知意的名字,這裏我們用“HostName or IP”;

    Regular Expression Match:    匹配表達式,這裏我們可以不填寫;

    Allow Empty Input:    允許空參數;

    Special Type Code:    如果沒有填寫Regular Expression Match,它會自動繼承Host Templates中的選項,選擇你需要參數;

wKioL1OpiN2jA983AANldczd1NU740.jpg

 點擊“Create”完成腳本參數設定;  

Output Fields

Add ->

    Field [Output]: 指定腳本輸出的標籤名,established;

    Friendly Name:  指定一個友好的名字;  

點擊“Create”

wKiom1Opi6CzPcY3AAPCExlA-Rw747.jpg

點擊“Save” --> 返回“Save Successful.”

查看“Data Input Methods”是否有我們剛纔添加的"SNMP - Connections"

wKiom1OpjGvDjVCWAAO6JBYbC9Y507.jpg


3、創建數據模板

接下來,我們繼續創建“Data Templates”

wKiom1OpjPax7EhLAAQ-1suPYKQ378.jpg


wKiom1OpjcmAOSmpAARzQB6VqPo840.jpg

上圖需要注意Name,我填入的是"|host_discription| - TCP Connections" 兩豎中間帶表的是一個變量:

Associated RRA's 需要注意你的解析度,我們默認是5分鐘一次,顯然1分鐘一次不適用,所以不需要選;


4、創建數據源

wKiom1OpjifxZT73AAMwwIHb5LQ877.jpg

wKiom1OpjmWxR2JEAAQ9l2XEK88150.jpg


5、創建圖片模板

wKiom1Opj6_TSmGfAAdWRyfRvdY498.jpg


wKiom1Opj--QG2cvAAKRLtq6Dls278.jpg

6、完成

wKiom1OpkDjDgRa2AAf4Ud3JkHc453.jpg

如果我們也要做到像系統那樣,有Current,Average,Maximun等信息,我們需要繼續在圖像模板中創建;

wKioL1OplCfxmP38AAP98OAyRIg010.jpg

wKiom1OplK-h3-xfAAP8s1cqF8I448.jpg

wKioL1OplVqQgDQoAAgCIpZnvR8178.jpg

如果你擔心數據沒有,我們也可以手動看一下

# rrdtool fetch cacti_tcpestablished_8.rrd AVERAGE
1403621400: -nan
1403621700: -nan
1403622000: -nan
1403622300: -nan
1403622600: -nan
[root@station14 rra]# 
# date +%s
1403622578

如果看到rrdtool查看到最下面的數值接近date查看到的數值時,說明己經有數值記錄到rrd文件當中了。

這裏我們可以使用壓力測試使ESTABLISHED數量增加






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