У меня странная проблема, которую я не могу решить, так как моя проблема при поиске этой ошибки отличается. Люди, кажется, испытали это, когда пытались подключить Filebeat
к Logstash
.
Однако я пытаюсь записывать журналы напрямую на Elasticsearch
, но я получаю Logstash
ошибки, даже если я даже не раскручивает контейнер в Docker Compose
??
Main Docker Compose File:
version: '2.2'
services:
filebeat:
container_name: filebeat
build:
context: .
dockerfile: filebeat.Dockerfile
volumes:
- ./logs:/var/log
networks:
- esnet
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
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:
DockerFile
для Filebeat
FROM docker.elastic.co/beats/filebeat:7.5.2
COPY filebeat/filebeat.yml /usr/share/filebeat/filebeat.yml
USER root
RUN chown root:filebeat /usr/share/filebeat/filebeat.yml
RUN chmod 644 /usr/share/filebeat/filebeat.yml
USER filebeat
Я пытаюсь прочитать json
журналы, которые уже в формате Elasticsearch
, поэтому после прочтения документации я решил попробовать и записать напрямую в Elasticsearch
, что, по-видимому, допустимо в зависимости от приложения.
Мой Sample.json
файл:
{"@ timestamp": "2020-02-10T09: 35: 20.7793960 + 00: 00", "level": "Information", "messageTemplate": " Значение i равно {LoopCountValue} "," message ":" Значение i равно 0 "," fields ": {" LoopCountValue ": 0," SourceContext ":" WebAppLogger.Startup "," Environment ":" Development "," ApplicationName ":" ELK Logging Demo "}}
My Filebeat.yml
:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.json
json.keys_under_root: true
json.add_error_key: true
json.message_key: log
#----------------------------- Elasticsearch output --------------------------------
output.elasticsearch:
hosts: ["elasticsearch:9200"]
index: "sample-%{+YYYY.MM.dd}"
Как указано в заголовке этого сообщения, я получаю это сообщение в консоль:
filebeat | 2020-02-10T09: 38: 24.438Z ОШИБКА конвейера / вывода. go: 100 Не удалось подключиться к откату (asyn c (tcp: // logsta sh: 5044)): поиск logsta sh on 127.0.0.11:53: такого хоста нет
Тогда, когда я в конце концов пытаюсь визуализировать данные в ElasticHq
, неизбежно ничего не появляется.
Пока попробовал использовать такие команды, как docker prune
на всякий случай, если с Docker происходит что-то смешное.
Есть что-то, чего я пропускаю?