Docker Logging

Aus xinux.net
Zur Navigation springen Zur Suche springen

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