標籤: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# mysqlmysql> create database cactidb;mysql> grant all on cactidb.* to [email protected]‘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.comTue Jun 24 16:38:00 CST 2014# service httpd restart
接下來我們可以在瀏覽器上使用Cacti了
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/BB/wKiom1OpOzyTrC9wAAQeEJs2sgo697.jpg" title="1.png" alt="wKiom1OpOzyTrC9wAAQeEJs2sgo697.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/30/BA/wKioL1OpOzPSIMWeAAIRvhlHekg066.jpg" title="1.png" alt="wKioL1OpOzPSIMWeAAIRvhlHekg066.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/30/BB/wKiom1OpO-fiNsT8AATkxBEPa-8315.jpg" title="1.jpg" alt="wKiom1OpO-fiNsT8AATkxBEPa-8315.jpg" />
如查是用yum安裝net-snmp/net-snmp-utils/php/rrdtool的預設情況下是不需要修改的,如果你是有源碼安裝則需要改變相應位置;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/BB/wKioL1OpPCCxbXI_AAKZ-heKZ_Q068.jpg" title="1.jpg" alt="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服務是否正常;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/30/C0/wKioL1OpQcLgJeiQAAo04yfeAX8532.jpg" title="1.jpg" alt="wKioL1OpQcLgJeiQAAo04yfeAX8532.jpg" />
剛開始部署完成資料產生是很慢的,當然了我們根據rrdtool相關知識進行跟蹤與查看
首先查看本機目前時間
# date +%s# rrdtool fetch /var/www/html/cacti/rra/localhost_mem_swap_4.rrd AVERAGE查看最下面的一個時間戳記,是否與本機目前時間戳接近了....
過一段時間我們就可以看到映像了,高興吧!!!
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/C4/wKioL1OpR-qBOCcIAAi5C6XZsNA386.jpg" title="1.jpg" alt="wKioL1OpR-qBOCcIAAi5C6XZsNA386.jpg" />
執行個體1:自定TCP Established串連數
1、建立指令碼
# snmpnetstat -v 2c -c public -Can -Cp tcp localhostActive Internet (tcp) Connections (including servers)Proto Local Address Remote Address (state)tcp *.22 *.* LISTENtcp *.111 *.* LISTENtcp *.3306 *.* LISTENtcp *.51507 *.* LISTENtcp 127.0.0.1.25 *.* LISTENtcp 127.0.0.1.199 *.* LISTENtcp 127.0.0.1.631 *.* LISTENtcp 192.168.100.14.22 192.168.100.1.49676 ESTABLISHED# vim tcp.sh#!/bin/bashES=`snmpnetstat -v 2c -c public -Can -Cp tcp $1 |grep -i ‘established‘ |wc -l`echo -n "established:$ES"# chmod +x tcp.sh # ./tcp.sh localhostestablished:1[[email protected] ~]## 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”
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/30/E6/wKiom1OphZmRcNrtAAOrMuVe5_U248.jpg" title="1.jpg" alt="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中的選項,選擇你需要參數;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/E8/wKioL1OpiN2jA983AANldczd1NU740.jpg" title="1.jpg" alt="wKioL1OpiN2jA983AANldczd1NU740.jpg" />
點擊“Create”完成指令碼參數設定;
Output Fields
Add ->
Field [Output]: 指定指令碼輸出的標籤名,established;
Friendly Name: 指定一個友好的名字;
點擊“Create”
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/30/E9/wKiom1Opi6CzPcY3AAPCExlA-Rw747.jpg" title="1.jpg" alt="wKiom1Opi6CzPcY3AAPCExlA-Rw747.jpg" />
點擊“Save” --> 返回“Save Successful.”
查看“Data Input Methods”是否有我們剛才添加的"SNMP - Connections"
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/E9/wKiom1OpjGvDjVCWAAO6JBYbC9Y507.jpg" title="1.jpg" alt="wKiom1OpjGvDjVCWAAO6JBYbC9Y507.jpg" />
3、建立資料範本
接下來,我們繼續建立“Data Templates”
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/E9/wKiom1OpjPax7EhLAAQ-1suPYKQ378.jpg" title="1.jpg" alt="wKiom1OpjPax7EhLAAQ-1suPYKQ378.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/30/EA/wKiom1OpjcmAOSmpAARzQB6VqPo840.jpg" title="1.jpg" alt="wKiom1OpjcmAOSmpAARzQB6VqPo840.jpg" />
需要注意Name,我填入的是"|host_discription| - TCP Connections" 兩豎中間帶表的是一個變數:
Associated RRA‘s 需要注意你的解析度,我們預設是5分鐘一次,顯然1分鐘一次不適用,所以不需要選;
4、建立資料來源
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/EA/wKiom1OpjifxZT73AAMwwIHb5LQ877.jpg" title="1.jpg" alt="wKiom1OpjifxZT73AAMwwIHb5LQ877.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/30/EA/wKiom1OpjmWxR2JEAAQ9l2XEK88150.jpg" title="1.jpg" alt="wKiom1OpjmWxR2JEAAQ9l2XEK88150.jpg" />
5、建立圖片模板
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/EB/wKiom1Opj6_TSmGfAAdWRyfRvdY498.jpg" title="1.jpg" alt="wKiom1Opj6_TSmGfAAdWRyfRvdY498.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/30/EB/wKiom1Opj--QG2cvAAKRLtq6Dls278.jpg" title="1.jpg" alt="wKiom1Opj--QG2cvAAKRLtq6Dls278.jpg" />
6、完成
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/30/EB/wKiom1OpkDjDgRa2AAf4Ud3JkHc453.jpg" title="1.jpg" alt="wKiom1OpkDjDgRa2AAf4Ud3JkHc453.jpg" />
如果我們也要做到像系統那樣,有Current,Average,Maximun等資訊,我們需要繼續在映像模板中建立;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/30/EC/wKioL1OplCfxmP38AAP98OAyRIg010.jpg" title="1.jpg" alt="wKioL1OplCfxmP38AAP98OAyRIg010.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/30/ED/wKiom1OplK-h3-xfAAP8s1cqF8I448.jpg" title="1.jpg" alt="wKiom1OplK-h3-xfAAP8s1cqF8I448.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/30/EC/wKioL1OplVqQgDQoAAgCIpZnvR8178.jpg" title="1.jpg" alt="wKioL1OplVqQgDQoAAgCIpZnvR8178.jpg" />
如果你擔心資料沒有,我們也可以手動看一下
# rrdtool fetch cacti_tcpestablished_8.rrd AVERAGE1403621400: -nan1403621700: -nan1403622000: -nan1403622300: -nan1403622600: -nan[[email protected] rra]# # date +%s1403622578
如果看到rrdtool查看到最下面的數值接近date查看到的數值時,說明己經有數值記錄到rrd檔案當中了。
這裡我們可以使用壓力測試使ESTABLISHED數量增加
本文出自 “jun.wang” 部落格,請務必保留此出處http://junwang.blog.51cto.com/5050337/1430537