AI News HubLIVE
站內改寫2 分鐘閱讀

Show HN: Xenoeye – 無需AI,使用Netflow、PostgreSQL和Grafana分析網絡

Xenoeye 是一個輕量級的 Netflow/IPFIX/sFlow 收集器和分析器,利用 PostgreSQL 和 Grafana 進行網絡流量監控和分析,無需人工智能。它支持多種流協議,使用監控對象和移動平均線檢測流量異常,資源需求低,可在低端硬件上運行。

來源Hacker News AI作者: vmxdev

Xenoeye 是一個開源的輕量級網絡流量收集與分析工具,專注於 Netflow、IPFIX 和 sFlow 協議。它利用 PostgreSQL 作為後端數據庫存儲聚合的時間序列數據,並通過 Grafana 提供可視化儀表板,所有功能都不依賴人工智能。該項目由 vm(vmxdev)開發,在 GitHub 上以 ISC 許可證發佈,目前已有 137 星和 4 個復刻。

該收集器專為中大型網絡設計,支持不同的用户羣體生成不同的報告。它使用“監控對象”的概念,這些對象可以是 IP 網絡、單個 IP 地址、自治系統、地理對象或任意可從 Netflow/IPFIX/sFlow 中提取的網絡流量。通過配置文件,用户可以定義報告和圖表,在 Grafana 中構建自定義儀表板。文檔提供簡單報告的例子,但構建更復雜的報告需要基本的 SQL 知識。

數據處理採用兩種方式:固定時間窗口聚合用於常規報表和圖表,移動平均線用於快速檢測流量突變。兩種方法可單獨或結合使用。例如,當移動平均線檢測到閾值被超過時,可以運行自定義腳本並立即啓用擴展統計收集。開發團隊使用移動平均線檢測大容量 DoS/DDoS 攻擊,當達到閾值時,會創建 BGP 通告(FlowSpec 過濾、限速、重定向到清洗服務器或黑洞路由),並通過即時通訊工具通知用户。

Xenoeye 對資源要求不高,即使在只有 4 GB 內存的 Orange Pi(類似樹莓派)上也能處理數據並生成報告。在小網絡中,它可以在只有 1 個 CPU 和 1 GB 內存的虛擬機中運行。性能方面,在調試模式下每個核心約可處理 10 萬流/秒,在接近生產模式下(兩個監控對象、兩個滑動窗口)約 70 萬流/秒。開發者建議悲觀地看待這些數字,並指出多核擴展是可能的。該收集器僅在 64 位 Linux(x64、AArch64 和 Elbrus)上測試過。

數據存儲方面,Xenoeye 使用 PostgreSQL 存儲時間序列數據,並支持實驗性的 ClickHouse 存儲。它可以只導出前 N 個實體,其餘聚合到一行,從而調節寫入數據庫的數據量,允許使用更便宜、更慢的磁盤。默認支持基本的 Netflow/IPFIX 字段,用户也可添加幾乎任何需要的字段。

部署選項包括一個 LXC 容器鏡像(v25.02 版本),包含預配置的收集器、PostgreSQL 和 Grafana,以及一個 Proxmox 模板。容器使用主機網絡,需謹慎使用。此外,項目提供了詳細的文檔,涵蓋安裝、配置、監控對象、閾值設置、GeoIP 集成、流量分類、sFlow 增強分析等高級功能。未來計劃主要集中在穩定性和代碼簡化,而非添加新功能。