Docker Logging: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
 
* Normalerweise werden Standard Output und Standard Error dem Docker-log übergeben.
 
* Normalerweise werden Standard Output und Standard Error dem Docker-log übergeben.
  
== Beispiel fürs anzeigen verschiedener Docker Informationen ==
+
= Beispiele =
  
* Containerprotokolle anzeigen
+
== Containerprotokolle anzeigen ==
* docker logs nginx
+
 
 +
* '''docker logs nginx'''
  
 
 
  /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
 
  /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: Looking for shell scripts in /docker-entrypoint.d/
Zeile 35: Zeile 35:
 
  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 35
 
  2023/02/13 07:11:47 [notice] 1#1: start worker process 36
 
  2023/02/13 07:11:47 [notice] 1#1: start worker process 36
+
 
+
== neu einkommende Protokolleinträge anzeigen ==
* Nur neue Protokolle anzeigen:
+
 
 
* '''docker logs -f nginx'''
 
* '''docker logs -f nginx'''
  
 
 
  /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
 
  /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: Looking for shell scripts in /docker-entrypoint.d/
Zeile 63: Zeile 62:
 
  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 35
 
  2023/02/13 07:11:47 [notice] 1#1: start worker process 36
 
  2023/02/13 07:11:47 [notice] 1#1: start worker process 36
+
 
+
== CPU- und Speicherauslastung ==
* CPU- und Speicherauslastung anzeigen:
+
 
 
* '''docker stats'''
 
* '''docker stats'''
  
 
 
  CONTAINER ID  NAME      CPU %    MEM USAGE / LIMIT    MEM %    NET I/O      BLOCK I/O        PIDS
 
  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
 
  42f4afd9ad3d  nginx    0.00%    9.316MiB / 11.46GiB  0.08%    1.53kB / 0B  4.1kB / 8.19kB  9
+
 
* CPU- und Speicherauslastung für bestimmte Container anzeigen:
+
* für bestimmte Container
 
* '''docker stats nginx'''
 
* '''docker stats nginx'''
  
 
 
  CONTAINER ID  NAME      CPU %    MEM USAGE / LIMIT    MEM %    NET I/O      BLOCK I/O        PIDS
 
  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
 
  42f4afd9ad3d  nginx    0.00%    9.316MiB / 11.46GiB  0.08%    1.53kB / 0B  4.1kB / 8.19kB  9
+
 
* Laufende Prozesse in einem Container anzeigen:
+
== Laufende Prozesse in einem Container ==
 +
 
 
* '''docker top nginx'''
 
* '''docker top nginx'''
  
 
 
  UID                PID                PPID                C                  STIME              TTY                TIME                CMD
 
  UID                PID                PPID                C                  STIME              TTY                TIME                CMD
 
  root                112223              112199              0                  07:11              ?                  00:00:00            nginx: master process nginx -g daemon off;
 
  root                112223              112199              0                  07:11              ?                  00:00:00            nginx: master process nginx -g daemon off;
Zeile 93: Zeile 90:
 
  systemd+            112297              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
 
  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