首页 文章 精选 留言 我的

精选列表

搜索[微服务快速开发平台],共10000篇文章
优秀的个人博客,低调大师

Filebeat+Logstash+ElasticSearch+Kibana搭建Apache访问日志解析平台

对于ELK还不太熟悉的同学可以参考我前面的两篇文章ElasticSearch + Logstash + Kibana 搭建笔记、Log stash学习笔记(一),本文搭建了一套专门访问Apache的访问日志的ELK环境,能够实现访问日志的可视化分析。 数据源 Filebeat + Logstash 数据源对应Logstash中的Input部分,本文采用Filebeat来读取Apache日志提供给Logstash,Logstash进行日志解析输入到ES中进行存储。Filebeat的配置比较简单,参考文章Log stash学习笔记(一)。需要注意的是,如果Filebeat之前发送过数据,需要执行rm data/registry删除缓存数据,强制filebeat从原始数据重新读取数据。 重点来看Logstash的配置 input { beats { port => "5043" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] target => ["datetime"] } geoip { source => "clientip" } } output { elasticsearch { hosts => "47.89.30.169:9200" index => "access_log" } stdout { codec => rubydebug } } 本文使用了grok插件,grok是Logstash默认自带的Filter插件,能够帮助我们将未结构化的日志数据转化为结构化、可查询的数据格式。grok对日志的解析基于特定的正则模式匹配,对于Apache的Access Log 访问日志,多数情况下我们都适用combined格式。 可以看到现在logstash输出的内容包括原始日志信息,以及按照日志格式解析后的各字段信息。 GeoIP插件 配置参考上面,使用了GeoIP插件后,可以对访问IP进行反向解析,返回地址信息。可以用于后续做图。 但是仅仅这样还不够,因为进入ES的数据会自动进行映射,而对于地理数据,需要映射为特殊的geo_point类型,本文未做详细阐述,后续会有文章专门解决这个问题。 timestamp logstash默认为每次导入的数据赋予当前的时间做为时间戳,如果我们希望能够使用日志中的时间做为记录的时间戳,主要用下面的配置。 date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] target => ["datetime"] } 这个配置匹配了日志中的时间,放入timestamp时间戳中,并且新创建了一个单独的datetime字段。 logstash配置完成后,首先确保ElasticSearch处于运行状态,再启动 logstash,最后启动Filebeat。这样,日志数据就会存放在ES中的 access_log 索引下。 ElasticSearch ElasticSearch基本上无需做配置,安装可以参考我之前的文章ElasticSearch + Logstash + Kibana 搭建笔记,这里补充几个常用的API。 列出可用的索引 curl 'localhost:9200/_cat/indices?v' 结果如下图 查询索引数据 $DATE需要替换成具体的日期(格式YYYY.MM.DD),本文就是logstash-2017.08.10。 curl -XGET 'localhost:9200/logstash-$DATE/_search?pretty&q=response=200’ Kibana 首先在Kibana中创建Index Pattern,索引选择 access_log ,时间戳选择 timestamp 或者 datetime,然后在 Discover 中就可以看到数据了。 结合Visualize和Dashboar,可以做出按时间统计的访问曲线和返回状态饼图。 参考资料: 1、Logstash Reference 2、Apache mod_log_config 3、Logstash: modify apache date format 4、Elastic Output Plugin

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册