Packetbeatのinterfaces-deviceの設定について


#1

お世話になります。

packetbeatについて日本語で質問したいのですが、こちらでも大丈夫でしょうか?

packetbeatのinterfaces-deviceの設定について質問があります。

複数のWindowsパソコンにpacketbeatを入れて
httpプロトコルのデータ収集を考えています。

yml設定ファイルにある

interfaces:
devices:

への設定値が各パソコンによって0であったり5であったりと違うのですが、
自動的に判定もしくは複数設定、any?のような設定はありませんか?
※deviceの番号はコマンドで調べて設定しました。

もし設定がない場合、自動化を実現するにはどのような手段で行えばよいでしょうか?

beatは軽量でとても素晴らしいプラットフォームなので是非とも使用したいと考えています。
ご助言いただければと思います。よろしくお願いします。


(Jun Ohtani) #2

残念ながらanyはLinuxだけみたいです。

自動化するとしたら、-devicesオプションを利用して取得するスクリプトを書いたりでしょうか?
https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-interfaces.html#_device


#3

ありがとうございます。
それが最終手段かと考えていましたが。。。

今回対応してみた内容を展開します。

packetbeat.exe -devices
を実行するとdeviceは

・有線LANのアダプタ
・無線LANのアダプタ
・仮想アダプタ
・Bluetoothアダプタ

と、端末によっては下記例のように複数リストが出力されます。

例.
0: 仮想アダプタ1
1: 有線LANアダプタ
2: 無線LANアダプタ
3: Bluetooth
4: 仮想アダプタ2

この中から1:有線LAN及び2:無線LANのパケットを監視したい場合、
Windowsのレジストリからネットワークアダプタを取得し、
マッチングさせることで、Deviceのどの番号を使用したらいいか自動的に判別することが出来ました。

レジストリのキーは(HKLM\Software\microsoft\windows nt\CurrentVersion\networkcards)の配下に
数字のキーがネットワークアダプタだけ存在していて
そこのServiceNameの内容とpacketbeat.exe -devicesの内容が部分一致したものが
ネットワークアダプタである

というようにして、動的にpacketbeatを起動できるようにしました。
※面倒だった部分はymlのdeviceを設定するときに外部から環境変数や起動引数などで指定できたら楽だったのですが。。。

そこは出来たのですが、今度は出力されるログ形式について質問でてきたのですが、それはまた別で質問を上げようと思います。

ありがとうございました。


(system) #4