簡體   English   中英

Packetbeat 接口檢測

[英]Packetbeat interface detection

我正在使用 packbeat 來監控網絡流量,以使用 ELK 進行類似 SIEM 的設置。 我想將它推送到大量機器上,但設置需要在 packetbeat.yml 中手動識別。

有沒有人能夠編寫腳本來選擇適當的接口來監控 packetbeat 的過程?

我把它放在一起 - 它使用了 3 個單獨的.yml

ConfigTemplate.yml 包含 packetbeat.yml 的 rest 減去接口。

Interfaces.yml 這是一個用於將接口寫入的臨時文件。

packetbeat.yml 是 packetbeat 將使用的最終配置文件。

python 腳本應與 config.yml 一起位於 packetbeat 目錄中

唯一的限制是它在主機上需要 python - 下一階段是看看它是否可以用 powershell 完成。

希望這對其他人有幫助! 歡迎任何改進!

import subprocess

devices = subprocess.check_output(["powershell.exe", "(./packetbeat.exe   devices).count"])

devicesCount = int(devices.decode('utf-8'))

print(devicesCount)

deviceCount = range(devicesCount)


with open('ConfigTemplate.yml', 'r') as original: data1 = original.read()


with open('Interfaces.yml', 'w') as modified: 

  for i in deviceCount:
    modified.write("packetbeat.interfaces.device: " + str(i)+ "\n" )


with open('Interfaces.yml', 'r') as original: data2 = original.read()


with open('Packetbeat.yml', 'w') as modified2: modified2.write("# ================== Set listening interfaces ==================" +"\n"+ data2 + "\n" + data1 + "\n")

Powershell版-

$count = (C:\path\to\packetbeat.exe - devices).count

$line = ''


for($i=0; $i -le ($count-1); $i++){

    $line +="packetbeat.interfaces.device:"+" $i `r`n" 

    }

$line  | Out-File -FilePath "C:\path\to\packetbeat\Interfaces.yml"

$configTemplate = Get-Content -Path "C:\path\to\packetbeat\ConfigTemplate.yml"

$interfaces = Get-Content -Path "C:\path\to\packetbeat\Interfaces.yml"

$interfaces + "`r`n" + $configTemplate | Out-File -FilePath "C:\path\to\packetbeat\packet.yml"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM