twsnmp / twsnmpfc

TWSNMP For Container
Apache License 2.0
10 stars 1 forks source link

twsnmpfc

コンテナ環境対応のTWSNMP(TWSNMP For Container)

Godoc Reference Go Report Card

Overview

コンテナ環境で動作するTWSNMPを開発するプロジェクトです。 コンテナ以外の環境(Windows,Linux,Max OS)でも動作します。

Status

実現したい機能は全て対応しました。

1日100GBのログを受信する環境でデータストアのサイズが5.4TBまで耐えることが できました。

2021-04-10_11-56-00

Build

Build Env

ビルドするためには、以下の環境が必要です。

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

でビルドできると思います。

Build

ビルドは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/ディレクトリに作成されます。

Run

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

Copyright

see ./LICENSE

Copyright 2021 Masayuki Yamai