naoki86star

インターネットの片隅でなにかしら書いてみる

サーバからsflowを送信するサービスプロセスのこと

sflowを投げるほう、いわゆるexporterのプロセスを立ち上げる、という内容。いままでよくこれを試していたけども、Cumulus Linux*1これを使っているようなのでVMHausのインスタンスの一つに入れてみる。
apt-get install hsflowdで入らなかったので、githubからbuild。

$ sudo apt install libnfnetlink-dev libpcap-dev libvirt-dev libxml2-dev libdbus-glib-1-dev libssl-dev
$ git clone https://github.com/sflow/host-sflow.git
$ cd host-sflow
$ make FEATURES="HOST"
$ sudo make install
PLATFORM=`uname`; \
MYVER=`./getVersion`; \
MYREL=`./getRelease`; \
cd src/$PLATFORM; make VERSION=$MYVER RELEASE=$MYREL install
make[1]: Entering directory '/home/naoki86star/github.com/host-sflow/src/Linux'
$FEATURES is [] from undefined
$XTGTS is []
install -d /usr/sbin
install -m 700 hsflowd /usr/sbin
install -d /etc
install -m 644 scripts/hsflowd.conf /etc
install -d /lib/systemd/system
install -m 644 scripts/hsflowd.service /lib/systemd/system/hsflowd.service
install -d /etc/init.d
install -m 755 scripts/hsflowd.deb /etc/init.d/hsflowd
install -d /etc/hsflowd/modules
install -m 755 *.so /etc/hsflowd/modules
install -d /etc/dbus-1/system.d
install -m 644 scripts/net.sflow.hsflowd.conf /etc/dbus-1/system.d
make[1]: Leaving directory '/home/nao/github.com/host-sflow/src/Linux'
$
$ sudo make schedule
PLATFORM=`uname`; \
MYVER=`./getVersion`; \
MYREL=`./getRelease`; \
cd src/$PLATFORM; make VERSION=$MYVER RELEASE=$MYREL schedule
make[1]: Entering directory '/home/nao/github.com/host-sflow/src/Linux'
$FEATURES is [] from undefined
$XTGTS is []
systemctl daemon-reload
systemctl enable hsflowd
Synchronizing state of hsflowd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable hsflowd
make[1]: Leaving directory '/home/naoki86star/github.com/host-sflow/src/Linux'

とりあえず/etc/hsflowd.confで

pcap { dev = ens3 }

とインタフェースを指定してあげて起動

件のsflowtoolで動作が確認できる。VMの上で動かす場合としてのサンプリングレートの調整がノウハウになりそう。

*1:経験なし残念な感じ