Logstash 时间格式化

情景:
我这边对接kafka,通过^符号来进行字符串分割
其中, 有个时间字段,但是,时间是14位的数字字符串
类似:20220517162218
于是,我这边需要转换成date类型的,才能在页面上按时间查询
转换成:2022-05-17 14:51:23

代码:

	mutate{
		split => ["message","^"]
		add_field =>   {
            "my_time" => "%{[message][8]}"
        }
	}
	date {
		match => ["my_time","yyyyMMddHHmmss"]
		target => "my_time"
	}
	ruby {
        code => "event.set('my_time', (event.get('my_time').time.localtime).strftime('%Y-%m-%d %H:%M:%S'))"
    }

代码我不做过多的说明了,logstash工具的官方文档就那样,不好理解,只能自己试试。

完整的conf配置内容如下:

input{
  
  file{
        path => "C:/Users/Administrator/Desktop/logstash_7.12.0_kafka_test/alldata/*"
		type => "default"
		add_field => {"flag"=>"fk_11l_topic"}
		start_position => "beginning"
		type => "default"
		codec => plain { charset => "UTF-8" }
  
  }
}

filter {

	mutate{
		split => ["message","^"]
		add_field =>   {
            "my_time" => "%{[message][8]}"
        }
	}

	date {
		match => ["my_time","yyyyMMddHHmmss"]
		target => "my_time"
	}
	ruby {
        code => "event.set('my_time', (event.get('my_time').time.localtime).strftime('%Y-%m-%d %H:%M:%S'))"
    }

	if [message][0] {
        mutate {                
            add_field =>   {
              "acc_num" => "%{[message][0]}"
            }
        }
    } else {
    	mutate {                
            add_field =>   {
                "acc_num" => ""
            }
        }
    }
	

	if [message][8] {
        mutate {       	
            add_field =>   {
              "violation_time" => "%{my_time}"
            }
        }
    } else {
    	mutate {                
            add_field =>   {
                "violation_time" => ""
            }
        }
    }  	
	
	
	mutate{
	   add_field =>   {
            "scene_name" => "WHITELIST_MESSAGE"
			"violation_type_code" => "21"
			"kafka_topic" => "fk_111_topic"
       }
	   remove_field=>["message"] 
	   remove_field=>["@version"] 
	   remove_field=>["my_time"] 
	}	              
}


output {
	elasticsearch {
		hosts => "127.0.0.1:9200"
		index => "1212white111list_message_%{+YYYY-MM-dd}"
		retry_on_conflict => 5
		document_id => "%{acc_num}"
		codec => plain { charset => "UTF-8" }
	}
	stdout { codec => rubydebug }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,Logstash可以通过配置不同的插件来解析和可视数据。例如,可以使用kibana插件将数据可视到kibana仪表板上,也可以使用Elasticsearch插件将数据存储到Elasticsearch中,然后在kibana上进行可视。 ### 回答2: 是的,Logstash通过使用插件可以实现对数据进行可视解析。 Logstash是一个功能强大的开源日志收集、处理和传输工具。它可以从各种来源(如文件、数据库、消息队列等)接收原始数据,然后进行解析、过滤和转换,最后将处理后的数据传输到目标位置,如Elasticsearch、Kafka等。 为了实现数据可视解析,Logstash提供了一些插件。其中最常用的是"grok"插件,它允许我们使用自定义的正则表达式对原始数据进行解析。使用grok插件,我们可以识别原始数据中的特定字段,并将其提取到目标位置。这使得数据变得结构,更容易进行分析和可视。 此外,Logstash还具有其他插件,如"mutate"和"date"插件,它们可以帮助我们对数据进行各种操作,如增加、删除、修改字段,格式日期等。 当我们在Logstash中配置和使用这些插件时,我们可以将原始日志数据转换为结构的数据,以便更容易地进行可视解析。我们可以使用工具如Kibana来实现数据可视,将处理后的数据进行图表和仪表盘的展示,以便更直观地理解和分析数据。 总之,通过使用Logstash的插件,我们可以对数据进行可视解析,使其更加易于理解和分析。 ### 回答3: logstash是一个开源的数据收集引擎,主要用于日志数据的采集、转和传输。它可以与Elasticsearch和Kibana等工具一起使用,提供数据可视和解析的功能。 在数据解析方面,logstash通过使用过滤器插件来解析数据。这些插件可以将原始数据根据预定义的规则进行分解、转换和加工,使其更易于理解和处理。通过使用过滤器插件,用户可以根据自己的需求自定义数据的解析方式。 而对于数据可视logstash通过与Kibana工具的集成,可以将处理过的数据传输到Elasticsearch进行存储,并通过Kibana进行数据可视展示。Kibana可以提供各种图表、仪表盘和报表,帮助用户更直观地理解数据,并进行深入的分析和探索。 总之,logstash可以通过使用过滤器插件实现数据的解析,同时与Kibana等工具一起使用,可以实现数据的可视展示和深入分析。这使得用户可以更加方便地处理和探索大量的日志数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值