elk 之logstach管道用法

启动 Logstash
Logstash 的启动命令位于安装路径的 bin 目录中,直接运行 logstash 不行,
需要按如下方式提供参数 :
./logstash -e "input {stdin {}} output {stdout{}}"

bin目录下

1: ./logstash -e "input {stdin {}} output {stdout{}}"

主要是输入和过滤 及 输出流程

例子2:

./bin/logstash -e "input {stdin {}} output {stdout{codec => plain}}"



2:通过定义conf文件来执行:

input { stdin { } }
filter {
    grok {
        match => {
                "message" => "%{WORD:request}\?client=%{WORD:client}&areaCode=%{NUMBER:area}&netWorkId=%{NUMBER:net}"
        }
        remove_field => ["message"]
    }
}
output { stdout {} }
 

1:一个是删除lock,一个是删除上次的偏移量


操作之前 ,删除.lock


std_es.conf 如下:

input { 
    stdin { } 
}
output { 
elasticsearch { 
   hosts => ["http://121.40.42.216:9200"] 
   index => "mystdin" 
   user => "elastic" 
   password => "elasticCll" } 
}

注:会自动创建索引




参考网址1:



ELK快速入门(二)通过logstash收集日志 - 别来无恙- - 博客园

logstash收集tomcat日志

参考网址2:logstash采集日志_木子金丰的博客-CSDN博客_logstash日志收集

grok表达式 参考 Grok常用表达式_zhangsaho的博客-CSDN博客_grok表达式

input {
  file{
	path => "E:/devetool/apache-tomcat-7.0.77/logs/catalina.2019-07-18.log"
	codec => plain{ charset => "GBK" }
	type => "tomcat-catalina"
  }
  
  file{
	path => "E:/devetool/apache-tomcat-7.0.77/log/disconf-log4j.log"
	type => "disconf-log4j"
	#多行日志合并
	codec => multiline{
      negate => true  #是否匹配到
      pattern => "(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}.\d{3})" #匹配的正则
      what => "previous" #将没匹配到的合并到上一条,可选previous或next, previous是合并到匹配的上一行末尾
	}
  }
}

#从采集的数据处理
filter{
	grok{
		match => {"message" => "(?<logdatetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})"}
		remove_field => "logdatetime"
		add_field =>{
            "from" => "lifeng"
        }
	}
	date{
        match => ["logdatetime", "yyyy-MM-dd HH:mm:ss,SSS"]   #这里是如果datetime跟后面的格式匹配上了就会去替换,替换什么呢?target默认指的就是@timestamp,所以就是以datetime的时间更新@timestamp的时间
		target => "@timestamp"
	}
}


output{
	if[type] == "tomcat-catalina"{
		elasticsearch{ 
			hosts => "localhost:9200"
			index => "tomcat-catalina-%{+YYYY.MM.dd}" #索引名称
			document_type => "tomcat-catalina" #type
		} 
	}
	
	if[type] == "disconf-log4j"{
		elasticsearch{ 
			hosts => "localhost:9200"
			index => "disconf-log4j-%{+YYYY.MM.dd}" #索引名称
			document_type => "disconf-log4j" #type
		} 
	}
	
	stdout{

	}
}

Grok表达式

55.3.244.1 GET /index.html 15824 0.043

%{IP:client}\s*%{WORD:method}\s*%{URIPATHPARAM:request}\s*%{NUMBER:bytes}\s*%{NUMBER:duration}

 结果如下

127.0.0.1 - - [03/Nov/2021:15:47:20 +0800] "POST /ewj_market/admin/MarketAccountLog/Com_list.action HTTP/1.1" 200 26205


grok表达式1
%{IP:ip}\s*(-\s*)+\[%{HTTPDATE:date}\]\s*\"%{WORD:method}\s*%{NOTSPACE:requestPath}\s*%{NOTSPACE:uri}\"\s*%{POSINT:status}\s*%{POSINT:port}

grok表达式2
%{IP:ip}\s*(-\s*)+\[%{HTTPDATE:date}\]\s*\"%{WORD:method}\s*%{NOTSPACE:requestPath}\s*%{NOTSPACE:uri}\"\s*%{INT:status}\s*%{POSINT:port}



127.0.0.1 - - [03/Nov/2021:15:47:21 +0800] "GET /ewj_market/common_res/js/base64UTF8.js?_=1635925641868 HTTP/1.1" 200 3005

grok表达式
%{IP:ip}\s*(-\s*)+\[%{HTTPDATE:date}\]\s*\"%{WORD:method}\s*%{NOTSPACE:requestPath}\s*%{NOTSPACE:uri}\"\s*%{POSINT:status}\s*%{POSINT:port}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值