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了
如查是用yum安裝net-snmp/net-snmp-utils/php/rrdtool的默認情況下是不需要修改的,如果你是有源碼安裝則需要改變相應位置;
# 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服務是否正常;
剛開始部署完成數據產生是很慢的,當然了我們根據rrdtool相關知識進行跟蹤與查看
首先查看本機當前時間
# date +%s # rrdtool fetch /var/www/html/cacti/rra/localhost_mem_swap_4.rrd AVERAGE 查看最下面的一個時間戳,是否與本機當前時間戳接近了....
過一段時間我們就可以看到圖像了,高興吧!!!
實例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”
然後添加
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中的選項,選擇你需要參數;
點擊“Create”完成腳本參數設定;
Output Fields
Add ->
Field [Output]: 指定腳本輸出的標籤名,established;
Friendly Name: 指定一個友好的名字;
點擊“Create”
點擊“Save” --> 返回“Save Successful.”
查看“Data Input Methods”是否有我們剛纔添加的"SNMP - Connections"
3、創建數據模板
接下來,我們繼續創建“Data Templates”
上圖需要注意Name,我填入的是"|host_discription| - TCP Connections" 兩豎中間帶表的是一個變量:
Associated RRA's 需要注意你的解析度,我們默認是5分鐘一次,顯然1分鐘一次不適用,所以不需要選;
4、創建數據源
5、創建圖片模板
6、完成
如果我們也要做到像系統那樣,有Current,Average,Maximun等信息,我們需要繼續在圖像模板中創建;
如果你擔心數據沒有,我們也可以手動看一下
# 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數量增加