NetFlow是一種網絡流量分析技術,可以用于監測、分析和診斷網絡流量,可以幫助管理員實現對網絡流量的實時監控和分析,并提高網絡性能和安全性。本文通過Kibana中的Fleet Server管理Elastic Agent采集的NetFlow數據,并將NetFlow數據輸出到Kibana中進行數據分析。
名詞解釋
名詞 | 說明 |
Fleet | Elasticsearch中的一個功能強大的集中式管理解決方案,集中管理Agent服務。 |
Fleet Agent | 輕量級數據采集代理,負責采集源端數據。 Fleet Agent可以在多個操作系統上運行,并且可以收集多種類型的數據。 |
Fleet Server | 負責將Agent采集的源端數據傳輸到Elasticsearch。 |
準備環境
創建阿里云Elasticsearch實例,具體操作請參見創建阿里云Elasticsearch實例。本文以Elasticsearch 8.5版本為例。
創建ECS實例,且該ECS實例與Elasticsearch實例處于同一專有網絡下。具體操作請參見自定義購買實例。
說明ECS實例作為源端服務器,Elastic Agent會采集ECS實例上的NetFlow數據。
創建代理策略并添加集成
步驟一:創建代理策略
登錄Kibana控制臺。具體操作,請參見登錄Kibana控制臺。
單擊
。在Fleet頁面,單擊代理策略頁簽。
單擊創建代理策略,在創建代理策略控制面板中配置代理策略。
輸入代理策略名稱netflow-log。
取消選中收集系統日志和指標。
單擊高級選項,在代理監測區域,取消選擇中收集代理日志和收集代理指標。
說明本場景僅采集NetFlow Records日志,因此取消選中收集系統日志和指標和代理的自身數據。
配置完成后,在頁面右下角單擊創建代理策略。
步驟二:創建Fleet Server集成
在Fleet頁面的代理策略頁簽,單擊創建的代理策略netflow-log。
在集成頁簽中,單擊添加集成。
在瀏覽集成頁簽,在搜索框中搜索Fleet Server,并單擊Fleet Server。
安裝Fleet Server集成。
在Fleet Server頁面,單擊設置頁簽。
單擊安裝Fleet Server資產,在彈出的對話框中單擊安裝Fleet Server。
說明安裝集成后,設置頁簽會顯示集成的版本。
在頁面右上角,單擊添加Fleet Server。
在添加Fleet Server集成頁面,輸入集成名稱,選擇代理策略為
netflow-log
。在頁面右下角,單擊保存并繼續,在彈出的對話框中單擊稍后添加Elastic代理。
步驟三:創建NetFlow集成
在代理策略netflow-log的集成頁簽中,單擊添加集成。
在瀏覽集成頁簽,在搜索框中搜索NetFlow Records,并單擊NetFlow Records。
安裝NetFlow Records集成。
在NetFlow Records頁面,單擊設置頁簽。
單擊安裝NetFlow Records資產,在彈出的對話框中單擊安裝NetFlow Records。
說明安裝集成后,設置頁簽會顯示集成的版本。
在頁面的右上角,單擊添加NetFlow Records。
在添加NetFlow Records集成頁面,配置集成。
在集成配置區域,輸入集成名稱netflow-1。
單擊Collect NetFlow logs后面的更改默認值,輸入UDP監聽地址為
0.0.0.0
,UDP端口保持默認的2055。在要將此集成添加到什么位置區域,在Existing hosts頁簽下,選擇代理策略為
netflow-log
。
配置完成后,在頁面右下角單擊保存并繼續,在彈出的對話框中單擊稍后添加Elastic代理。
添加Agent并啟動NetFlow服務
步驟一:設置Fleet服務器主機
登錄Kibana控制臺。具體操作,請參見登錄Kibana控制臺。
單擊
。在Fleet頁面,單擊設置頁簽,配置Fleet。
在Fleet服務器主機區域,單擊編輯主機。
在Fleet服務器主機控制面板中,輸入源端的私網地址,格式為
https://<私網IP>:<端口>
,例如https://172.16.*.***:8220
。說明本文私網IP為ECS實例的主私網IP。更多配置信息,請參見Fleet Server hosts。
在輸出區域,在操作列單擊。
在編輯輸出控制面板中,輸入Elasticsearch實例的私網地址,格式為
http://<私網地址>:<端口>
,例如http://es-cn-uqm3auln80001****.elasticsearch.aliyuncs.com:9200
。單擊保存并應用設置,在彈出的對話框中單擊保存并部署。
步驟二:添加Elastic Agent
為Fleet Server添加一個Elastic Agent。
如果您需要采集多個服務器的NetFlow流量信息,可以多次執行以下步驟,在一個Fleet Server中添加多個代理,每個代理采集各自服務器中的NetFlow數據,NetFlow數據由Fleet Server統一管理。
單擊
。單擊代理策略頁簽。
在代理策略netflow-log的操作列,選擇
。在添加代理控制面板,在為Fleet服務器選擇策略區域,默認選擇代理策略為
netflow-log
。在為安全選擇部署模式區域,默認選中快速啟動。
在添加您的Fleet服務器主機區域,單擊右側的添加主機。
在生成服務令牌區域,單擊生成服務令牌。
在將Fleet服務器安裝到集中式主機區域,復制自動生成的代碼塊,并將代碼在ECS實例中執行。
代碼執行完畢后,如果看到
Successfully
字樣,表明ECS服務器上成功安裝并啟動Elastic Agent。
步驟三:配置NetFlow服務
本文使用softflowd生成Netflow日志,在ECS實例中執行以下代碼啟動softflowd。
下載softflowd源碼包。
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/softflowd/softflowd-0.9.9.tar.gz
安裝libpcap-devel環境。
yum install libpcap-devel
編譯并安裝softflowd。
tar -xvf softflowd-0.9.9.tar.gz cd softflowd-0.9.9 ./configure make make install
運行softflowd。
nohup softflowd -v 9 -D -i eth0 -t maxlife=1 -n localhost:2055 >/dev/null 2>&1 &
查看數據
您可以通過以下三種方法查看NetFlow數據:
方法一:通過Dashboards查看NetFlow數據
單擊
。在Fleet頁面,單擊數據流頁簽,Netflow相關數據已顯示在數據集列表中。
在目標數據集的操作列,選擇
,選擇要查看的信息。例如選擇[Logs Netflow] Overview
。
方法二:通過Discovery查看索引數據
單擊
,在Discovery中查看數據。方法三:通過kibana查詢數據
單擊
。執行如下命令,查看NetFlow相關數據。
GET logs-netflow.log-default/_search