在Windows计算机上安装了Filebeat 7.3.0,以将日志发送到ELK。第一次运行“启动服务filebeat”之后,一切都按预期工作。我可以看到kibana中的所有事件。但是,在filebeat.yml上进行了一些更改,然后尝试重新启动服务后,突然,我收到了此错误:
Start-Service : Service 'filebeat (filebeat)' cannot be started due to the following error: Cannot open filebeat
service on computer '.'.
At line:1 char:1
Start-Service filebeat
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
ServiceCommandException
+ FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand
如果我尝试使用“ filebeat.exe -e”命令在前台运行filebeat,它将再次运行。在Google上进行了一些研究之后,我仍然感到困惑,为什么我会遇到此错误。然后我有一种感觉,也许这与我的文件夹权限有关。我更改了Filebeat文件夹(及其子文件夹)的属性,以确保管理员有权对其进行写入,然后Start-Service命令再次起作用。但是这一次,filebeat并未向Filebeat / logs写入任何内容。但是,它确实从目标文件中收集数据并将其发送到ELK。
所以我再次重新启动了文件拍,除了发生了新问题外,它还是一样。我注意到它讨厌已经发送的旧事件。甚至更奇怪,看起来它也没有重新发送整个目标文件,只是重新发送了一部分。
因此,假设目标文件只有一行:“ A”。我启动filebeat,好的,它将发送A到ELK。然后,将“ B”行添加到目标文件,好的,filebeat也将B发送给ElK。现在,如果我重新启动filebeat,它将重新发送B,仅重新发送B给ELK。由于我没有任何可检查的日志,因此我在这里完全感到困惑。此外,在注册表文件夹中,有三个文件,data.json,meta.json和data.json.old。什么是data.json.old?我在Google上找不到与此文件有关的任何内容。也许是潜在的原因?
下面是我的filebeat.yml:
filebeat.inputs:
- type: log
enabled: true
paths:
- C:\Users\njuho\Downloads\Filebeats_test_logs\*
fields:
application: "yihao_test_app"
fields_under_root: true
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
index.number_of_replicas: 0
setup.kibana:
host: "my kibana server ip"
output.elasticsearch:
hosts: ["my elk server ip"]
username: "elastic"
password: "mypassword"
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~