logstash自定义模式无法解决

时间:2019-07-25 13:53:57

标签: logstash logstash-grok

我正在尝试为grok调试设置环境,并使用docker进行了调试。

一切正常,直到logstash尝试解析自定义模式。 这是我的环境

我以

启动docker
  

docker run -it --name logstash_debug -v   /home/cloud/docker-elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml   -v / home / cloud / docker-elk / logstash / pipeline /:/ usr / share / logstash / pipeline /   -v / home / cloud / docker-elk / logstash / patterns /:/ usr / share / logstash / patterns   docker.elastic.co/logstash/logstash:7.2.0

正如我所说,logstash启动,加载管道(debug.conf)

input { stdin {} } 

filter {  
    grok {
          patterns_dir => ["/usr/share/logstash/patterns"]
          match => ["message", "%{YEAR1} \[%{LOGLEVEL:loglvl}\] %{GREEDYDATA:message}"]
    } 
    date {
        match => ["customer_time", "${YEAR1}"]
        target =>  "@timestamp"
    }
}

output { stdout { codec => rubydebug } }

并给我这个错误:

  

无法评估${YEAR1}。替换变量YEAR1不是   在Logstash秘密存储区中定义或作为环境条目定义,并且   没有给出默认值。

patterns_dir包含一个文件“ dateformats”,该文件包含(减少到最小)

  

YEAR1%{YEAR}

logstash调试输出为我提供了此信息:

  

[DEBUG] [logstash.filters.grok]配置   LogStash :: Filters :: Grok / @ patterns_dir =   [“ / usr / share / logstash / patterns”]

     

[DEBUG] [logstash.filters.grok]配置   LogStash :: Filters :: Grok / @ match = {“ message” =>“%{YEAR1}   \ [%{LOGLEVEL:loglvl} \]%{GREEDYDATA:message}“}   .....

     

[DEBUG] [logstash.filters.grok]配置   LogStash :: Filters :: Grok / @ patterns_files_glob =“ *”

通常logstash应该应该能够抓取此文件(我什至用--user 0启动了docker以确保我没有权限问题),但是以某种方式却不能。

任何人都可以提示发生了什么事吗?

谢谢和欢呼

Wurzelseppi

0 个答案:

没有答案