В моем рое докеров есть 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