コンテナ環境対応のTWSNMP(TWSNMP For Container)
コンテナ環境で動作するTWSNMPを開発するプロジェクトです。 コンテナ以外の環境(Windows,Linux,Max OS)でも動作します。
実現したい機能は全て対応しました。
1日100GBのログを受信する環境でデータストアのサイズが5.4TBまで耐えることが できました。
ビルドするためには、以下の環境が必要です。
statikは https://github.com/rakyll/statik
です。 私はMac OSでビルドしていますが、実行ファイルだけならばLinxu(Debian/Ubuntu)や Docker環境でビルドできます。
$docker run -it golang:1.20 /bin/bash
で起動したDokcerコンテナ内のLinux環境で
#cd /root
#git clone https://github.com/twsnmp/twsnmpfc.git
#cd twsnmpfc
#./build_setup.sh
#make
でビルドできると思います。
ビルドはmakeで行います。
$make
以下のターゲットが指定できます。
all 全実行ファイルのビルド(省略可能)
mac Mac用の実行ファイルのビルド
docker Docker Imageのビルド
dockerarm ARM版Docker Imageのビルド
clean ビルドした実行ファイルの削除
zip リリース用のZIPファイルを作成
$make
を実行すれば、MacOS,Windows,Linux(amd64),Linux(arm)用の実行ファイルが、dist
のディレクトリに作成されます。
Dockerイメージを作成するためには、
$make docker
を実行します。twssnmp/twsnmpfcというDockerイメージが作成されます。
配布用のZIPファイルを作成するためには、
$make zip
を実行します。ZIPファイルがdist/
ディレクトリに作成されます。
Mac OS,Windows,Linuxの環境でコマンドを実行する場合は、 datastoreのディレクトリを作成してコマンドを起動します。
#mkdir datastore
#./twsnmpfc
Dockerが動作する環境で以下のコマンドを実行すれば動作します。 datastore用のボリュームを作成します。(ローカルのディレクトリをマウントしてもよいです。)
#docker volume create twsnmpfc
ARP監視を使わない場合はDokcerのプラベートネットワークを使用します。
#docker run --rm -d --name twsnmpfc -p 8080:8080 -v twsnmpfc:/datastore twsnmp/twsnmpfc
ARP監視を使いたい場合は、ホストのネットワークを指定します。
#docker run --rm -d --name twsnmpfc --net host -v twsnmpfc:/datastore twsnmp/twsnmpfc
see ./LICENSE
Copyright 2021 Masayuki Yamai