Logstash input输入 beats插件 和 syslog插件

Posted 周天祥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logstash input输入 beats插件 和 syslog插件相关的知识,希望对你有一定的参考价值。

Logstash input输入 beats插件 和 syslog插件

Logstash input多个输入插件同时使用

Logstash -7.2.0

filter使用的插件:grok、kv、urldecode、date、mutate、geoip

1、先看总体配置logstash.conf

(执行时请去除所有中文注释)

input 
   #beats输入插件
   beats 
	#绑定主机
     host => "0.0.0.0"
	 #绑定端口
     port => 5044
	 #额外添加字段,这里是为了区分来自哪一个插件
	 add_field => "[fields][class]" => "beats"
   
   
   syslog 
   #绑定端口
	port => 514
	#额外添加字段,这里是为了区分来自哪一个插件
	add_field => "[fields][class]" => "json"
   


filter  
	#处理来自beats插件的日志,beats这里收集的是tomcat的日志
	# 样例:192.168.68.88 - - [16/Mar/2020:11:22:08 +0800] "GET /esws/testService/test?name=天道酬勤&size=50 HTTP/1.1" 200 15315
	if [fields][class] == "beats"
		#grop过滤插件,在编写grop时,可以使用kibana,kibana上有编写工具,无需自己搭建(官方grok速度太慢)
		grok 
			#解析Apache日志,自动分割
			match =>  "message" => "%COMMONAPACHELOG" 
		
		#键值过滤器
		kv 
			#对request字段操作
			source => "request"
			按照& ? 分割
			field_split => "&?"
			value_split => "="
			#选取自己需要的分割后的字段
			include_keys => ["op","reportlet","formlet"] 
		 
		#解码
		urldecode 
			#解码全部字段
			all_fields => true
		
		#日期处理插件
		date 
			#日期匹配,匹配格式可以有多个
			match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
			#匹配的日期存储到字段中
			target => "@timestamp"
		
			
		# 数据修改
		mutate
			#移除指定字段
			remove_field => ["agent","beat","offset","tags","prospector","log","ident","[host][name]","[host][hostname]","[host][architecture]","[host][os]","[host][id]","auth","[input][type]"]
			#复制字段
			copy =>  "@timestamp" => "timestamp" 
			#copy =>  "[fields][fields_type]" => "fields_type" 
			copy =>  "formlet" => "reportlet" 
		
		
		mutate
			#替换
			gsub => ["reportlet", "%2F", "/"]
		
		
		if ! [fields_type]  
			mutate
				copy =>  "[fields][fields_type]" => "fields_type" 
			
		

		date
			match => [ "timestamp", "yyyy-MM-dd-HH:mm:ss" ]
			locale => "cn"
		
		
		#ip解析,分析IP的位置
		geoip
			source => "clientip"
		
	
	#处理来自syslog插件的日志
	if [fields][class] == "json"
		json 
			source => "message"
		
		
		if [host] == "192.168.68.100" 
			mutate
				add_field => "fields_type" => "firewall"
			
		
	
	
	  if ! [fields_type] 
                        mutate
				add_field => "fields_type" => "error-221"
                               
                 


output 
	elasticsearch 
		action => "index"
		#填写ES集群
    hosts => ["http://node-01:9200","http://node-02:9200","http://node-03:9200"]
#ES如果有登陆验证,要配置用户名和密码
#	user => "admin"
#	password => "123456"
		#按字段值,存入不同的索引中
		index => "%fields_type-%+YYYY-MM"
		
	


2、官方文档:

beats:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html

syslog:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-syslog.html

3 对人工智能感兴趣点下面链接

现在人工智能非常火爆,很多朋友都想学,但是一般的教程都是为博硕生准备的,太难看懂了。最近发现了一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默。所以忍不住分享一下给大家。点这里可以跳转到教程。

https://www.cbedai.net/u014646662

以上是关于Logstash input输入 beats插件 和 syslog插件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Go 语言中用 Beats 开发 Logstash 插件

Logstash input输入 jdbc插件

Logstash input输入 http插件

如何使用Logstash

logstash-2-插件配置

ELK logstash邮件报警