4

目前我的日志和logstash在同一台机器上运行,所以我用这个配置(使用拉模型)读取了放在本地机器上的日志

input {     
    file {
        path => "/home/Desktop/Logstash-Input/**/*_log"
        start_position => "beginning"
    }
}

现在,我们在另一台机器上运行 logstash,并希望读取远程机器的日志。

有没有办法在配置文件的文件输入中设置ip?

编辑: 我设法使用作为推送模型的logstash-forwarder来做到这一点(日志托运人/logstash-forwarder会将日志发送到logstash索引服务器)但我仍然在寻找一个没有托运人的拉动模型,logstash索引服务器将去和直接联系远程主机。

4

3 回答 3

6

看看 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
  }
}
于 2017-02-22T14:38:20.980 回答
3

Logstash 不包含从其他计算机的文件系统读取文件的任何魔法(这可能是一件好事)。您要么必须挂载包含您感兴趣的日志的远程文件系统,要么必须在远程计算机上安装日志传送器(例如 Logstash)并将其配置为将数据发送到当前的 Logstash 实例(或 Redis、RabbitMQ 或 Kafka 等中间代理)。

您还可以使用 syslog 守护程序(可能已经安装在机器上)通过 syslog 协议传送日志,但请记住,不能保证每条消息的最大允许长度。

于 2015-07-01T11:09:02.850 回答
-4

您可以在路径中添加远程系统 IP 并从远程计算机访问日志。

input {     
file {
    path => "\\IP address/home/Desktop/Logstash-Input/**/*_log"
    start_position => "beginning"
}}
于 2015-07-07T11:34:55.493 回答