目前我的日志和logstash在同一台机器上运行,因此我使用此配置读取放置在本地计算机上的日志(使用拉模型)
input {
file {
path => "/home/Desktop/Logstash-Input/**/*_log"
start_position => "beginning"
}
}
现在,我们已在另一台计算机上运行logstash,并希望读取远程机器的日志。
有没有办法在配置文件的文件输入中设置ip?
修改 我设法用logstash-forwarder这是一个推送模型(日志托运人/ logstash-forwarder将日志发送到logstash索引服务器),但我仍在寻找没有托运人的拉模型,其中logstash索引服务器将直接联系到远程主机。
答案 0 :(得分:5)
看看FileBeat:https://www.elastic.co/products/beats/filebeat
它不是拉模型,但似乎比logstash-forwarder更好。
它监视日志文件并将它们转发给Logstash或Elasticsearh。它还保留日志文件的状态,并保证事件将至少传送一次(取决于日志转速)。配置非常简单:
输入配置:
input_type: log
paths:
- /opt/app/logs
输出配置
output.logstash:
hosts: ["remote_host:5044"]
index: filebeat_logs
在logstash端,您必须安装并配置Beats输入插件:
input {
beats {
port => 5044
}
}
答案 1 :(得分:3)
Logstash不包含任何从其他计算机的文件系统中读取文件的魔力(这可能是一件好事)。您必须安装包含您感兴趣的日志的远程文件系统,或者您必须在远程计算机上安装日志托运器(例如Logstash)并配置它以将数据发送到您的当前的Logstash实例(或Redis,RabbitMQ或Kafka等中间代理)。
您还可以使用syslog守护程序(可能已安装在计算机上)通过syslog协议发送日志,但请记住,不能保证每个守护程序的最大允许长度消息。
答案 2 :(得分:-3)
您可以在路径中添加远程系统IP并从远程计算机访问日志。
input {
file {
path => "\\IP address/home/Desktop/Logstash-Input/**/*_log"
start_position => "beginning"
}}