配置http dstat實時顯示layer7和layer4的流量
@(内伤)昨日google尋找使用c實現的cc腳本,找了很長時間也沒找到,然後找到了layer7的實時狀態統計的配置方法,今天搜來搜去也找到了layer4的配置方法,文件很老,修改了壹下午,最後終於可以使用了.
準備
首先虛擬主機的可以不用看了,至少需要shell權限和php配置文件權限.
文件下載:dstat.zip
layer4
首先使用 find /sys/ -name rx_bytes
搜索網卡下載流量文件,這個文件在很久以前是固定目錄的,但後來目錄改變了
搜索到之後打開下載的dstat.zip裏的data/layer4.php,修改第8行和第10行,將/sys/devices/pci0000:00/0000:00:03.0/net/enp0s3/statistics/rx_bytes
替換為妳搜索到的實際路徑
php需要開啟shell_exec函數的支持,可以嘗試file和file_get_content,如果這兩個函數能正常讀取網卡下載文件的話可以將shell_exec替換掉.
然後修改壹下layer4.html裏面js路徑就可以了
layer7
apache的用戶就不要看了,我沒辦法(apache沒有人權).
layer7需要nginx的stub_status模塊支持,此模塊編譯時默認忽略,如需啟用需要在編譯時加入--with-http_stub_status_module
編譯方法請看上壹篇博文,另外bt-panel的nginx自帶此模塊
在nginx的主機配置文件裏加入以下配置並重載
location ~ /tools/nginx_status{
stub_status on;
access_log off;
}
然後修改layer7.html裏第24行的路徑
流量墻說明
layer7可以當流量墻用,但是layer4不可以
layer4當流量墻只會出現下面幾種情況
- 死了(伺服器宕機,沒辦法看)
- 達到伺服器最大頻寬(只能看到伺服器最大頻寬)
- 清洗(ddos流量全部被清洗,只能看到正常的流量)
为啥4层的流量正常显示,7层的 一直都是0啊