Я использую Kibana 7.5.2
и Elastic search 7
.
Мой первый подход: Я отправляю данные журнала и системные данные с использованием fluentd и metricbeat соответственно на мой сервер Kibana. Все работает нормально. Я могу видеть данные на странице обнаружения. Но у меня было большое количество данных. поэтому я добавил Кафку между серверами.
Мой второй подход: Теперь я посылаю данные журнала и системные данные в Кафку. а затем из Кафки я отправляю его на сервер Kibana. Для системных данных через metricbeat я получаю поле @ timestamp в Кибане, а для данных журнала через свободный, я не получаю @ отметка времени поле.
Если я запускаю сервер Kafka по отдельности для обоих по одному, все работает нормально. но если я запущу их обоих вместе. Системные данные не отображаются на вкладке обнаружения.
Индекс Kibana для Системные данные : metricbeat-*
Индекс Kibana для log данные : prelive-data*
Свободный конф
<match laravel.**>
@type kafka2
# list of seed brokers
brokers <my-Broker-ip>:9092
<buffer topic>
@type file
path /var/log/td-agent/buffer/td
flush_interval 3s
</buffer>
# topic settings
# data type settings
<format>
@type json
</format>
# topic settings
topic_key prelive-data-log
default_topic prelive-data-log
# producer settings
compression_codec gzip
# max_send_retries 1
required_acks -1
</match>
metricbeat.yml
#----------------------------- KAFKA --------------------------------
output.kafka:
# # initial brokers for reading cluster metadata
hosts: ["<my-broker-ip>:9092"]
topic: 'metricbeat-7.6.0-2020.03.25-000001'
worker.properties сервера Kafka для системных данных (metricbeat)
offset.storage.file.filename=/tmp/connectm.offsets
bootstrap.servers=:9092
offset.flush.interval.ms=10000
rest.port=10084
rest.host.name=localhost
rest.advertised.port=10085
rest.advertised.host.name=localhost
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
plugin.path=/usr/share/java
filesource.properties сервера Kafka для системных данных (metricbeat)
name=config-name
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=metricbeat-7.6.0-2020.03.25-000001
key.ignore=true
schema.ignore=true
connection.url=http://<ES-IP>:9200
connection.username=username
connection.password=password
type.name=kafka-connect
~
worker.properties сервера Kafka для системных данных (fluentd)
offset.storage.file.filename=/tmp/connectf.offsets
bootstrap.servers=:9092
offset.flush.interval.ms=10000
rest.port=10082
rest.host.name=localhost
rest.advertised.port=10083
rest.advertised.host.name=localhost
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
plugin.path=/usr/share/java
filesource.properties сервера kafka для системных данных (fluentd)
name=<config-name>
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=2
topics=prelive-data-log
key.ignore=true
schema.ignore=true
connection.url=http://<my-ES-ip>:9200
connection.username=username
connection.password=password
type.name=kafka-connect
Я использую свой сервер Kafka /usr/bin/connect-standalone worker.properties filesource.properties
Я застрял здесь на неделю. Любая помощь будет оценена.