Recuperare log ed eventi dei contenitori in Istanze di Azure Container
Quando un contenitore in Istanze di Azure Container non funziona correttamente, iniziare a visualizzarne i log con az container logs e a trasmetterne l'output standard e gli errori standard con az container attach. È anche possibile visualizzare log ed eventi per le istanze del contenitore nel portale di Azure oppure inviare dati di log ed eventi per i gruppi di contenitori a log di Monitoraggio di Azure.
Visualizzare i log
Per visualizzare i log generati dal codice dell'applicazione all'interno di un contenitore, è possibile usare il comando az container logs.
L'output di esempio seguente è l'output del log del contenitore basato su attività di esempio in Imposta la riga di comando in un'istanza del contenitore, dopo aver fornito un URL non valido usando l’esecuzione di un override della riga di comando:
az container logs --resource-group myResourceGroup --name mycontainer
Traceback (most recent call last):
File "wordcount.py", line 11, in <module>
urllib.request.urlretrieve (sys.argv[1], "foo.txt")
File "/usr/local/lib/python3.6/urllib/request.py", line 248, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "/usr/local/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/usr/local/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
Collegare i flussi di output
Il comando az container attach fornisce informazioni diagnostiche durante l'avvio del contenitore. Una volta avviato, il contenitore trasmette STDOUT e STDERR alla console locale.
Ecco ad esempio l'output del contenitore basato su attività in Imposta la riga di comando in un'istanza del contenitore, dopo avere specificato un URL valido di un file di testo di grandi dimensioni da elaborare:
az container attach --resource-group myResourceGroup --name mycontainer
Container 'mycontainer' is in state 'Unknown'...
Container 'mycontainer' is in state 'Waiting'...
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 19:42:39+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-wordcount:latest"
Container 'mycontainer1' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 19:42:39+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-wordcount:latest"
(count: 1) (last timestamp: 2019-03-21 19:42:52+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-wordcount:latest"
(count: 1) (last timestamp: 2019-03-21 19:42:55+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 19:42:55+00:00) Started container
Start streaming logs:
[('the', 22979),
('I', 20003),
('and', 18373),
('to', 15651),
('of', 15558),
('a', 12500),
('you', 11818),
('my', 10651),
('in', 9707),
('is', 8195)]
Recuperare gli eventi di diagnostica
Se il contenitore non viene distribuito correttamente, esaminare le informazioni di diagnostica fornite dal provider di risorse Istanze di Azure Container. Per visualizzare gli eventi per il proprio contenitore, eseguire il comando az container show:
az container show --resource-group myResourceGroup --name mycontainer
L'output include le proprietà principali del contenitore e gli eventi di distribuzione (visualizzati qui troncati):
{
"containers": [
{
"command": null,
"environmentVariables": [],
"image": "mcr.microsoft.com/azuredocs/aci-helloworld",
...
"events": [
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:22+00:00",
"lastTimestamp": "2019-03-21T19:46:22+00:00",
"message": "pulling image \"mcr.microsoft.com/azuredocs/aci-helloworld\"",
"name": "Pulling",
"type": "Normal"
},
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:28+00:00",
"lastTimestamp": "2019-03-21T19:46:28+00:00",
"message": "Successfully pulled image \"mcr.microsoft.com/azuredocs/aci-helloworld\"",
"name": "Pulled",
"type": "Normal"
},
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:31+00:00",
"lastTimestamp": "2019-03-21T19:46:31+00:00",
"message": "Created container",
"name": "Created",
"type": "Normal"
},
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:31+00:00",
"lastTimestamp": "2019-03-21T19:46:31+00:00",
"message": "Started container",
"name": "Started",
"type": "Normal"
}
],
"previousState": null,
"restartCount": 0
},
"name": "mycontainer",
"ports": [
{
"port": 80,
"protocol": null
}
],
...
}
],
...
}
Passaggi successivi
Scoprire come risolvere i problemi comuni dei contenitori e delle distribuzioni per Istanze di Azure Container.
Informazioni su come inviare dati di log ed eventi per i gruppi di contenitori a Log di Monitoraggio di Azure.