cacti是由php開發的網頁,執行於la/nmp平台,可利用snmp獲取資料,週期性的執行能夠取得資料的命令,將取回的資料儲存至rrd檔案當中,利用rrdtool繪出圖形。
snmp原理詳解
rrdtool原理詳解
lamp環境已經編譯搭建
虛擬主機配置
documentroot
"/web/vhosts/cacti"
directoryindex index.shtml index.html index.php
errorlog
"logs/cacti_error.log"
customlog
"logs/cacti_access.log" common
proxyrequests
off proxypassmatch^/(.*\.php)$fcgi:
options
followsymlinks includes
allowoverride
allrequire
all granted
安裝snmp並配置
# yum -y install rrdtool net-snmp net-snmp-libs net-snmp-utils
修改配置檔案/etc/snmp/snmpd.conf中的預設community,後啟動服務
eg: com2sec notconfiguser 127.0
.0.1 mypublic
# chkconfig snmpd on
# service snmpd start
安裝cacti,解壓安裝包到虛擬主機的根目錄
# mkdir -p /web/vhosts/
# tar xvf cacti-0.8.8h.tar.gz -c /web/vhosts/
# ln -sv /web/vhosts/cacti-0.8.8h /web/vhosts/cacti
初始化資料,更新授權
# cd /web/vhosts/cacti
# mysqladmin create cactidb
# mysql cactidb < cacti.sql
# mysql -e "grant all on cactidb.* to cactiuser@localhost identified by 'cactipasswd'"
# mysqladmin flush-privileges
建立系統使用者cactiuser,修改cacti安裝目錄下rra和log目錄的屬主屬組
# useradd cactiuser
# id cactiuser
uid=501(cactiuser) gid=501(cactiuser) groups=501(cactiuser)
# chown -r cactiuser:cactiuser rra log
修改cacti配置檔案中的mysql連線引數
# cat include/config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipasswd";
$database_port = "3306";
$database_ssl = false;
$url_path = "/"; #此處修改了cacti預設訪問路徑,不需要在訪問位址後加/cacti
以cactiuser使用者身份新增cacti收集資料的任務計畫
# echo '*/5 * * * * /usr/local/php/bin/php /web/vhosts/cacti/poller.php &>/dev/null' > /var/spool/cron/cactiuser
# echo "date.timezone = asia/shanghai" >> /etc/php.ini 修改php時區
# hwclock -w #同步硬體時間到系統
在瀏覽器中輸入http://ip按照提示進行安裝
編輯指令碼獲取tcp資料
# cd /web/vhosts/cacti/scripts/
# cat tcpcon.sh
#!/bin/bash
#$1: hostname/ip
#$2:snmp community
snmpnetstat=/usr/bin/snmpnetstat
tf=`mktemp /tmp/$1_tcpcon.******x`
$snmpnetstat -v 2c -c $2 -can -cp tcp $1 > $tf
est=`grep -i 'established'
$tf |wc -l`
twait=`grep -i 'timewait'
$tf |wc -l`
synrecv=`grep -i 'synreceived'
$tf |wc -l`
echo -n "established:$est"
echo -n "timewait:$twait"
echo -n "synreceived:$synrecv"
console -> data input methods -> (edit)
定義data input methods,新增snmp-tcp connections,資料收集方法為指令碼,指令碼路徑為cacti安裝目錄下的tcpcon.sh,並傳遞兩個引數
定義資料模板,關聯資料輸入方法,新增3個資料來源
console -> data sources -> (edit)定義資料源
console -> graph templates -> (edit)定義影象模板
Cacti監控Tcp併發連線數
我的環境是 version0.8.7i 步驟一 開啟get tcp connections,修改一下cactidir的路徑成你的實際路徑哦.步驟二 進入cacti後台,import export import templates 匯入cacti graph template tcp connecti...
Tcp主動關閉連線導致TIME WAIT狀態
最近寫了乙個程序,需要通過20個執行緒迴圈600個使用者獲取每乙個使用者的xx資訊,是通過socket連線oracle mdb伺服器獲取的,但是在本機windows上測試發現大量的time wait狀態,按照網上的說法,調了登錄檔的引數,但是無濟於事,socket.setreuseaddress方法...
當心!TCP本機客戶端連線本機伺服器
上週,在我們進行效能測試的時候,發現了乙個問題。我們的伺服器上啟了乙個redis服務端,偵聽0.0.0.0的1234埠,同處在本機的另外乙個程序會頻繁發起到該服務端的短連線,結果導致了兩個問題 1.大量的time wait狀態的連線 2.發起連線的程序的cpu佔用率接近100 這兩個結果嚴重影響了我...