在 Linux 上建立流量監控 sFlow 並傳送

前言

我們時常開一些遊戲伺服器讓他人玩,又或是租伺服器給別人。但是我們通常難以分析流量都去哪裡了,或是都怎麼走,所以我們需要透過一些方式來記錄網路流量流向。而今天這篇文章就是要講 sFlow 這個酷東西可以分析流量,來監視網路使用情況。

但這篇文章只會講解在 Linux 上的設定層面,不會講到其他流量分析軟體。如果有需要,可以參考 啟用 Cloudflare 流量監控功能 – Magic Network Monitoring 這篇文章!

安裝軟體

今天會使用的是 Host sFlow 這套軟體,首先我們先到 官方網站 下載適用於你作業系統的版本。依照本文撰寫的當下,我們會使用 Debian 作業系統,最新版本為 v2.0.53-1

sudo wget https://github.com/sflow/host-sflow/releases/download/v2.0.53-1/hsflowd-debian12_2.0.53-1_amd64.deb

下載後安裝他。

sudo dpkg -i hsflowd-debian12_2.0.53-1_amd64.deb

設定參數

接著,我們必須設定一些有用的參數,檔案在 /etc/hsflowd.conf。而下面我只列舉常用的,更多設定細節可以參考 官方文件

sflow {
    # 採樣率
    sampling = 1000
    # 欲採樣網卡
    pcap { dev = ens4 }
    # 蒐集資料那端的 IP 位址及端口
    collector { ip=127.0.0.1 udpport=6343 }
}

存檔完成後,我們就要開始讓服務跑起來囉。

sudo systemctl start hsflowd

接著我們要設定開機就會自動啟動。

sudo systemctl enable hsflowd

這樣就完成囉!