Show HN: Xenoeye – AIを使わずにNetflow、PostgreSQL、Grafanaでネットワーク分析
Xenoeye は軽量な Netflow/IPFIX/sFlow コレクター兼アナライザーで、PostgreSQL と Grafana を使用してネットワークトラフィックを監視・分析します。AI は不要です。複数のフロープロトコルをサポートし、監視オブジェクトと移動平均を使用して異常を検出します。リソース要件は低く、低スペックなハードウェアでも動作します。
Xenoeye は、オープンソースの軽量ネットワークトラフィック収集・分析ツールで、Netflow、IPFIX、sFlow プロトコルに特化しています。PostgreSQL をバックエンドデータベースとして集計された時系列データを保存し、Grafana で可視化します。すべての機能は AI に依存せず、ISC ライセンスの下で GitHub 上で公開されています(現在 137 スター、4 フォーク)。
このコレクターは中規模から大規模のネットワーク向けに開発されており、異なるユーザーグループが異なるレポートを必要とする場合に適しています。「監視オブジェクト」という概念を使用し、IP ネットワーク、個別 IP アドレス、自律システム、地理オブジェクト、または Netflow/IPFIX/sFlow から抽出可能な任意のネットワークトラフィックを監視できます。設定ファイルを通じてレポートやグラフを定義し、Grafana でカスタムダッシュボードを構築できます。ドキュメントには簡単なレポート構築の例がありますが、複雑なものには基本的な SQL 知識が必要です。
データ処理には、固定時間ウィンドウによる集計(レポート・グラフ用)と移動平均(スパイクへの迅速な対応用)の2つの方法があります。これらは個別または組み合わせて使用できます。例えば、移動平均が閾値超過を検出すると、カスタムスクリプトを実行し、拡張統計収集を即座に有効にできます。開発チームは、大容量 DoS/DDoS 攻撃の検出に移動平均を利用しており、閾値に達すると BGP アナウンス(FlowSpec フィルタリング、レート制限、クリーニングサーバーへのリダイレクト、ブラックホール)を作成し、メッセンジャーで通知します。
リソース要件は低く、メモリ 4 GB の Orange Pi(Raspberry Pi 類似)でもデータ処理とレポート生成が可能です。小規模ネットワークでは、1 CPU、1 GB RAM の VM で動作します。パフォーマンスは、デバッグモードで1コアあたり約 10 万フロー/秒、本番に近いモード(2つの監視オブジェクト、2つのスライディングウィンドウ)で約 70 万フロー/秒です。開発者はこれらの数値を悲観的に見るよう推奨し、マルチコアへのスケーリングが可能です。コレクターは 64 ビット Linux(x64、AArch64、Elbrus)でのみテストされています。
ストレージには PostgreSQL を使用し、実験的に ClickHouse もサポートしています。トップ N エンティティのみをエクスポートし、残りを1行に集約することで、データ量を調整でき、安価な低速ディスクも使用可能です。標準の Netflow/IPFIX フィールドセットをサポートし、必要なフィールドを追加することもできます。
デプロイオプションとして、LXC コンテナイメージ(v25.02)と Proxmox テンプレートが用意されています。コンテナにはプリコンフィギュアドのコレクター、PostgreSQL、Grafana が含まれ、ホストネットワークを使用するため注意が必要です。また、インストール、設定、監視オブジェクト、閾値、GeoIP 統合、トラフィック分類、sFlow 分析などの高度な機能をカバーする詳細なドキュメントが提供されています。将来の計画は安定性とコードの簡素化に焦点を当てており、新機能の追加は予定されていません。