因應站台流量越來越大,除了在硬體效能上的監控,也可以抓取 TCP connection 在 cacti 繪製
其實原理和 netstat -tun | grep “192.168.10.10:80” | wc -l 的是一樣的
在這篇將監控 IP 並且指定 80 port
Cacti 加入 TCP Connection Templates
Step.1 先下載 TCP Connection Templates 範本 & 執行檔
Step.2 將 tcp_conns.sh 放到 /var/www/html/cacti/scripts/
$ unzip tcp_conns.zip $ cd tcp_conns $ mv tcp_conns.sh /var/www/html/cacti/scripts/ $ chown nginx.nginx /var/www/html/cacti/scripts/tcp_conns.sh
Step.3 再來到 Cacti 管理介面將 TCP Connection Templates 檔匯入
到 「Import Templates」→「Import Templates from Local File」→ 選擇檔案匯入。
Step.4 匯入模板之後就會顯示已新增 Data Input、Data Template、Graph Template
由於我之前已經加入過,所以會變成 update
Step.5 然後到 Devices 去 Create Graphs for this Host
新建剛剛新增的 SNMP – Active HTTP Connections 模板,打勾後按 Create
Step.6 填入你要監控的 IP 跟 Port,然後建立
Step.7 過幾分鐘等待 Cacti 畫出圖,搞定!
如果一直無法出圖,你也可以手動用 snmpwalk 檢測,查看 tcp_conns.sh 執行的程式
#!/bin/sh conns=`/usr/bin/snmpwalk -On -c $4 -v 2c $3 .1.3.6.1.2.1.6.13.1.3.$1.$2 | /usr/bin/wc -l` /bin/echo $conns
$1 = 被檢測端的來源 IP,如你要抓取 192.168.0.1 的 tcp 就用 192.168.0.1
$2 = 被檢測端的來源 Port
$3 用於 snmp 通訊的 IP 位置
$4 snmp community
範例
$ ./tcp_conns.sh 192.168.0.1 80 192.168.0.1 public
此外也可以搜尋 OID 去畫出自己想要的圖
ipMonitor Support Portal :: Mibs
Debug:
Q: 無法畫出圖? 開啟 Graphic Template Debug Mode 查看紀錄顯示
RRDTool Says:
ERROR: the RRD does not contain an RRA matching the chosen CF
Ans: 這是由於統計的 CF Type 不同,到 Graph Template Items 將 CF Type 改為 AVERAGE 即可。