ELK中logstash收集项目日志时,如何只收集ERROR级别日志

发布于 2021-12-04 10:04:59 字数 132 浏览 777 评论 5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

贱贱哒 2021-12-06 12:41:30

后来发现,以上配置,只对一个项目的日志起作用,别的一样格式的日志不起作用。

掩饰不了的爱 2021-12-06 12:05:04
filter {
	grok {
		match => { "message" => "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} %{HOUR:hour}:?%{MINUTE:minute}(?::?%{SECOND}) %{LOGLEVEL:level}[ ]+%{JAVACLASS:class} %{JAVAFILE:line} - %{GREEDYDATA:logmsg}"} 
		remove_field => "message"
	}
	if [LOGLEVEL] == "DEBUG" {
            drop {}
            }
        if [LOGLEVEL] == "INFO" {
            drop {}
            }
	if [LOGLEVEL] == "WARN" {
            drop {}
            }
	date {
		match => [ "%{year}-%{month}-%{day} %{hour}:%{minute}:%{SECOND}" , "YYYY-MM-dd HH:mm:ss" ]
		target => "@timestamp" 
		add_tag => [ "tmatch" ]
	}
}

重点是这段

	if [LOGLEVEL] == "DEBUG" {
            drop {}
            }

 

网名女生简单气质 2021-12-06 04:18:28

filter {
          if ([message] = " ") {
           
          }

空城仅有旧梦在 2021-12-05 17:57:46

你可以在 日志收集端/es收集端的 logstash,将每行内容分段好, 假设分段结果为

{
  "time": "2017-01-21 11:21:25,652",
  "level": "ERROR",
  ....
}

在es的logstash-ouput, 就能通过 if 判断 level内容 那个字段来写入es

凡尘雨 2021-12-05 07:40:11
output {
	if [level] == "ERROR"  {
    #stdout { codec => rubydebug }
    	    redis {
		
		}
	}
}

最后换成了if的格式

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文