こんなことをする目的ですが、NetFlowの実験のためです。
OpwnvSwitchでNetFlowをしゃべってくれるという話を聞いたので。
手順:
1.あらかじめ取っておいたOVS240のクリーンイメージを、SDにddコピーで書き戻す。
sudo dd if=/Users/yohichi/Desktop/20160319_RaspJessieOVS240comp.img of=/dev/disk1
最初は、ここを参考にしようと思っていたが、
・KVM環境でLinux標準ブリッジの代わりにOpen vSwitchを利用する
http://knqyf263.hatenablog.com/entry/2013/12/30/220214
どうも情報が古すぎるようで、
・Ubuntu14.04でopenvswitch-brcompatを使わずにKVMをopen vSwitchで外部ネットワークに接続する・その2(解決編)
https://spicebeat.net/blog/archives/465
こちらを参考に始めるつもりが4/16の夜。
そして4/22の夜。
interfacesの設定までは行わず、ovs−vsctlのみで設定。
ただ、Raspbianでは微妙に不安定。理由はわからないけど、L2 bridgeとして設定したnetflow-brにDHCPでIPが振られないと、安定しないらしい。
ちなみに、LED付きUSB−NICドングルを使うと上手くいかない気がするので、1コはMAC同一中華NICを使わざるをえず。
さて、次はDockerでfluentを動かす番だ。
NetFlow on Open vSwitch
http://blog.shin.do/2014/12/netflow-on-open-vswitch-3/
を参考にOVS側を定義。
ovs-vsctl -- set Bridge netflow−br netflow=@nf -- --id=@nf create NetFlow targets="192.168.0.110:5566"
エラー 撃沈
ovs-vsctl: no row "netflow−br" in table Bridge
とりあえず、参考3つ。
https://github.com/osrg/openvswitch/blob/master/FAQ
http://openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.html
http://manpages.ubuntu.com/manpages/trusty/en/man8/ovs-controller.8.html
でも、結論は全然別のところに、、、
原因は、ブリッジ名のハイフンでした。
"netflow-br"
OVSのブリッジ名としては有効ですが、NetFlowの定義での引数としては不可です。
ここで5/16。毎日取り組んでいたわけはないですが、一ヶ月はかかり過ぎ。。。
受け側Fluentd参考---
NetFlow to fluentd にはRuby環境が必要(gem)ということでここを参考にインストール。
Ruby on Rails 4.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました
https://www.oiax.jp/rails/zakkan/rails_4_2_installation_on_ubunt.html
Rubyのインストール20分もかかったよ・・・
参考リンク
Netflowコレクターを無償のFluend+ElasticSearch+Kibanaで構築する
http://komeiy.hatenablog.com/entry/2014/09/26/212000
sflowもFluentd+Elastic Searchに入れて可視化してみた
http://komeiy.hatenablog.com/entry/2015/09/02/235512
Fluent-plugin-sflow でっちあげた
http://enukane.github.io/blog/2017/03/24/fluent-plugin-sflow-release/