Docker Logging: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Standart Syntax= *Der Standart Syntax sieht wie folgt aus. docker inspect [OPTIONS] NAME *Standardmäßig verwendet Docker einen JSON-Dateitreiber, der Proto…“)
 
 
(19 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Standart Syntax=
+
= Syntax =
*Der Standart Syntax sieht wie folgt aus.
 
docker inspect [OPTIONS] NAME
 
*Standardmäßig verwendet Docker einen JSON-Dateitreiber, der Protokolle im JSON-Format in eine containerspezifische Datei auf dem Host schreibt, auf dem der Container ausgeführt wird.
 
=Anzeigen von Docker Image Informationen mit Docker Inspect=
 
*Wir Inspezieren einen nginx Images
 
docker run --name nginx -p 80:80 -d nginx
 
docker inspect nginx
 
*Dieser Befehl gibt uns Inforamtionen über das nginx Images.
 
*Ein Teil dieser Ausgabe sieht so aus
 
<pre>
 
"Architecture": "amd64",
 
"Os": "linux",
 
"Size": 132089228,
 
"VirtualSize": 132089228,
 
</pre>
 
  
=Filtern von Docker Inspect Informationen=
+
* Für einen Container
*Da bei dem Befehl sehr viele Inforamtionen bereitgestellt werden, ist es manchmal sehr nützlich Informatioen herauszufiltern
+
* '''docker logs [OPTIONS] NAME'''
==Beispiel Herausfiltern des Betriebsystems==
+
* Für Services/Tasks eines Docker-Swarms
docker inspect --format='{{.Platform}}' nginx
+
* '''docker service logs [OPTIONS] NAME'''
<pre>
+
* Normalerweise werden Standard Output und Standard Error dem Docker-log übergeben.
linux
 
</pre>
 
  
==Beispiel Herausfiltern einer verschachtelten Information==
+
= Beispiele =
*Containerprotokolle anzeigen:
+
 
  docker logs nginx
+
== Containerprotokolle anzeigen ==
*Nur neue Protokolle anzeigen:  
+
 
  docker logs -f nginx
+
* '''docker logs nginx'''
*CPU- und Speicherauslastung anzeigen:  
+
 
  docker stats
+
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
*CPU- und Speicherauslastung für bestimmte Container anzeigen:
+
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
docker stats nginx
+
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
*Laufende Prozesse in einem Container anzeigen:  
+
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
  docker top nginx
+
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
 +
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
 +
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
 +
  /docker-entrypoint.sh: Configuration complete; ready for start up
 +
2023/02/13 07:11:47 [notice] 1#1: using the "epoll" event method
 +
2023/02/13 07:11:47 [notice] 1#1: nginx/1.23.3
 +
2023/02/13 07:11:47 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
 +
2023/02/13 07:11:47 [notice] 1#1: OS: Linux 5.4.0-137-generic
 +
2023/02/13 07:11:47 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
 +
2023/02/13 07:11:47 [notice] 1#1: start worker processes
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 29
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 30
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 31
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 32
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 33
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 34
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 35
 +
  2023/02/13 07:11:47 [notice] 1#1: start worker process 36
 +
 
 +
== neu einkommende Protokolleinträge anzeigen ==
 +
 
 +
* '''docker logs -f nginx'''
 +
 
 +
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
 +
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
 +
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
 +
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
 +
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
 +
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
 +
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
 +
  /docker-entrypoint.sh: Configuration complete; ready for start up
 +
2023/02/13 07:11:47 [notice] 1#1: using the "epoll" event method
 +
2023/02/13 07:11:47 [notice] 1#1: nginx/1.23.3
 +
2023/02/13 07:11:47 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
 +
2023/02/13 07:11:47 [notice] 1#1: OS: Linux 5.4.0-137-generic
 +
2023/02/13 07:11:47 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
 +
2023/02/13 07:11:47 [notice] 1#1: start worker processes
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 29
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 30
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 31
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 32
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 33
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 34
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 35
 +
2023/02/13 07:11:47 [notice] 1#1: start worker process 36
 +
 
 +
== CPU- und Speicherauslastung ==
 +
 
 +
* '''docker stats'''
 +
 
 +
CONTAINER ID  NAME      CPU %    MEM USAGE / LIMIT    MEM %    NET I/O      BLOCK I/O        PIDS
 +
42f4afd9ad3d  nginx    0.00%    9.316MiB / 11.46GiB  0.08%    1.53kB / 0B  4.1kB / 8.19kB  9
 +
 
 +
* für bestimmte Container
 +
* '''docker stats nginx'''
 +
 
 +
CONTAINER ID  NAME      CPU %    MEM USAGE / LIMIT    MEM %    NET I/O      BLOCK I/O        PIDS
 +
42f4afd9ad3d  nginx    0.00%    9.316MiB / 11.46GiB  0.08%    1.53kB / 0B  4.1kB / 8.19kB  9
 +
 
 +
== Laufende Prozesse in einem Container ==
 +
 
 +
* '''docker top nginx'''
 +
 
 +
UID                PID                PPID                C                  STIME              TTY                TIME                CMD
 +
root                112223              112199              0                  07:11              ?                  00:00:00            nginx: master process nginx -g daemon off;
 +
systemd+            112291              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
systemd+            112292              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
systemd+            112293              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
systemd+            112294              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
systemd+            112295              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
systemd+            112296              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
systemd+            112297              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
  systemd+            112298              112223              0                  07:11              ?                  00:00:00            nginx: worker process
 +
 
 +
= Logging-Methoden =
 +
 
 +
* Die Logging-Methode kann durch die Auswahl eines anderen Logging-Treibers verändert werden
 +
* über '''docker run […] --log-driver ''log_driver''''' kann der Treiber eingestellt werden
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Treiber
 +
! Beschreibung
 +
|-
 +
| none
 +
| No logs are available for the container and docker logs does not return any output.
 +
|-
 +
| local
 +
| Logs are stored in a custom format designed for minimal overhead.
 +
|-
 +
| json-file
 +
| The logs are formatted as JSON. The default logging driver for Docker.
 +
|-
 +
| syslog
 +
| Writes logging messages to the syslog facility. The syslog daemon must be running on the host machine.
 +
|-
 +
| journald
 +
| Writes log messages to journald. The journald daemon must be running on the host machine.
 +
|-
 +
| gelf
 +
| Writes log messages to a Graylog Extended Log Format (GELF) endpoint such as Graylog or Logstash.
 +
|-
 +
| fluentd
 +
| Writes log messages to fluentd (forward input). The fluentd daemon must be running on the host machine.
 +
|-
 +
| awslogs
 +
| Writes log messages to Amazon CloudWatch Logs.
 +
|-
 +
| splunk
 +
| Writes log messages to splunk using the HTTP Event Collector.
 +
|-
 +
| etwlogs
 +
| Writes log messages as Event Tracing for Windows (ETW) events. Only available on Windows platforms.
 +
|-
 +
| gcplogs
 +
| Writes log messages to Google Cloud Platform (GCP) Logging.
 +
|-
 +
| logentries
 +
| Writes log messages to Rapid7 Logentries.
 +
|}
 +
 
 +
= Links =
 +
 
 +
* https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers

Aktuelle Version vom 6. März 2023, 14:52 Uhr

Syntax

  • Für einen Container
  • docker logs [OPTIONS] NAME
  • Für Services/Tasks eines Docker-Swarms
  • docker service logs [OPTIONS] NAME
  • Normalerweise werden Standard Output und Standard Error dem Docker-log übergeben.

Beispiele

Containerprotokolle anzeigen

  • docker logs nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/02/13 07:11:47 [notice] 1#1: using the "epoll" event method
2023/02/13 07:11:47 [notice] 1#1: nginx/1.23.3
2023/02/13 07:11:47 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2023/02/13 07:11:47 [notice] 1#1: OS: Linux 5.4.0-137-generic
2023/02/13 07:11:47 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/02/13 07:11:47 [notice] 1#1: start worker processes
2023/02/13 07:11:47 [notice] 1#1: start worker process 29
2023/02/13 07:11:47 [notice] 1#1: start worker process 30
2023/02/13 07:11:47 [notice] 1#1: start worker process 31
2023/02/13 07:11:47 [notice] 1#1: start worker process 32
2023/02/13 07:11:47 [notice] 1#1: start worker process 33
2023/02/13 07:11:47 [notice] 1#1: start worker process 34
2023/02/13 07:11:47 [notice] 1#1: start worker process 35
2023/02/13 07:11:47 [notice] 1#1: start worker process 36

neu einkommende Protokolleinträge anzeigen

  • docker logs -f nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/02/13 07:11:47 [notice] 1#1: using the "epoll" event method
2023/02/13 07:11:47 [notice] 1#1: nginx/1.23.3
2023/02/13 07:11:47 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2023/02/13 07:11:47 [notice] 1#1: OS: Linux 5.4.0-137-generic
2023/02/13 07:11:47 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/02/13 07:11:47 [notice] 1#1: start worker processes
2023/02/13 07:11:47 [notice] 1#1: start worker process 29
2023/02/13 07:11:47 [notice] 1#1: start worker process 30
2023/02/13 07:11:47 [notice] 1#1: start worker process 31
2023/02/13 07:11:47 [notice] 1#1: start worker process 32
2023/02/13 07:11:47 [notice] 1#1: start worker process 33
2023/02/13 07:11:47 [notice] 1#1: start worker process 34
2023/02/13 07:11:47 [notice] 1#1: start worker process 35
2023/02/13 07:11:47 [notice] 1#1: start worker process 36

CPU- und Speicherauslastung

  • docker stats
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O        PIDS
42f4afd9ad3d   nginx     0.00%     9.316MiB / 11.46GiB   0.08%     1.53kB / 0B   4.1kB / 8.19kB   9
  • für bestimmte Container
  • docker stats nginx
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O        PIDS
42f4afd9ad3d   nginx     0.00%     9.316MiB / 11.46GiB   0.08%     1.53kB / 0B   4.1kB / 8.19kB   9

Laufende Prozesse in einem Container

  • docker top nginx
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                112223              112199              0                   07:11               ?                   00:00:00            nginx: master process nginx -g daemon off;
systemd+            112291              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112292              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112293              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112294              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112295              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112296              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112297              112223              0                   07:11               ?                   00:00:00            nginx: worker process
systemd+            112298              112223              0                   07:11               ?                   00:00:00            nginx: worker process

Logging-Methoden

  • Die Logging-Methode kann durch die Auswahl eines anderen Logging-Treibers verändert werden
  • über docker run […] --log-driver log_driver kann der Treiber eingestellt werden
Treiber Beschreibung
none No logs are available for the container and docker logs does not return any output.
local Logs are stored in a custom format designed for minimal overhead.
json-file The logs are formatted as JSON. The default logging driver for Docker.
syslog Writes logging messages to the syslog facility. The syslog daemon must be running on the host machine.
journald Writes log messages to journald. The journald daemon must be running on the host machine.
gelf Writes log messages to a Graylog Extended Log Format (GELF) endpoint such as Graylog or Logstash.
fluentd Writes log messages to fluentd (forward input). The fluentd daemon must be running on the host machine.
awslogs Writes log messages to Amazon CloudWatch Logs.
splunk Writes log messages to splunk using the HTTP Event Collector.
etwlogs Writes log messages as Event Tracing for Windows (ETW) events. Only available on Windows platforms.
gcplogs Writes log messages to Google Cloud Platform (GCP) Logging.
logentries Writes log messages to Rapid7 Logentries.

Links