Elastic Stack 的自訂 Beat 與基於 Polycube 的 eBPF 多維資料集進行互動。
確保此資料夾位於以下位置: ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
若要建置Cubebeat
的二進位文件,請執行以下命令。這將在同一目錄中產生一個名為cubebeat 的二進位檔案。
chmod +x build.sh
build.sh
若要在啟用偵錯輸出的情況下運行Cubebeat
,請執行:
./cubebeat -c cubebeat.yml -e -d "*"
若要在不啟用偵錯輸出的情況下運行Cubebeat
,請執行:
./cubebeat -c cubebeat.yml -e
Cubebeat
讀取作為參數傳遞的設定檔(預設: cubebeat.yml
)。
該檔案接受設定檔格式中所述的常見節拍配置。
此外,它還接受特定配置,如下例所示:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
以下各節將解釋不同的選項。
Cubebeat
可以載入外部設定檔作為輸入,讓您可以將設定分成多個較小的設定檔。
在具有
POSIX
檔案權限的系統上,所有設定檔都受到所有權和檔案權限檢查。
有關更多信息,請參閱Beats Platform Reference中的設定檔所有權和權限。
您可以在cubebeat.yml
的cubebeat.config.inputs
部分中指定path
選項。例如:
cubebeat :
config.inputs :
path : config.d/*.yml
透過path
Glob 找到的每個檔案都必須包含一個或多個輸入定義的清單。
每個外部設定檔的第一行必須是以
- name
開頭的輸入定義。
例如:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
兩個正在運行的輸入不能具有相同的
name
,這一點至關重要。如果多個輸入相同的name
,則只接受第一個;而其他的則被丟棄。
當該選項enabled
為true
時,特定多維資料集輸入會在period
中定義的每個時間間隔定期與特定 Polycube 多維資料集交互,從而向polycube.api-url
中定義的 URL 發出 HTTP 請求。
如果多維資料集無法存取或在檢索資料時出現一些錯誤,
cubebeat
將繼續工作,並在period
中定義的一段時間後嘗試新連線。
每個時間period
,特定的多維資料集輸入都會將新的Elastic
事件傳送到設定檔cubebeat.yml
中定義的輸出
您可以將cubebeat
設定為在發生變更時動態重新載入外部設定檔。此功能適用於作為外部設定檔載入的輸入配置。您無法使用此功能重新載入主cubebeat.yml
設定檔。
要配置此功能,您需要指定一個path
(Glob) 來監視配置變更。當 Glob 找到的檔案發生變更時,新的輸入將根據設定檔中的變更啟動和停止。
此功能在容器環境中特別有用,其中一個容器用於追蹤同一主機上其他容器中運行的服務的日誌。
若要啟用動態配置重新載入,請在cubebeat.config.inputs
部分下指定path
和reload
選項。例如:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
選項 | 描述 |
---|---|
path | 定義要檢查更改的檔案的 Glob。 |
reload.enabled | 設定為 true 時,啟用動態配置重新載入。 |
reload.period | 指定檢查文件更改的頻率。 不要將 period 設定為小於1s 因為檔案的修改時間通常以秒為單位儲存。將 period 設定為小於1s 會導致不必要的開銷。 |
在具有
POSIX
檔案權限的系統上,所有設定檔都受到所有權和檔案權限檢查。
有關更多信息,請參閱Beats Platform Reference中的設定檔所有權和權限。