このアプリは、TZSP 経由で受信したパケット ストリームに関するメトリクスをエクスポートします。目標は、パケットの詳細にはあまり立ち入ることなく、IPv4 レベルでどのようなタイプのデータ フローが表示されるかを測定することです。
システム要件:
tshark
パッケージで十分です。 tshark
コマンドは新しい端末で使用できる必要があります。場合によっては、インストール ディレクトリを PATH 環境変数に登録する必要があります。
このアプリはパケット ストリームの分析のみを実行し、初期キャプチャは実行しません。パケット ストリームをキャプチャし、それを TZSP 形式でこのアプリに提供するようにルーターを構成する必要があります。
MikroTik RouterOS には、TZSP パケット キャプチャのサポートが組み込まれています。キャプチャされたトラフィックを詳細にフィルタリングするために、 sniff-tzsp
アクションを使用して MikroTik ファイアウォールマングル ルールを定義することもできます。
tzsp_packetstream_exporter --interface eth0 --listen-port 1234
として実行します (詳細については、 --help
参照してください)。hostname:9184
スクレイピング ターゲットとして登録します。Prometheus のスクレイピング構成の例:
- job_name : ' my_packet_analysis '
static_configs :
- targets :
- hostname:9184
IPv4 パケットのみが分析され、IPv6 は無視されます。
複数の TZSP ストリームを同じポートまたは別のポート (複数の--listen-port
オプションを使用) 上の同じアナライザーに送信できます。出力メトリックには、データが到着したリッスン ポートを示すラベルが付けられます。
tshark: 子プロセスで /usr/bin/dumpcap を実行できませんでした: アクセス許可が拒否されました
アプリを実行するユーザーは、TShark を使用するために必要な権限を持っている必要があります。 Linux では、システム構成に応じて、ユーザーをwireshark
グループに追加する必要がある場合があります。
ユーザーが指定されたポートで結果を公開する権限を持っていない場合、アプリは Windows 上でアクセス拒否例外をスローすることがあります。 netshコマンドを使用して、必要な権限を自分自身に付与できます。
netsh http add urlacl url=http://+:9184/metrics user=DOMAINuser
ここで指定する必要があるポート番号は公開ポートであり、デフォルトでは 9184 です。
TZSP プロトコルの実装では、状況によってはパケットが切り捨てられる可能性があり、その結果、オペレーティング システムがパケットをフィルタリングして、リッスンしているアプリにパケットを渡さない可能性があります。 TShark を使用すると、切り詰められたパケットでも確実に処理できます。