Simpleton 是一個非常簡單的 UDP 到資料庫日誌記錄解決方案,它只接受 UDP 封包並將它們儲存在 SQLite3 資料庫中。預設情況下,它將它們儲存在目前目錄中的simpleton.db
中,但您可以使用命令列選項覆寫它。
除了非常簡單的測試之外,這對於任何事情都沒有多大用處,但您可以對其進行擴展。
為了建置 simpleton,您只需執行make
,二進位檔案就會出現在bin
目錄中。預設情況下,它將針對 OSX 建置。
make
若要為其他平台構建,請編輯Makefile
中的GOOS
和GOARCH
變數。您也可以在執行make
時在命令列中輸入這些參數,如下所示。
GOOS=linux GOARCH=amd64 make
您可以在 syslist.go 中找到不同平台的這些變數的值,但最常見的值是:
作業系統 | GOOS | GOARCH |
---|---|---|
作業系統X | 達爾文 | AMD64 |
Linux | 作業系統 | AMD64 |
視窗 | 視窗 | AMD64 |
當然,您可以透過設定正確的 GOOS 和 GOARCH 組合來進行交叉編譯(例如在 OSX 機器上編譯 Linux 二進位檔案),但在 Windows 上您可能會遇到麻煩。 (我還沒有為 Windows 建置這個)。
二進位檔案將出現在bin
中,因此您可以使用以下命令從主目錄運行它:
bin/simpleton
若要列出命令列選項,請使用-h
標誌:
bin/simpleton -h
以下是運行 Simpleton 的範例,其選項使其偵聽特定介面(範例中為 10.1.0.3)和連接埠(7788)並將資料庫儲存在/tmp/simpleton.db
中:
bin/simpleton -u 10.1.0.3:7788 -d /tmp/simpleton.db
如果您想查看產生的資料庫,可以在電腦上安裝 SQLite3 並使用sqlite3
命令檢查資料庫。要打開上一個範例中的資料庫,只需執行:
sqlite3 /tmp/simpleton.db
輸入.schema
可查看非常簡單的資料庫架構。現在您可以對資料執行 SQL 語句。
注意:我不完全確定 SQLite3 的並發性,所以我不會使用資料庫作為整合點(你永遠不應該)。
這也是程式碼在資料庫存取周圍有互斥鎖的原因。該程式碼取自一個具有多個存取資料庫的 goroutine 的專案。這個程式沒有這個功能,但我保留了互斥鎖只是作為提醒。
對於生產用途,您應該使用 PostgreSQL 資料庫或類似的資料庫,該資料庫是為並發而建置的。但對於小型實驗以及當並發性有限時,SQLite3 是一個令人驚訝的強大小野獸。
請注意,HTTP 介面沒有身份驗證或安全機制,因此請勿將其用於測試以外的任何用途。 Web 介面的預設位址為:
http://localhost:8008/
網路介面非常簡單。您有兩個存取資料的 URL:
/data
/data/{id}
第一個傳回 JSON 數組,第二個僅傳回 ID 給定的資料條目的有效負載。 /data
路徑將僅限於資料庫中的 20 個最新條目,但您可以透過設定offset
和limit
URL 參數來分頁瀏覽資料庫:
/data?offset=10&limit=10
Simpleton 支援包含靜態文件的目錄,以便您可以製作一些具有有用內容連結的 HTML 頁面,或者可以託管 JS 前端應用程式。
檢查命令列幫助以查看可以修改的參數。