gelf2azure
1.0.0
gelf2azure는 UDP에서 GELF 형식의 로그를 수신하고 REST API를 사용하여 Azure Monitor에 전달하는 Docker 컨테이너입니다.
이는 입력의 gelf 기본 제공 Docker 로깅 플러그인 및 출력의 Azure Monitor HTTP 데이터 수집기 API와 원활하게 통합되도록 설계되었습니다.
추가 보너스로, 도착하는 로그를 표시하는 작은 웹 애플리케이션도 노출하여 꼬리와 같은 경험을 제공합니다.
터미널을 열고 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" }
아니면 배쉬에서
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 (AKA Workspace ID) 매개 변수입니다. 이를 설정하지 않으면 Azure로 데이터를 보낼 수 없게 됩니다. | |
AZURE_SHARE_KEY | Azure API에 대한 SharedKey (AKA 기본 키) 매개 변수 | |
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 .