Elastic Stack实战学习教程~日志数据的收集、分析与可视化

简介: 近几年,互联网生成数据的速度不断递增,为了便于用户能够更快更精准的找到想要的内容,站内搜索或应用内搜索成了不可缺少了的功能之一。同时,企业积累的数据也再不断递增,对海量数据分析处理、可视化的需求也越来越高。

Elastic Stack介绍

近几年,互联网生成数据的速度不断递增,为了便于用户能够更快更精准的找到想要的内容,站内搜索或应用内搜索成了不可缺少了的功能之一。同时,企业积累的数据也再不断递增,对海量数据分析处理、可视化的需求也越来越高。

在这个领域里,开源项目ElasticSearch赢得了市场的关注,比如,去年Elastic公司与阿里云达成合作伙伴关系提供阿里云 Elasticsearch 的云服务、今年10月Elastic公司上市,今年11月举行了Elastic 中国开发者大会、目前各大云厂商几乎都提供基于Elasticsearch的云搜索服务,等等这些事件,都反映了Elasticsearch在企业的应用越来越普遍和重要。

先来看看官网的介绍,ok,核心关键字:搜索、分析。

Elasticsearch is a distributed, RESTful search and analytics engine
capable of solving a growing number of use cases. As the heart of the
Elastic Stack, it centrally stores your data so you can discover the
expected and uncover the unexpected.
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic
Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

产品优势:速度快、可扩展性、弹性、灵活性。
在某些应用场景中,不仅会使用Elasticsearch,还会使用Elastic旗下的其他产品,比如Kibana、Logstash等,常见的ELK指的就是Elasticsearch、Logstash、Kibana这三款产品,Elastic Stack指的是Elastic旗下的所有开源产品。

应用场景:(图片截于Elastic官网)
Elastic Solutions

场景实战

接下来,我们来实战一个应用场景。

场景:一个后端应用部署在一台云服务器中,后端应用会以文件形式记录日志。需求为:收集日志内容,对每行日志解析,得到结构化数据,便于搜索、处理与可视化。

方案:使用Filebeat转发日志到Logstash,后者解析或转换数据,然后转发到Elasticsearch储存,接着数据就任君处理了,这里我们把日志数据根据某些需求进行可视化,可视化的活就交给Kibana完成。(另种方案也可:通过Filebeat将日志数据直接转发到Elasticsearch,由Elasticsearch Ingest node负责数据的数据处理)

所需软件

本案例使用的产品版本如下:
系统:CentOS,这里分开部署了,也可以放在一起。
1、Kibana_v6.2.3 (IP: 192.168.0.26)
2、Elasticsearch_v6.2.3 (IP: 192.168.0.26)
3、Filebeat_v6.2.3 (IP: 192.168.0.25)
4、Logstash_v6.2.3 (IP: 192.168.0.25)

日志内容

假设一行日志内容如下:(日志文件放在/root/logs目录下)

其中一行日志内容如下:
2018-11-08 20:46:25,949|https-jsse-nio-10.44.97.19-8979-exec-11|INFO|CompatibleClusterServiceImpl.getClusterResizeStatus.resizeStatus=|com.huawei.hwclouds.rds.trove.api.service.impl.CompatibleClusterServiceImpl.getResizeStatus(CompatibleClusterServiceImpl.java:775) 

一行日志中可得到5个字段,以“|”分割
2018-11-08 20:46:25,949|  #时间
https-jsse-nio-10.44.97.19-8979-exec-11|  # 线程名称
INFO|   # 日志级别
CompatibleClusterServiceImpl.getClusterResizeStatus.resizeStatus=| # 日志内容
trove.api.service.impl.CompatibleClusterServiceImpl.getResizeStatus(CompatibleClusterServiceImpl.java:775)   # 类名

文件目录如下:(Elasticsearch和Kibana在另一台服务器,且已启动)

Logstash配置

logs目录存放需要收集的应用日志,logstash.conf 为Logstash准备的配置文件。

logstash.conf内容如下:


input {
  beats {
    port => 5044
  }
}

filter {
  grok {
    match => { "message" => "%{GREEDYDATA:Timestamp}\|%{GREEDYDATA:ThreadName}\|%{WORD:LogLevel}\|%{GREEDYDATA:TextInformation}\|%{GREEDYDATA:ClassName}" }
  }
  date {
    match => [ "Timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
  }
}

output {
  elasticsearch {
    hosts => "192.168.0.26:9200"
    manage_template => false
    index => "java_log"
  }
}

接下来启动Logstash(启动成功,监听5044端口,等待日志数据传入):

Filebeat配置

接下来看下Filebeat的配置文件:

filebeat.prospectors:
- type: log
  enabled: true
  # 配置日志目录的路径或者日志文件的路径
  paths:
    - /root/logs/*.log

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 3
  #index.codec: best_compression
  #_source.enabled: false

setup.kibana:
  host: "192.168.0.26:5601"

# 配置output为logstash
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

启动Filebeat:(当日志文件有更新时,会被Filebeat监听到,被转发出去。)

日志查询和可视化

最后来看看Kibana,进行日志的可视化。在Kibana创建好index pattern,这里命名为:java_log。在Discover页面中对日志数据进行查询。

在Visualize中创建可视化图形。

在Dashboard中组合我们的图形。

到此,就完成一个简单的日志数据的收集、分析、可视化。

Elastic Stack还有很多强大的功能,后面我们来一个应用内搜索案例。

参考资料

  1. https://www.elastic.co/cn/blog/alibaba-cloud-to-offer-elasticsearch-kibana-and-x-pack-in-china 阿里云与Elastic公司合作
  2. https://www.elastic.co/guide/en/beats/libbeat/6.2/getting-started.html beat入门
  3. https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html grok插件

公众号:码农阿呆 (欢迎关注和交流)

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
4月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
821 67
|
4月前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
273 30
|
5月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
636 1
|
4月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
180 0
|
5月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
467 0
|
6月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
5月前
|
数据采集 运维 监控
|
7月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
838 4
|
6月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
908 0