Metricbeat Docker Автообнаружение не работает - ELK - PullRequest
0 голосов
/ 15 февраля 2020

Я следовал за autodiscover документами, и мой docker контейнер не был обнаружен службой. Для того, чтобы контейнер был обнаружен, он должен быть помечен, поэтому для проверки работоспособности docker-compose ярлыков я проверил их, и они действительно присутствуют.

My metricbeat.yml:

metricbeat.autodiscover:
  providers:
    - type: docker
      hints.enabled: true
      hints.default_config.enabled: false


# setup filebeat to send output to elasticsearch?
output.elasticsearch:
  hosts: ["elasticsearch:9200"]
  index: "sample2-%{+YYYY.MM.dd}"

setup.template.name: "sample"
setup.template.pattern: "sample-*"

My docker-compose.yml (myloggingapp):

version: '3.7'
services:
  elasticsearch:
    container_name: elasticsearch
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.2
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node
      - cluster.name=docker-
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - esnet
  filebeat:
    container_name: filebeat
    # needed to override user so we can access the log files, and docker.sock
    user: root
    image: myfilebeat:docker
    volumes:
      # needed to access all docker logs (read only) :
      - "/var/lib/docker/containers:/var/lib/docker/containers:ro"
      # needed to access additional informations about containers
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      - esnet
  metricbeat:
    container_name: metricbeat
    # needed to override user so we can access the log files, and docker.sock
    user: root
    image: mymetricbeat:docker
    volumes:
      # needed to access all docker logs (read only) :
      - "/var/lib/docker/containers:/var/lib/docker/containers:ro"
      # needed to access additional informations about containers
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      - esnet
  myloggingapp:
    container_name: loggingapp
    image: myloggingapp:docker
    labels:
      co.elastic.metrics/enabled: true
      co.elastic.metrics/module: 'docker'
      co.elastic.metrics/metricsets: 'cpu'
      co.elastic.metrics/hosts: 'unix:///var/run/docker.sock'
      co.elastic.metrics/period: '10s'
    networks:
      - esnet      
  elastichq:
    container_name: elastichq
    image: elastichq/elasticsearch-hq
    ports:
      - 8080:5000
    environment:
      - HQ_DEFAULT_URL=http://elasticsearch:9200
      - HQ_ENABLE_SSL=False
      - HQ_DEBUG=FALSE
    networks:
      - esnet  
networks:
  esnet:

Единственное, что я прочитал в журналах, это WARN, который был:

WARN docker / docker. go: 63 БЕТА: автообнаружение docker является бета-версией

Тогда служба, похоже, не go дальше этого и, следовательно, не создает metricbeat индекс. Я только получаю свой filebeat индекс.

Что я делаю не так?

...