使用logstash发送简单日志

时间:2016-03-10 16:35:53

标签: logging logstash

我正在使用logstash从计算机中提取日志并将其发送到logstash服务器。所以我有:

  • 安装在远程计算机上的Logstash(作为“代理”运行,我只需在命令行中添加代理参数)。
  • 我的计算机上安装了Logstash(作为“服务器”运行)。

配置文件是:

  • 对于logstash代理:

    input {
     file {
     path => "D:/mylogs.logs"
     start_position => "beginning"
    }}
    
    output {
     tcp {
     port => "9900" # logstash port
     host => "10.10.10.1" # remote logstash address
    }}
    
  • 对于logstash“server”:

    input {  
     tcp {
     port => "9900"
     host => "10.10.10.1"
    }}
    
    output {
    elasticsearch { hosts => ["localhost:9200"] }
    }}
    

它实际上“有效”。但是要查看服务器端的日志,我必须停止logstash代理(否则,似乎不会发送日志)。为什么会这样?我是ELK的新手,我当然做错了。

1 个答案:

答案 0 :(得分:1)

logstash的tcp插件不会在每个事件(字符串)之间附加换行符,因此不会发送tcp段(直到我关闭代理程序)。

在代理上,在tcp插件配置中,我添加以下属性:

input {
 file {
 path => "D:/mylogs.logs"
 start_position => "beginning"
}}

output {
 tcp {
 codec => json_lines # Fix the new line problem
 port => "9900" # logstash port
 host => "10.10.10.1" # remote logstash address
}}