Filebeat отправляет только часть журналов в logstash при низком размере очереди. Как это исправить? - PullRequest
0 голосов
/ 29 мая 2019

Я отправляю 25000 журналов из filebeat наasticsearch и на другой http-сервер (весенняя загрузка), используя filebeat и logstash. Чтобы отправлять журналы в два места, я использую logstash конвейер для связи с конвейером механизм с шаблоном выходного изолятора . Но проблема в том, что filebeat вместо этого отправляет не все журналы, просто отправляет 5000 журналов, и в журнале отладки он показывает, как показано ниже.

Журнал отладки Filebeat

2019-05-29T15:39:46.993+0530    DEBUG   [monitoring]    memqueue/ackloop.go:160 ackloop: receive ack [295: 0, 1]
2019-05-29T15:39:46.994+0530    DEBUG   [monitoring]    memqueue/eventloop.go:226   handle ACKs: 1
2019-05-29T15:39:46.994+0530    DEBUG   [monitoring]    memqueue/eventloop.go:251   try ack index: (idx=0, i=0, seq=296)

2019-05-29T15:39:46.994+0530    DEBUG   [monitoring]    memqueue/eventloop.go:269   broker ACK events: count=1, start-seq=296, end-seq=296

2019-05-29T15:39:46.994+0530    DEBUG   [monitoring]    memqueue/eventloop.go:228   handle ACK took: 130.793µs
2019-05-29T15:39:46.994+0530    DEBUG   [monitoring]    memqueue/ackloop.go:128 ackloop: return ack to broker loop:1
2019-05-29T15:39:46.994+0530    DEBUG   [monitoring]    memqueue/ackloop.go:131 ackloop:  done send ack
2019-05-29T15:39:47.134+0530    DEBUG   [input] input/input.go:152  Run input
2019-05-29T15:39:47.134+0530    DEBUG   [input] log/input.go:174    Start next scan
2019-05-29T15:39:47.134+0530    DEBUG   [input] log/input.go:404    Check file for harvesting: /home/nishan/Documents/input_logs/request-response-logger.log
2019-05-29T15:39:47.134+0530    DEBUG   [input] log/input.go:494    Update existing file for harvesting: /home/nishan/Documents/input_logs/request-response-logger.log, offset: 33311469
2019-05-29T15:39:47.134+0530    DEBUG   [input] log/input.go:546    Harvester for file is still running: /home/nishan/Documents/input_logs/request-response-logger.log
2019-05-29T15:39:47.134+0530    DEBUG   [input] log/input.go:195    input states cleaned up. Before: 1, After: 1, Pending: 0

Ниже приведены конфигурации в filebeat и logstash.

pipeline.yml

- pipeline.id: intake
  queue.type: persisted
  config.string: |
    input { beats { port => 5043 } }
    output { pipeline { send_to => [spring, es_out] } }

- pipeline.id: spring
  queue.type: persisted
  path.config: "/home/nishan/Documents/logstash-config/spring.conf"
  queue.max_bytes: 15mb

- pipeline.id: elastic
  queue.type: persisted
  path.config: "/home/nishan/Documents/json_push/configurations/elastic.conf"
  queue.max_bytes: 500mb

filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/nishan/Documents/input_logs/*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:
  hosts: ["localhost:5043"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

logstash.yml

pipeline.batch.size: 5
pipeline.batch.delay: 500
path.queue: /home/nishan/Documents/data_files

Если я установлю queue.max_bytes: 1024mb в pipe.yml, он будет работать нормально, и все данные будут отправлены наasticsearch и spring server. Я предполагаю, что это может быть проблемой из-за низкого размера очереди (15 МБ), которую я использовал. Но в logstash reference говорится, что он будет обрабатывать обратное давление путем отклонения соединений, пока очередь заполнена, и он принимает соединения, когда в очередях есть место. В чем может быть причина?

Примечание: Я использую logstash и filebeat версии 6.7 в Ubuntu 18.04.

...