Отправить логи в logstash из другого стека роя - PullRequest
0 голосов
/ 04 марта 2019

В моем рое докеров есть 2 стека.Один из них - лось (Elastic search, Kibbana и Logstash), а другой - мое веб-приложение.

По некоторым причинам я не хочу использовать один и тот же стек для служб elk и приложений.

Я хочу отправлять журналы доступа к своему веб-приложению с помощью syslog в Logstash.Я протестировал стек лося с помощью команды ping, чтобы убедиться, что он работает нормально.Затем я установил драйвер регистрации в своем приложении и создал чрезмерную сеть и даже использовал внешние ссылки.Но, похоже, ничего не работает, и моя служба приложений не запускается из-за обнаружения службы службы ведения журнала.

starting container failed: failed to initialize logging driver: dial tcp: lookup logstash on 10.131.57.151:53

Вот мой составной файл стека лося:

version: "3.3"

services:
  elasticsearch:
    command: elasticsearch -Enetwork.host=0.0.0.0 -Ediscovery.zen.ping.unicast.hosts=elasticsearch
    environment:
      ES_JAVA_OPTS: -Xms2g -Xmx2g
    image: registry:8019/elasticsearch
    ulimits:
      memlock: -1
      nofile:
        hard: 65536
        soft: 65536
      nproc: 65538
    volumes:
      - es_data:/usr/share/elasticsearch/data
    networks:
      - elk
    deploy:
      mode: replicated
      replicas: 1
      endpoint_mode: dnsrr
      placement:
        constraints: [node.role == manager, node.hostname == mainhost]

  kibana:
    image: registry:8019/kibana
    ports:
      - "5601:5601"
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
    networks:
      - elk
    deploy:
      mode: replicated
      replicas: 1
    healthcheck:
      test: wget -qO- http://localhost:5601 > /dev/null
      interval: 30s
      retries: 3
  logstash:
    hostname: logstash
    command: sh -c "logstash -e 'input { syslog  { type => syslog port => 10514   } gelf { } } output { stdout { codec => rubydebug } elasticsearch { hosts => [ \"elasticsearch\" ] } }'"
    image: registry:8019/logstash
    ports:
        - "10514:10514/tcp"
        - "10514:10514/udp"
        - "12201:12201/udp"
    networks:
      - elk
      - logging

    deploy:
      mode: replicated
      replicas: 2

networks:
  elk:
    driver: overlay
  logging:
    external:
      name: logging

volumes:
  es_data:

И приложение:

version: "3.3"

services:
  gateway:
    image: registry:8019/dpos/gateway
    configs:
      - 
        source: Gateway
        target: /usr/src/app/application/environ.py
    ports:
    - "3031:3031"

    networks:
      - logging

    external_links:
    - logstash.elk:logstash

    logging:
      driver: syslog
      options:
        syslog-address: "tcp://logstash:10514"

    deploy:
      mode: replicated
      replicas: 1

configs:
  Gateway:
    external: true

networks:
  logging:
    external:
      name: logging
...