NetFlow設定ファイル生成ツール

New RelicのktranslateでNetFlowデータを収集するための設定ファイルを生成します。

NetFlowデバイス設定

NetFlowを送信するデバイスの識別情報を設定します。デバイス名でフローデータを識別したい場合に使用します。

デバイス名 device_name device_ip description user_tags 操作
デバイス1
デバイス2

📋 パラメータ設定について

device_name 任意

NetFlowデータに表示されるデバイスの識別名です。英数字、アンダースコア(_)、ハイフン(-)のみ使用可能。

例: edge-router, core-switch-01
device_ip 任意

NetFlowを送信するデバイスのIPアドレスです。フローデータの送信元を識別するために使用します。

例: 10.10.1.254, 192.168.1.1
description 任意

デバイスの説明や用途を記載します。管理しやすくするための情報です。

例: エッジルーター, コアスイッチ
user_tags 任意

デバイスに付与する追加属性です。NetFlowメトリクスに含まれ、分析やフィルタリングに使用できます。

例: environment=production, team=network
💡 NetFlow設定のポイント
  • 設定ファイルはオプション:NetFlowはデバイス設定ファイルなしでも動作し、送信元IPアドレスで識別されます。
  • デバイス名による識別:device_nameを設定することで、IPアドレスではなく分かりやすい名前でフローデータを識別できます。
  • user_tagsは複数設定可能で、environment、team、location等の分類に使用します。
  • flow_only: trueが自動的に設定され、NetFlowデータのみが処理されます。

🚀 NetFlow監視コンテナ起動手順

ktranslateでNetFlowデータを収集・監視するための手順です

📋 サポートされるフロータイプ

ktranslateでサポートされるNetFlowプロトコルの一覧です。-nf.sourceパラメータで指定します。

フロータイプ -nf.source値 デフォルトポート 説明
NetFlow v5 netflow5 9995 AppFlow, Argus, cflowd, J-Flow, NetStream, RFlow含む
NetFlow v9 netflow9 9995 標準NetFlow v9プロトコル
sFlow sflow 6343 sFlowプロトコル
IPFIX ipfix 4739 IP Flow Information Export
Cisco ASA asa 9995 Cisco ASA専用フロー
Cisco NBAR nbar 9995 Cisco NBAR専用フロー
Palo Alto Networks pan 9995 PAN専用フロー

💡 ヒント: autoを使用すると、単一のコンテナで複数のフロータイプを自動検出できます。特定のプロトコルのみを使用する場合は、対応する値を指定してください。

1

環境変数の設定

New Relicの認証情報を設定します

export NEW_RELIC_API_KEY="your_license_key"
export NR_ACCOUNT_ID="your_account_id"
2

設定ファイルの準備(オプション)

設定管理タブで生成したYAMLファイルを保存します

# 設定ファイルを netflow-base.yaml として保存(オプション)
# NetFlowは設定ファイルなしでも動作します
3

コンテナ起動

NetFlow監視コンテナを起動します

🎯 標準起動(推奨)

NetFlowデータの収集を開始

docker run -d --name ktranslate-netflow \
  --restart unless-stopped \
  -p 9995:9995/udp \
  -e NEW_RELIC_API_KEY="$NEW_RELIC_API_KEY" \
  kentik/ktranslate:v2 \
  -nr_account_id="$NR_ACCOUNT_ID" \
  -listen="0.0.0.0:9995" \
  -format=new_relic \
  -service_name="ktranslate-netflow" \
  -dns=local \
  -nf.source=auto \
  -tee_logs=true \
  nr1.flow
⚙️ 設定ファイル使用

カスタム設定でNetFlow監視を開始

docker run -d --name ktranslate-netflow-config \
  --restart unless-stopped \
  -p 9995:9995/udp \
  -v $(pwd)/netflow-base.yaml:/netflow-base.yaml \
  -e NEW_RELIC_API_KEY="$NEW_RELIC_API_KEY" \
  kentik/ktranslate:v2 \
  -snmp /netflow-base.yaml \
  -nr_account_id="$NR_ACCOUNT_ID" \
  -listen="0.0.0.0:9995" \
  -format=new_relic \
  -service_name="ktranslate-netflow-config" \
  -dns=local \
  -nf.source=auto \
  -flow_only=true \
  -tee_logs=true \
  nr1.flow
🔧 デバッグモード

ログ出力を詳細にして問題を調査

docker run -d --name ktranslate-netflow-debug \
  --restart unless-stopped \
  -p 9995:9995/udp \
  -e NEW_RELIC_API_KEY="$NEW_RELIC_API_KEY" \
  kentik/ktranslate:v2 \
  -nr_account_id="$NR_ACCOUNT_ID" \
  -listen="0.0.0.0:9995" \
  -format=new_relic \
  -service_name="ktranslate-netflow-debug" \
  -dns=local \
  -nf.source=auto \
  -log_level=debug \
  -tee_logs=true \
  nr1.flow
4

動作確認

コンテナの起動状態とログを確認します

コンテナ状態確認
docker ps | grep ktranslate-netflow
ログ確認
docker logs ktranslate-netflow
New Relicでの検索
# 基本的なフローデータ検索
SELECT * FROM KFlow LIMIT 100

# フロー統計の確認
SELECT count(*) as 'Flow Records', 
       sum(in_bytes) as 'Total Bytes',
       sum(in_pkts) as 'Total Packets'
FROM KFlow 
WHERE instrumentation.name = 'netflow-events'
SINCE 1 hour ago

# トップトーカー(送信元別)
SELECT src_addr, sum(in_bytes) as 'Bytes'
FROM KFlow 
WHERE instrumentation.name = 'netflow-events'
FACET src_addr 
LIMIT 10 
SINCE 1 hour ago
5

デバイス設定

NetFlowを送信するデバイスの設定例

Cisco IOS設定例
# NetFlow v9設定
ip flow-export version 9
ip flow-export destination <ktranslate-server-ip> 9995
ip flow-export source <source-interface>
ip flow-export template timeout-rate 1

# インターフェースでNetFlowを有効化
interface <interface-name>
  ip flow ingress
  ip flow egress
Cisco Meraki設定例
# Meraki Dashboard設定
# Network-wide > General > Reporting
# NetFlow reporting: Enabled
# NetFlow collector IP: <ktranslate-server-ip>
# NetFlow collector port: 9995
Juniper設定例 (J-Flow)
# Flow monitoring設定
set services flow-monitoring version9 template ipv4
set services flow-monitoring version9 template ipv4 flow-active-timeout 60
set services flow-monitoring version9 template ipv4 flow-inactive-timeout 10

# Export設定
set forwarding-options sampling instance sample-ins family inet output flow-server <ktranslate-server-ip> port 9995
set forwarding-options sampling instance sample-ins family inet output flow-server <ktranslate-server-ip> version9 template ipv4
Fortinet FortiGate設定例
# NetFlow設定
config system netflow
    set collector-ip <ktranslate-server-ip>
    set collector-port 9995
    set source-ip <fortigate-source-ip>
    set active-flow-timeout 1
    set inactive-flow-timeout 15
end

# インターフェースでNetFlowを有効化
config system interface
    edit "<interface-name>"
        set netflow-sampler tx
        set netflow-sampler rx
    next
end
Palo Alto Networks設定例
# Network > Network Profiles > NetFlow Profile
# Name: netflow-profile
# Template Refresh Rate: 1800
# Active Timeout: 30
# Inactive Timeout: 10

# Device > Server Profiles > NetFlow
# Name: netflow-server
# NetFlow Profile: netflow-profile
# Server: <ktranslate-server-ip>:9995

🔧 トラブルシューティング

NetFlowデータが受信されない

ネットワークやデバイス設定の問題

  • 送信元デバイスのNetFlow設定を確認
  • ファイアウォールでUDP 9995が開放されているか確認
  • ネットワーク経路でUDPパケットが通るか確認
  • デバイスからktranslateサーバーへの疎通確認
フローレコードが不完全

テンプレートやサンプリングの問題

  • NetFlowテンプレートが正しく送信されているか確認
  • サンプリングレートが適切に設定されているか確認
  • フローのタイムアウト設定を確認
  • デバイスのNetFlowバージョンを確認
パフォーマンスの問題

大量のフローデータによる負荷

  • サンプリングレートを調整して負荷を軽減
  • フローのアクティブ/非アクティブタイムアウトを調整
  • ktranslateコンテナのリソース制限を確認
  • 複数のコレクターに負荷分散を検討