Hi,
It seems the filebeat misses acks from logstash in my testing rig.
My arrangement
Both Filebeat and Logstash runs on sigle Mac Sierra (10.12.6)
Filebeat
v.5.5.0
Config
filebeat.prospectors:
- input_type: log
paths:
- /Users/me/logstashin.txt
output.logstash:
hosts: ["127.0.0.1:5044"]
Logstash
v.5.5.0
Config
input {
beats {
port => 5044
}
}
output {
stdout { }
}
Steps to repro
At the beginning I clear monitored file logstashin.txt
I delete file registry in the filebeat/data directory
I start logstash and wait until it runs
me@ProjeKCt ~/bin/logstash-5.5.0 $ bin/logstash -f beat.conf
I start filebeat:
me@ProjeKCt ~/bin/filebeat-5.5.0-darwin-x86_64 $ ./filebeat -e -c filebeat.yml -d "publish"
Then I put the following content to the logstashin.txt
pear
apple
cherry
I got the following output from the filebeat:
2017/08/02 12:59:59.352053 log.go:91: INFO Harvester started for file: /Users/me/logstashin.txt
2017/08/02 13:00:04.352374 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T12:59:59.352Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "pear",
"offset": 5,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:00:04.352499 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T12:59:59.352Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "apple ",
"offset": 12,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:00:04.352567 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T12:59:59.352Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "cherry",
"offset": 19,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:00:04.352602 output.go:109: DBG output worker: publish 3 events
2017/08/02 13:00:04.499623 sync.go:70: DBG Events sent: 4
2017/08/02 13:00:29.350998 metrics.go:39: INFO Non-zero metrics in the last 30s: filebeat.harvester.open_files=1 filebeat.harvester.running=1 filebeat.harvester.started=1 libbeat.logstash.call_count.PublishEvents=1 libbeat.logstash.publish.read_bytes=6 libbeat.logstash.publish.write_bytes=275 libbeat.logstash.published_and_acked_events=3 libbeat.publisher.published_events=3 publish.events=4 registrar.states.current=1 registrar.states.update=4 registrar.writes=2
And output from the logstash:
2017-08-02T11:55:22.080Z ProjeKCt.local pear
2017-08-02T11:55:22.080Z ProjeKCt.local apple
2017-08-02T11:55:22.080Z ProjeKCt.local cherry
Then I add the line apricot into logstashin.txt.
Filebeat outputs:
2017/08/02 13:01:29.357144 log.go:91: INFO Harvester started for file: /Users/me/logstashin.txt
2017/08/02 13:01:29.357729 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T13:01:29.357Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "pear",
"offset": 5,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:01:29.357782 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T13:01:29.357Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "apple ",
"offset": 12,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:01:29.357818 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T13:01:29.357Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "cherry",
"offset": 19,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:01:29.357864 client.go:214: DBG Publish: {
"@timestamp": "2017-08-02T13:01:29.357Z",
"beat": {
"hostname": "ProjeKCt.local",
"name": "ProjeKCt.local",
"version": "5.5.0"
},
"input_type": "log",
"message": "apricot",
"offset": 27,
"source": "/Users/me/logstashin.txt",
"type": "log"
}
2017/08/02 13:01:29.357885 output.go:109: DBG output worker: publish 4 events
2017/08/02 13:01:29.358257 sync.go:85: ERR Failed to publish events caused by: write tcp 127.0.0.1:55038->127.0.0.1:5044: write: broken pipe
2017/08/02 13:01:29.358278 single.go:91: INFO Error publishing events (retrying): write tcp 127.0.0.1:55038->127.0.0.1:5044: write: broken pipe
2017/08/02 13:01:30.370035 sync.go:70: DBG Events sent: 5
2017/08/02 13:01:59.351005 metrics.go:39: INFO Non-zero metrics in the last 30s: filebeat.harvester.open_files=1 filebeat.harvester.running=1 filebeat.harvester.started=1 libbeat.logstash.call_count.PublishEvents=2 libbeat.logstash.publish.read_bytes=6 libbeat.logstash.publish.write_bytes=317 libbeat.logstash.publish.write_errors=1 libbeat.logstash.published_and_acked_events=4 libbeat.logstash.published_but_not_acked_events=4 libbeat.publisher.published_events=4 publish.events=5 registrar.states.current=1 registrar.states.update=5 registrar.writes=1
There is a broken pipe error in the output.
Logstash outputs
2017-08-02T13:01:29.357Z ProjeKCt.local pear
2017-08-02T13:01:29.357Z ProjeKCt.local apple
2017-08-02T13:01:29.357Z ProjeKCt.local cherry
2017-08-02T13:01:29.357Z ProjeKCt.local apricot
Filebeat repeated all the data sent previously and appended apricot.