ELK日志实时分析

项目实训报告:ELK日志实时分析

任务目标

  • 使用filebeat采集日志数据,通过kafka将数据传输给logstash进行过滤,最后输出到Elasticsearch绘制数据图表。

  • 数据说明
    在这里插入图片描述

实施步骤

  • 将数据上传到家目录(/home/hadoop)(系统中已经存在,不用上传)
  • 删除以前filebeat中的数据文件:
cd /usr/local/filebeat/data
rm -r regsitry

在这里插入图片描述

  • 编写filebat配置文件,采集家目录下名为access_2018_05_01.log的数据文件
cd /usr/local/filebeat

vim filebeat.yml
# 修改以下配置
filebeat.inputs:
 - type: log
   enabled: true
   paths:
     - /home/hadoop/access_2018_05_01.log
output.kafka:
   hosts: ["localhost:9092"]
   topic: "applog"
processors:
- drop_fields:
   fields: ["beat", "input", "source", "offset"]

在这里插入图片描述

  • 启动kafka进程,并启动filebeat
cd /usr/local/kafka
./bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties

在这里插入图片描述

  • 修改kafka配置文件
cd /usr/local/kafka/config/
vim server.properties
# 按照如下内容修改配置文件
listeners=PLAINTEXT://localhost:9092

在这里插入图片描述

在这里插入图片描述

  • 启动kafka
cd /usr/local/kafka
./bin/kafka-server-start.sh -daemon ./config/server.properties
jps

在这里插入图片描述

  • 启动filebeat
cd /usr/local/filebeat/
./filebeat -e -c filebeat.yml 
 #不要关闭此窗口,方便调试

在这里插入图片描述

  • 配置Logstash接收kafka数据,并匹配日志文件中的详细指标,使用geoip取出IP地址的地理位置信息,并将结果输出到Elasticsearch。
cd /usr/local/logstash/

vim logstash-plain-map.conf   
#配置文件内容如下

input{  
 kafka{    
   bootstrap_servers=> "localhost:9092"    
   topics => ["applog"]    
   group_id => "logstash-file"    
   codec => "json"
}
}
filter{  
  grok{         
 			match => {               
"message" => "%{IPORHOST:clientip} %{HTTPDUSER:ident} %{HTTPDUSER:auth} \[%{HTTPDATE:timestamp}\] \"%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})\" %{NUMBER:response}\ %{NUMBER:bytes}"         
		}
}             
	geoip {     
	source => "clientip"     
	database => "/home/hadoop/GeoLite2-City.mmdb"
}
}
output{     
	elasticsearch {      
	 hosts => ["localhost:9200"]      
	 index => "logstash-logs-2022"    
}            
		stdout{            
			codec => rubydebug       
		 }   
 }
  • 启动Elasticsearch
cd /usr/local/elasticsearch-6.1.0/
./bin/elasticsearch   
#此窗口不要关闭,方便调试
  • 新建一个终端窗口,运行Logstash分析软件
cd /usr/local/logstash
logstash -f ./logstash-plain-map.conf
  • 启动Kibana,在任意终端输入
kibana
  • 然后访问[虚拟机IP地址]:5601, 点击Management,然后选择“Create index pattern", 在”Index pattern" 栏中输入“logstash-logs-2020",点击"Next step"
  • 设置时间过滤器字段名称,选择@timestamp 点击 “Create index pattern” .
    在这里插入图片描述

在这里插入图片描述

  • 绘制各时间段访问流量图。点击“Visualize”,选择加号,创建“Line”图,设置X轴的“Aggregation”为“terms”,“Field”为“timestamp.keyword”,“Size”为10,

在这里插入图片描述
在这里插入图片描述

  • 如果不能显示结果,请点击右上角的时间过滤器,选择this week
    在这里插入图片描述

  • 保存各时间段访问流量图。点击“Save”,将名称设置为“各时间段访问流量”
    在这里插入图片描述

  • 创建访问流量前10名图新建Vertical Bar 图,

X轴的 Aggregation设为 Terms,
filed设为geoip.country_code3.keyword
size 10

  • 制网站总访问流量图。创建Metric图,并保存。
  • 创建访问前10名访问量占比图新建Pie图

X轴Aggregation 为TermsField:geoip.country_code3.keyword
size:10

  • 创建世界访问分布图新建 Coordinate Map

X轴 Aggregation:geohash
Field: geoip.location

  • 创建仪表盘。

点击 Dashboard, 选择 “ Create a dashboard" 点击Add 单击显示的所有图表名称。

实训小结

  • 日志实时分析是 ELK 组件的核心业务场景之一,而核心中的核心是 Logstash 中间处理 filter 环节。
  • 掌握了 filter 环节,就掌握了 ELK 实时日志分析的精髓。
  • logstash-plain-map.conffilebeat.yml 两个文件容易出错,注意缩进
  • 有些窗口不可关闭!!!
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

書盡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值