logstash转发器开始位置=>开始
我正在使用logstash进行集中式日志记录。我在shipper节点上使用logstash forwarder,在collector节点上使用ELK stack。问题是我希望logstash从shipper节点上存在的文件的开头开始解析。发货人上的配置文件logstash-forwarder.conf具有以下配置: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" ],
{
"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。还提到,转发器从这里开始解析文件,但它不会从开始拾取消息。我是否缺少任何配置属性。