gelf2azure
1.0.0
gelf2azure は、UDP から GELF 形式でログを受信し、REST API を使用してそれを Azure Monitor に転送する Docker コンテナーです。
これは、入力では gelf 組み込みの Docker ログ プラグイン、出力では Azure Monitor HTTP データ コレクター API と適切に統合されるように設計されています。
追加のボーナスとして、ログが到着すると表示する小さな Web アプリケーションも公開し、尾のようなエクスペリエンスを提供します。
ターミナルを開き、gelf2azure Docker コンテナーを起動します。
docker run --rm -it -p 12201:12201/udp -p 54313:54313 gimmi/gelf2azure:latest
ブラウザで開きます http://127.0.0.1:54313
別のターミナルを開き、Docker コンテナからサンプル ログを送信します
docker run --rm -it
--name my_container
--log-driver gelf
--log-opt gelf-address=udp://127.0.0.1:12201
alpine echo 'Hello world!'
「Hello world!」というログが表示されるはずです。ブラウザウィンドウに表示されます:
GELF 形式が使用されている限り、メッセージは任意のソースから送信できます。
netcat
あり
nc.exe -u 127.0.0.1 12201
{ "host": "example.org", "short_message": "xoxo", "timestamp": 1602850875.683, "_container_name": "agitated_goldberg" }
またはbashで
echo -n '{"host":"example.org","short_message":"xoxo","timestamp":1602850875.683,"_container_name":"agitated_goldberg"}' > /dev/udp/127.0.0.1/12201
設定は環境変数を渡すことによって行われます。
環境変数 | デフォルト | 説明 |
---|---|---|
AZURE_CUSTOMER_ID | Azure API のCustomerID (別名ワークスペース ID) パラメーター。これを未設定のままにすると、Azure へのデータの送信が無効になります。 | |
AZURE_SHARED_KEY | Azure API のSharedKey (別名主キー) パラメーター | |
AZURE_LOG_TYPE | Azure API のLog-Type パラメータ | |
AZURE_BATCH_MS | 5000 | Azure Monitor に送信するためにデータが収集される頻度 |
AZURE_TIMEOUT_MS | 30000 | Azure Monitor REST 呼び出しのタイムアウト |
HTTPS_PROXY | 必要に応じて、 http://my.proxy.com:80 などのプロキシを設定します。 | |
デバッグ | 内部ログを有効にするには、値app:* を使用します。トラブルシューティングに役立ちます |
Azure CLI で次のコマンドを実行します。
az monitor log-analytics workspace create
--subscription my_subs
--resource-group my_group
--location westeurope
--workspace-name my-la-ws
{
"customerId": "THIS IS AZURE_CUSTOMER_ID"
}
az monitor log-analytics workspace get-shared-keys
--subscription my_subs
--resource-group my_group
--workspace-name my-la-ws
{
"primarySharedKey": "THIS IS AZURE_SHARED_KEY"
}
gelf2azure は、gelf 組み込み Docker ロギング プラグインと一緒に使用するように設計されています。これを有効にするには、 /etc/docker/daemon.json
を次のように変更します。
{
"log-driver" : " gelf " ,
"log-opts" : {
"gelf-address" : " udp://172.16.0.13:12201 "
}
}
docker build --pull --no-cache -t gimmi/gelf2azure:latest .