logstash7.15.1读取ngnix的access日志文件并写入elasticsearch7.5.1

本文详细指导如何配置Logstash处理Apache访问日志,包括输入、过滤和输出阶段,并演示了如何使用Grok解析日志,提取关键信息并将其导入Elasticsearch。通过实例展示了如何统计并发访问量和用户行为分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过access日志记录,可以分析出并发访问量的大小,也可以分析访问的基本信息,比如请求ip地址,请求客户端信息以及访问的具体地址等。

1. 配置logstash的配置文件

input {
  file {
    start_position => beginning 
    path => "E:/logstash-test/access.log"
	type => "type1" ### 用去输出到es时判断存入哪个索引	
  }
 
}


filter{
	grok{
	  match => { "message" => "%{HTTPD_COMBINEDLOG}" }
	} ### 通过grok匹配内容并将
	date {        
        match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
		target => "@timestamp"
    }	
}


output {
  stdout{}
  elasticsearch {
   #es地址,可多个
   hosts => ["localhost:9200"]
    action => "index"
	#获取输出参数"indexname"值当做索引,如果没有则会自动创建对应索引(需要es开启自动创建索引)
    index => "qd_ngnix_access-%{+YYYY-MM}"
   }
}

其中,提起日志中的时间,作为日志时间。注意日期的格式应与日志文件中的日期格式一致。

date {        
        match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
		target => "@timestamp"
    }

日志文件参考如下:

223.104.190.204 - - [01/Mar/2022:03:50:01 +0800] "GET /mnt_qingdao/1055.jpg?random=fJeZCdWBhE HTTP/1.1" 200 140228 "https://www.demo.com/qingdao/dcep/" "Mozilla/5.0 (Linux; U; Android 11; zh-CN; NAM-AL00 Build/HUAWEINAM-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 UWS/3.22.2.18 Mobile Safari/537.36 UCBS/3.22.2.18_210803145558 ChannelId(9) NebulaSDK/1.8.100112 Nebula Bankabc/Portal BankabcAndroid/7.1.0 SDKVersion/30  mPaaSClient" "-"

2. 启动logstash

logstash -f logstash2-ngnix.conf

3. 写入日志后,可以从kibana查看日志数据

4. 统计信息

5. 补充格式说明

COMMONAPACHELOG %{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-)

COMBINEDAPACHELOG %{COMMONAPACHELOG} %{QS:referrer} %{QS:agent}

在kibana的Grok Debugger中进行验证:

参考数据:

223.104.190.204 - - [01/Mar/2022:03:50:01 +0800] "GET /mnt_qingdao/1055.jpg?random=fJeZCdWBhE HTTP/1.1" 200 140228 "https://www.demo.com/qingdao/dcep/" "Mozilla/5.0 (Linux; U; Android 11; zh-CN; NAM-AL00 Build/HUAWEINAM-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 UWS/3.22.2.18 Mobile Safari/537.36 UCBS/3.22.2.18_210803145558 ChannelId(9) NebulaSDK/1.8.100112 Nebula Bankabc/Portal BankabcAndroid/7.1.0 SDKVersion/30  mPaaSClient" "-"

Grok Pattern

%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent}

结构化的数据:

{
  "request": "/mnt_qingdao/1055.jpg?random=fJeZCdWBhE",
  "agent": "\"Mozilla/5.0 (Linux; U; Android 11; zh-CN; NAM-AL00 Build/HUAWEINAM-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 UWS/3.22.2.18 Mobile Safari/537.36 UCBS/3.22.2.18_210803145558 ChannelId(9) NebulaSDK/1.8.100112 Nebula Bankabc/Portal BankabcAndroid/7.1.0 SDKVersion/30  mPaaSClient\"",
  "auth": "-",
  "ident": "-",
  "verb": "GET",
  "referrer": "\"https://www.demo.com/qingdao/dcep/\"",
  "response": "200",
  "bytes": "140228",
  "clientip": "223.104.190.204",
  "httpversion": "1.1",
  "timestamp": "01/Mar/2022:03:50:01 +0800"
}

验证界面类似:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值