2021年10月24日

ElastiFlow + Grafana 分析流量應用

工作早期使用的Neflow分析軟體NfSen太舊了(官方已無更新),加上新版的瀏覽器無法完全支援,索性將全部的Netflow網管主機換成比較新的分析軟體ElastiFlow來收集資料,然後再用 Grafana 去畫出自己想要的圖型分析跟告警發送。目前官方ElastiFlow Open Source的版本到4.0.1之後,就變成了收費軟體了,基於使用上的彈性,所以還是使用該版本做為使用。

以下為安裝的方式,會使用docker的方式來安裝ELK軟體,然後手動安裝Grafana軟體,並在做完必要的設定佈署後,會將Kibana給停用,節省主機的效能資源,因為是3種服務都安裝在同一台的方式,所以硬體效能不能太差(官方有建議的Flow per second對應的硬體規格),以下為使用12 core 、46G RAM、1T HD的方式佈署。

先安裝Docker軟體
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce

確認安裝是否成功,並將服務加到開機會自動啟動
docker --version
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo systemctl status docker.service

安裝Docker Compose,之後可以用YAML 檔案來定義服務
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
檢查安裝是否有成功
docker-compose -v 

接著照著ElastiFlow官方文件上面的建議,定義好YAML 檔案與優化Linux主機的UDP的效能
編輯vi /etc/sysctl.d/87-elastiflow.conf ,然後加入官方的建議UDP設定值 ,接著照著主機的效能規格去定義好相關的YAML檔案來使用Docker來啟動ELK服務收集Netflow資料
vi docker-compose.yml  ,紅色的地方照實際需求修改對應的設定值