生成key
docker run --rm mcr.microsoft.com/dotnet/monitor:latest generatekey
Generated ApiKey for dotnet-monitor; use the following header for authorization:Authorization: Bearer eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2dpdGh1Yi5jb20vZG90bmV0L2RvdG5ldC1tb25pdG9yIiwiZXhwIjoiMTc4MDg4NDY3MSIsImlzcyI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb3RuZXQvZG90bmV0LW1vbml0b3IvZ2VuZXJhdGVrZXkrTW9uaXRvckFwaUtleSIsInN1YiI6IjgyNTE3MmFhLTVmMjAtNDcxOS1iZDFlLWE3N2UxMmEyMjBhNSJ9.j2jM0gzySd_eZMTGKGzKvaRT-wqELnt3gl4e7hSF6yT-7ewjnYnJh31jNAO5bXHxdQh6CjFfHlVLrkLegiUw5Pin9hfCBbFwwNY_gMH5GxxZPV4yLzFNrBiMGXcIJGNlSettings in Json format:
{"Authentication": {"MonitorApiKey": {"PublicKey": "eyJjcnYiOiJQLTM4NCIsImtleV9vcHMiOltdLCJrdHkiOiJFQyIsIm90aCI6W10sIngiOiJ4Z1F6SHRMcmFlUWROUjZXZ0FYNnJhcnF5VTctOGlybjFFaWhnQXZyVFlIbUFFUGZqQzlKWm5DSlNYSzQ1YmVZIiwieDVjIjpbXSwieSI6IkJXNHpITm9qbkw2TnBIdHg2cndtanpqdlJDTW5reXM4SUJmQ0xLSFhRVF9XMTA5UXMwS0hvU0x5QUxSMlEwYjUifQ","Subject": "825172aa-5f20-4719-bd1e-a77e12a220a5"}}
}
Docker compose
services:dotnet-monitor:image: mcr.microsoft.com/dotnet/monitor:latestuser: rootports:- "52323:52323"- "52325:52325"volumes:- diag-vol:/diag- tmp-vol:/tmpenvironment:- DOTNETMONITOR_DiagnosticPort__ConnectionMode=Listen- DOTNETMONITOR_DiagnosticPort__EndpointName=/diag/port.sock- DOTNETMONITOR_Authentication__MonitorApiKey__Subject=825172aa-5f20-4719-bd1e-a77e12a220a5- DOTNETMONITOR_Authentication__MonitorApiKey__PublicKey=eyJjcnYiOiJQLTM4NCIsImtleV9vcHMiOltdLCJrdHkiOiJFQyIsIm90aCI6W10sIngiOiJ4Z1F6SHRMcmFlUWROUjZXZ0FYNnJhcnF5VTctOGlybjFFaWhnQXZyVFlIbUFFUGZqQzlKWm5DSlNYSzQ1YmVZIiwieDVjIjpbXSwieSI6IkJXNHpITm9qbkw2TnBIdHg2cndtanpqdlJDTW5reXM4SUJmQ0xLSFhRVF9XMTA5UXMwS0hvU0x5QUxSMlEwYjUifQ- DOTNETMONITOR_Urls=http://+:52323- DOTNETMONITOR_Metrics__Urls=http://+:52325networks:- monitor-netcap_add:- SYS_PTRACEapp:image: myapp:latestports:- "9876:9876"environment:- DOTNET_DiagnosticPorts=/diag/port.sock,suspend=n,connect- DOTNET_DefaultDiagnosticPortSuspend=0volumes:- diag-vol:/diag- tmp-vol:/tmpnetworks:- monitor-netdepends_on:- dotnet-monitorcap_add:- SYS_PTRACEvolumes:diag-vol:tmp-vol:networks:monitor-net:
通过Monitor API访问
$token = "Bearer eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2dpdGh1Yi5jb20vZG90bmV0L2RvdG5ldC1tb25pdG9yIiwiZXhwIjoiMTc4MDg4NDY3MSIsImlzcyI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb3RuZXQvZG90bmV0LW1vbml0b3IvZ2VuZXJhdGVrZXkrTW9uaXRvckFwaUtleSIsInN1YiI6IjgyNTE3MmFhLTVmMjAtNDcxOS1iZDFlLWE3N2UxMmEyMjBhNSJ9.j2jM0gzySd_eZMTGKGzKvaRT-wqELnt3gl4e7hSF6yT-7ewjnYnJh31jNAO5bXHxdQh6CjFfHlVLrkLegiUw5Pin9hfCBbFwwNY_gMH5GxxZPV4yLzFNrBiMGXcIJGNl"
$url = "http://192.168.10.200:52323/dump?type=Full"
$output = "C:\temp\app_$(Get-Date -Format 'yyyyMMdd_HHmmss').dmp"# 创建目录
New-Item -ItemType Directory -Force -Path "C:\temp" | Out-NullWrite-Host "开始下载 dump,请耐心等待(可能需要几分钟)..."$client = [System.Net.WebClient]::new()
$client.Headers.Add("Authorization", $token)
$client.DownloadFile($url, $output)Write-Host "完成!文件保存在: $output"
Write-Host "文件大小: $([math]::Round((Get-Item $output).Length / 1MB, 2)) MB"