LoginSignup
3
2

More than 5 years have passed since last update.

netflow + elasticsearch

Last updated at Posted at 2017-05-16

前回の続き。どうにも ntopng を使って役に立つようにやりくりすることができずに、苦労していた。たぶん私の用途に合っていないだけなのだけれど、代わりの方法を探さないといけなくなってきた。

そうこうしていると、elasticsearch でいいような気分になってきて、実際 fluentd + elasticsearch + kibana でやっている方もいらっしゃるようだし、Cisco にも blog 記事 があるので、この構成を試してみることにした。

interfaces

Ubuntu Desktop 16.04.2 をベースにする。NetworkManager で管理されているので、モニター用のインターフェースが ethX だったとして、それを切り離す。promisc を設定したいので、次のようにファイルを整える。

/etc/NetworkManager/NetworkManager.conf
# 次の行を追加
[keyfile]
unmanaged-devices=interface-name:ethX
/etc/network/interfaces
# 次の行を追加
source-directory interfaces.d
/etc/network/interfaces.d/monitor
auto ethX
iface ethX inet manual
 pre-up ifconfig $IFACE up promisc
 post-down ifconfig $IFACE down
/etc/sysctl.d/60-monitor.conf
net.ipv6.conf.ethX.disable_ipv6=1

ipt-netflow

git で https://github.com/aabc/ipt-netflow/ から取得する。promisc を有効にしてビルドし、インストールする。

./configure --enable-promisc

IPFIX を使う予定。

/etc/modprobe.d/netflow.conf
options ipt_NETFLOW protocol=10 promisc=1 destination=127.0.0.1:4739

iptables-persistent をインストールしてサービス登録する。

iptables -A PREROUTING -t raw -i ethX -j NETFLOW
ip6tables -A PREROUTING -t raw -i ethX -j NETFLOW
/etc/init.d/netfilter-persistent save
systemctl enable netfilter-persistent

デフォルトでは localhost UDP port 2055 に送るようになっている。行儀よく port 4739 に変えたほうが、wireshark で眺めるときなどに都合がいい。

elasticsearch

インストールドキュメント に従う。default-jre-headless を使うと世話が無い。

手元でデバッグする都合、0.0.0.0 で listen するように変更した。

/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0

systemd で有効化する。

systemctl enable elasticsearch

logstash

インストールドキュメント に従う。

設定ファイルは YAML ではなく、独自形式なので混同しないように注意する。

/etc/logstash/conf.d/es.conf
output {
 elasticsearch {}
}
/etc/logstash/conf.d/netflow.conf
input {
  udp {
    port => 4739
    codec => netflow {
      versions => [10]
      target => ipfix
    }
    type => ipfix
  }
}

こちらも systemd で起動させる。

systemctl enable logstash

kibana

外部からウェブブラウザでアクセスするので、こちらも 0.0.0.0 で listen させる。

/etc/kibana/kibana.yml
server.host: "0.0.0.0"

systemd で起動させる

systemctl enable kibana

Dashboard

さぁて、ここからは通り一辺倒なダッシュボードでも作ってみるか(続く)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2