Как очистить файлы журналов из докеризованного ELK? - PullRequest
0 голосов
/ 07 августа 2020

Я использую docker -elk , и я хотел бы очистить все файлы журнала, но я не уверен, где они хранятся. Самое смешное, что когда я останавливаю и удаляю все контейнеры docker, а затем запускаю их из файла docker -compose, сервер ELK по-прежнему содержит все старые журналы. Почему?

Вот мой docker -compose.yml для справки:

version: '3.2'

services:
  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      ELASTIC_PASSWORD: changeme
      # Use single node discovery in order to disable production mode and avoid bootstrap checks
      # see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
      discovery.type: single-node
    network_mode: "host"
    # networks:
    #   - elk

  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    network_mode: "host"
    # networks:
    #   - elk
    depends_on:
      - elasticsearch

  kibana:
    build:
      context: kibana/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    network_mode: "host"
    # networks:
    #   - elk
    depends_on:
      - elasticsearch

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch:

Ответы [ 2 ]

1 голос
/ 12 августа 2020

Вы смонтировали том:

  - type: volume
    source: elasticsearch
    target: /usr/share/elasticsearch/data

Я думаю, если вы удалите этот том и перестроите свой docker -compose, вы получите fre sh контейнер без данных.

0 голосов
/ 12 августа 2020

В то время как не- Docker Elasticsearch ведет журналы в /var/log/elasticsearch/elasticsearch.log по умолчанию (на Linux), контейнеры Docker записывают свои журналы в STDOUT , что обычно является наилучшей практикой Docker. 1004 *.

Эти журналы должны быть в /var/lib/docker/containers/, но обратите внимание, что на Ma c они находятся внутри небольшого уровня виртуальной машины, который использует Docker, поэтому вы не можете получить к нему доступ напрямую.

Как вы «останавливаете и удаляете все контейнеры docker» и при этом «сервер ELK по-прежнему содержит все старые журналы»? docker-compose down -v следует удалить все и вы видите логи в docker logs или еще где-то?

...