Я экспериментирую с некоторыми json
, которые были отформатированы в соответствии с Elasticsearch
, поэтому я перешел непосредственно с Filebeat
на Elasticsearch, а не через Logstash
. Используется docker-compose
:
version: '2.2'
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
build:
context: .
dockerfile: filebeat.Dockerfile
volumes:
- ./logs:/var/log
- ./filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml
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:
Однако, когда я открываю ElasticHQ
, имя индекса было помечено как filebeat-7.5.2-2020.02.10-000001
с отметкой даты. Я указал index
имя как Sample
в моем filebeat.yml
. Что-то мне не хватает, или это нормальное поведение?
Вот мой filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.json
json.keys_under_root: true
json.add_error_key: true
#----------------------------- Elasticsearch output --------------------------------
output.elasticsearch:
hosts: ["elasticsearch:9200"]
index: "sample-%{+YYYY.MM.dd}"
setup.template.name: "sample"
setup.template.pattern: "sample-*"
Было бы более практичным узнать что-то предопределенное, поэтому, если я использую Почтальон в противоположность ElasticHQ, я могу начать запрашивать свои данные без необходимости искать имя index
.