Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
logstash转发器开始位置=>开始_Logstash_Logstash Forwarder - Fatal编程技术网

logstash转发器开始位置=>开始

logstash转发器开始位置=>开始,logstash,logstash-forwarder,Logstash,Logstash Forwarder,我正在使用logstash进行集中式日志记录。我在shipper节点上使用logstash forwarder,在collector节点上使用ELK stack。问题是我希望logstash从shipper节点上存在的文件的开头开始解析。发货人上的配置文件logstash-forwarder.conf具有以下配置: { "network": { "servers": [ "XXX.XX.XX.XXX:5000" ],

我正在使用logstash进行集中式日志记录。我在shipper节点上使用logstash forwarder,在collector节点上使用ELK stack。问题是我希望logstash从shipper节点上存在的文件的开头开始解析。发货人上的配置文件logstash-forwarder.conf具有以下配置:

       {
          "network": {
            "servers": [ "XXX.XX.XX.XXX:5000" ],
            "timeout": 15,
            "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
          },
          "files": [
            {   
              "paths": [
                "/apps/newlogs.txt"
               ],
              "fields": { "type": "syslog" }
            }
           ]
        }
收集器配置为:

input { 
  lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }   
}
filter {
if [type] == "syslog" {
grok {
     match => { "message" => "%{TIMESTAMP_ISO8601:logdate}\s%{LOGLEVEL:level}\s-\s%{WORD:USE_CASE}\s:\s%{WORD:STEP_DETAIL}\s:\s\[%{WORD:XXX}\]\s:\s(?<XXX>([^\s]+))\s:\s%{GREEDYDATA:MESSAGE_DETAILS}" }
     add_field => [ "received_at", "%{@timestamp}" ]
     add_field => [ "received_from", "%{host}" ]
     add_tag => [ "level:%{level}" ]
     add_tag => [ "USE_CASE:%{USE_CASE}" ]

   }
}
}
output {
  elasticsearch { host => localhost}
  stdout { codec => rubydebug }
}
我希望该文件应该从begging解析,而不是针对生成的每个事件进行解析,我们可以在logstash.conf中通过指定start_position=>start轻松解析,但我无法在logstash forwarder中找到一种简单的方法,因为该文件将出现在发货方


谢谢。

据我所知,logstash forwarder的默认行为是从文件的开头开始-因此发货人应该已经按照预期从开头开始读取了


你还没有说你试着做了什么来诊断问题。如果您还没有这样做,我将暂时绕过收集器,以确认发货人正在按预期工作,并排除证书的潜在问题。

感谢@petevon为您提供宝贵的时间。实际上,每当生成新事件时,它只会正确解析,而不会从一开始就读取。为了诊断此问题,我放置了一个带有预包含日志语句的新文件,但它没有从一开始就拾取日志。我使用的是版本logstash-forwarder-0.3.1-1。还提到,转发器从这里开始解析文件,但它不会从开始拾取消息。我是否缺少任何配置属性。