Simpleton は、UDP パケットを受け入れて SQLite3 データベースに保存するだけの、非常にシンプルな UDP からデータベースへのロギング ソリューションです。デフォルトでは、現在のディレクトリのsimpleton.db
に保存されますが、コマンド ライン オプションでこれをオーバーライドできます。
これは、本当に単純なテスト以外にはあまり役に立ちませんが、拡張することができます。
シンプルトンを構築するには、 make
実行するだけでバイナリがbin
ディレクトリに表示されます。デフォルトでは、OSX 用にビルドされます。
make
他のプラットフォーム用にビルドするには、 Makefile
のGOOS
変数とGOARCH
変数を編集してください。次のように、 make
実行するときにコマンド ラインにこれらのパラメーターを入力することもできます。
GOOS=linux GOARCH=amd64 make
syslist.go では、さまざまなプラットフォームのこれらの変数の値を見つけることができますが、最も一般的な値は次のとおりです。
OS | グース | ゴアーチ |
---|---|---|
OSX | ダーウィン | amd64 |
Linux | リナックス | amd64 |
窓 | 窓 | amd64 |
もちろん、GOOS と GOARCH の適切な組み合わせを設定するだけでクロス コンパイル (OSX マシン上で Linux バイナリをコンパイルするなど) できますが、Windows では問題が発生する可能性があります。 (私はこれを Windows 用に構築していません)。
バイナリはbin
に表示されるので、次のコマンドを使用してメイン ディレクトリから実行できます。
bin/simpleton
コマンド ライン オプションを一覧表示するには、 -h
フラグを使用します。
bin/simpleton -h
以下は、特定のインターフェイス (この例では 10.1.0.3) とポート (7788) をリッスンし、データベースを/tmp/simpleton.db
に保存するオプションを指定して Simpleton を実行する例です。
bin/simpleton -u 10.1.0.3:7788 -d /tmp/simpleton.db
結果のデータベースを調べたい場合は、マシンに SQLite3 をインストールし、 sqlite3
コマンドを使用してデータベースを検査できます。前の例でデータベースを開くには、次を実行するだけです。
sqlite3 /tmp/simpleton.db
.schema
と入力すると、非常に単純なデータベース スキーマが表示されます。データに対して SQL ステートメントを実行できるようになりました。
注: SQLite3 の同時実行性についてはよくわからないので、データベースを統合ポイントとして使用するつもりはありません (決して使用しないでください)。
これは、コードにデータベース アクセスの周りにミューテックス ロックがある理由でもあります。このコードは、データベースにアクセスする複数のゴルーチンを含むプロジェクトから取得されたものです。このプログラムにはそれがありませんが、念のためにミューテックスのロックを残しておきました。
運用環境で使用する場合は、同時実行用に構築された PostgreSQL データベースなどを使用する必要があります。しかし、小規模な実験や同時実行が制限されている場合には、SQLite3 は驚くほど有能な小さな野獣です。
HTTP インターフェイスには認証やセキュリティのメカニズムがないため、テスト以外には使用しないでください。 Web インターフェースのデフォルトのアドレスは次のとおりです。
http://localhost:8008/
Web インターフェイスは非常にシンプルです。データにアクセスする URL が 2 つあります。
/data
/data/{id}
1 つ目は JSON 配列を返し、2 つ目は ID で指定されたデータ エントリのペイロードのみを返します。 /data
パスはデータベース内の最新の 20 エントリのみに制限されますが、 offset
およびlimit
URL パラメータを設定することでデータベースをページングできます。
/data?offset=10&limit=10
Simpleton は、静的ファイルを含むディレクトリの作成をサポートしているため、コンテンツへの便利なリンクや、JS フロントエンド アプリケーションをホストするための便利なリンクを含む HTML ページを作成できます。
コマンド ライン ヘルプを確認して、操作できるパラメータを確認してください。