Обнаружение интерфейса Packetbeat - PullRequest
0 голосов
/ 01 октября 2019

Я использую packbeat для мониторинга сетевого трафика для SIEM-подобной установки с ELK. Я хотел бы перенести его на большое количество машин, но для установки требуется ручная идентификация в packetbeat.yml.

Кто-нибудь смог написать сценарий процесса выбора соответствующего интерфейса для мониторинга для packetbeat?

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

версия 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"
0 голосов
/ 03 октября 2019

Я собрал это вместе - который использует 3 отдельных .yml

ConfigTemplate.yml, который содержит остальную часть packetbeat.yml минус интерфейсы.

Interfaces.yml, который являетсявременный файл, используемый для записи интерфейсов в.

packetbeat.yml, который будет использоваться в качестве окончательного файла конфигурации.

Сценарий python должен находиться в каталоге packetbeat вместе с файлом config .yml

Единственным ограничением является то, что ему нужен 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")
...