Pobieranie zdarzeń i dzienników kontenerów w usłudze Azure Container Instances
Jeśli w usłudze Azure Container Instances występuje błąd, zacznij od wyświetlenia jego dzienników za pomocą polecenia az container logs i przesyłania strumieniowego standardowego i standardowego błędu za pomocą polecenia az container attach. Możesz również wyświetlać dzienniki i zdarzenia dla wystąpień kontenera w witrynie Azure Portal lub wysyłać dane dziennika i zdarzenia dla grup kontenerów do dzienników usługi Azure Monitor.
Wyświetlanie dzienników
Aby wyświetlić dzienniki z kodu aplikacji w kontenerze, możesz użyć polecenia az container logs .
Następujące przykładowe dane wyjściowe to dane wyjściowe dziennika z przykładowego kontenera opartego na zadaniach w temacie Ustawianie wiersza polecenia w wystąpieniu kontenera po podaniu nieprawidłowego adresu URL przy użyciu zastąpienia wiersza polecenia:
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
Dołączanie strumieni wyjściowych
Polecenie az container attach udostępnia informacje diagnostyczne podczas uruchamiania kontenera. Po uruchomieniu kontenera przesyła strumieniowo strumienie STDOUT i STDERR do konsoli lokalnej.
Na przykład poniżej przedstawiono dane wyjściowe z kontenera opartego na zadaniach w temacie Ustawianie wiersza polecenia w wystąpieniu kontenera po podaniu prawidłowego adresu URL dużego pliku tekstowego do przetworzenia:
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)]
Pobieranie zdarzeń diagnostycznych
Jeśli wdrożenie kontenera nie powiedzie się pomyślnie, zapoznaj się z informacjami diagnostycznymi dostarczonymi przez dostawcę zasobów usługi Azure Container Instances. Aby wyświetlić zdarzenia dla kontenera, uruchom polecenie az container show :
az container show --resource-group myResourceGroup --name mycontainer
Dane wyjściowe zawierają podstawowe właściwości kontenera wraz ze zdarzeniami wdrażania (pokazanymi tutaj obciętymi):
{
"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
}
],
...
}
],
...
}
Następne kroki
Dowiedz się, jak rozwiązywać typowe problemy z kontenerem i wdrażaniem usługi Azure Container Instances.
Dowiedz się, jak wysyłać dane dziennika i zdarzeń dla grup kontenerów do dzienników usługi Azure Monitor.