Source field becomes incorrect when ingesting netflow data to graylog docker container

オープン
#709 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
30/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
docker, java
領域
networking

調査の方向性

Netflow 入力のエントリーポイントから開始し、文書化された Docker セットアップ、Graylog 4.0.1、コンテナの再起動を使って source フィールドの変更を再現します。再起動の前後で Netflow ソースがどのように記録されるかを追跡します。完了条件は、レコードに Docker ネットワークのゲートウェイ IP ではなく、発信元 probe の IP が引き続き表示されることです。

索引モデルが issue の本文から書いたものです。

説明

bug triaged

Expected Behavior

Source field should be correct and show the IP of the Netflow source

Current Behavior

TLDR: In graylog container, something triggers the netflow input to switch from storing the correct source field to storing the internal gateway IP for the docker network the container is in.

I'm running graylog, elasticsearch and mongo as containers from a docker-compose file more or less the same as that given in the documentation.
I have a Netflow input set up, override_source is not set. Into that I am feeding Netflow v9 records from two different systems, running different netflow probe software (a Linux box running netprobe and a BSD box running softflowd). All is well, and the data is correct. At some point, something happens, and the source field in the data changes from the IP of the netflow probe machine to the IP of the internal gateway of the docker network. This happens to data from both netflow probe machines.

I believe from a small amount of testing that the 'something' that triggers it is the restart of the docker container, whether by the host updating docker or stopping/starting the container. That certainly seemed to cause it to start to use the docker host's IP as the source rather than the actual IPs but there may be other triggers.
Once in that state, restarting the probe software on the remote boxes seems to be the only way to get it to start logging the correct source field again.

The issue does seem to be specific to the Netflow module, other inputs (beats, syslog) are working fine. I can't currently test whether there's any way to trigger the same issue on a non-container version.

Context

It's problematic if I want to search based on which box sent netflow data, or to apply pipeline rules to normalize the data coming from the two sources if I relied on that obvious field to tell the sources apart.

Your Environment

  • Graylog Version: Graylog 4.0.1+6a0cc0b (docker container tag graylog/graylog:4.0)
  • Java Version: 1.8.0_275
  • Elasticsearch Version: 7.10.1 (docker container tag elasticsearch-oss:7.10.1)
  • MongoDB Version: 3 (docker container tag mongo:3)
  • Operating System: Ubuntu 18.04
  • Browser version:
  • Docker version: 20.10.2
主要言語
Java
スター
17
フォーク
13
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Graylog2/graylog-plugin-integrations のほかの issue

Graylog2/graylog-plugin-integrations の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。