2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

基于 Elastic Stack 的日志分析系统

  • 2019-11-07
  • 本文字数:1822 字

    阅读完需:约 6 分钟

基于Elastic Stack的日志分析系统

Elastic Stack 简介

Elastic Stack 是 Elastic 公司旗下的一系列软件总称,包括 Elasticsearch、Logstash、Kibana 和 Beats。Elasticsearch 是一个分布式搜索引擎,负责数据的存储、查询,支持高并发的写入与查询;Logstash 是动态数据收集管道,可以进行数据的清洗、格式化等处理;Kibana 是基于 Elasticsearch 的数据可视化平台,提供种类丰富的图表来呈现数据;Beats 通常部署在生产环境下,扫描日志文件并向 Elasticsearch 或 Logstash 发送数据,在本文中我们使用 FileBeat。


Elastic Stack 的应用非常广泛,常见的有日志管理与分析、指标分析、性能监测、应用搜索等。本篇文章中我们借助腾讯云的 Elasticsearch、使用 Elastic Stack 搭建自动化流转过程的监控与统计系统。

准备工作

  • 日志消息协议


前边提到,Logstash 是可以进行数据处理的,所以对于日志文件的格式并没有要求,只需要后期在 Logstash 处借助 grok 进行格式化即可。方便起见,在本次使用中我们统一了日志消息协议,并统一使用 json 格式单独存储,因此省去了 Logstash 处的格式化操作。



图 1. 自动化流转日志消息协议


图 1 为我们定义的日志协议,其中 log_type 字段用于在 Elasticsearch 中建立索引(相当于我们熟悉的数据表),phase、finish_time 是我们后期监控与统计主要的划分维度,miles 是我们监控的指标。其他的一些字段是我们业务中会使用到的信息,主要用于后期统计使用。


  • 日志获取方式


在我们的使用中,日志的产生源有两大类:已完成开发的和正在进行开发的。对于前者,为了避免重新开发带来的工作量,我们采取定时扫库的方式“自给自足”的产生日志消息;对于后者,我们要求开发根据上述日志消息协议生产日志。两种日志都需要通过部署在环境内的 FileBeat 发送至 Logstash,再由 Logstash 发送至 Elasticsearch 中。

数据接入

  • 日志的准备


以 Python 为例,将日志消息 msg 使用 fp.write(json.dumps(msg))输出到文件中


  • Beats-Logstash-Elasticsearch 接入

  • Logstash 配置(conf)


input {  beats {      port => 8888      codec => "json"  }}
output { elasticsearch { hosts => ["<elasticsearch_ip>:<elasticsearch_port>"] index => "%{log_type}" } stdout { codec => rubydebug }}
复制代码


上述配置中,Logstash 监听本地 8888 端口、并使用 json 解码器对消息进行解析。对于解析后的消息,根据消息中的 log_type 字段发送至 Elasticsearch 对应的索引中,同时在命令行中输出。


  • Logstash 启动


./bin/logstash -c logstash.conf(可以使用 nohup)


  • FileBeat 配置(yml)


filebeat.inputs:- type: logenabled: truepaths:- /usr/local/app/wsd_cron_agent/script/logs/*.logoutput.logstash:hosts: ["<logstash_ip>:<logstash_port>"]
复制代码


上述配置中,FileBeat 定时扫描/usr/local/app/wsd_cron_agent/script/logs/路径下的 log 文件,发送至远端的 Logstash 处。


  • FileBeat 启动


./filebeat -e -c filebeat.yml(可以使用 nohup)


接下来 FileBeat 和 Logstash 就会自动将路径下的日志文件传输至 Elasticsearch 了。

Kibana 可视化

对于第一次接入的数据,首先要做的是创建索引,操作方法是[Management]->[Index Patterns]->[Create Index Pattern]->Index pattern 中输入索引名->单击[Create]



图 2. Kibana 建立索引


之后是使用 Kibana 自带的 visualize 进行数据的可视化,这里就是根据自身需求进行设置即可。可以在 Dashboard 中制作一个自定义的监控窗口,可以清楚直接的看到各个自动化流程的运转情况。



图 3. 地图中业流转 Dashboard

一些需要注意的问题 & 可以改进的地方

总的来说,Elastic Stack 搭建日志分析系统是非常简单、方便的,不过需要注意以下几点:


  • Elasticsearch 是一种非关系型数据库,不能做连表查询操作,因此必须将所有信息都放在一条消息/一例数据中

  • 请避免重复日志消息的产生

  • 目前得到的消息是腾讯云在和 Elastic 官方谈合作,之后会有一些插件(如报警功能)加入,使得监控和分析功能更加强大


由于之前没有接触过 Elastic Stack,所以也是磕磕碰碰的做了一些尝试,一些地方为了避免出错做了简化,之后可以再进一步优化以提升性能:


  • 需要单独产生日志消息,对于开发不够方便;可以考虑在 Logstash 出增加 grok 操作对日志进行格式化后再送入 Elasticsearch

  • FileBeat 和 Logstash 的负载均衡存在进一步提升的可能


本文转载自公众号云加社区(ID:QcloudCommunity)。


原文链接:


https://mp.weixin.qq.com/s/G473oMCOldT6wFtjqM6A3w


2019-11-07 18:141654

评论

发布
暂无评论
发现更多内容

鸿蒙仓颉语言开发教程:网络请求和数据解析

幽蓝计划

数据驱动增长的第一步:埋点系统如何让行为数据真正"动"起来?

ClkLog

开源 埋点 用户行为分析 开源软件 画像

Flink x Paimon 在抖音集团生活服务的落地实践

Apache Flink

flink

智谱携手和鲸重磅发布AI教育白皮书,南大南开专家经验分享

ModelWhale

AI教育 南京大学 南开大学 智谱

鸿蒙OS的桌面应用开发

北京木奇移动技术有限公司

APP开发 软件外包公司 鸿蒙系统开发

架构分享|三层存储架构加速云端大模型推理

Alluxio

人工智能 机器学习 AI 模型推理 LLM

霍格沃兹测试开发学社“教·学·练·赛”高校软件测试实训平台

测试人

软件测试

合合信息首批通过中国信通院文档图像篡改检测平台能力完备性测评

合合技术团队

人工智能 算法 #大数据

翰德 Hudson 携手亚马逊云科技,基于 MCP Agent 重塑智能招聘新范式

亚马逊云科技 (Amazon Web Services)

Qt开发麒麟Linux桌面应用程序的流程

北京木奇移动技术有限公司

麒麟操作系统 软件外包公司 QT软件外包

论文解读 - 统一的多模态理解和生成模型综述(下)

合合技术团队

人工智能 算法 #大数据

Alluxio Enterprise AI 3.6加速模型分发、优化checkpoint写入并增强多租户支持

Alluxio

AI 数据加速 模型分发

QT桌面客户端在Linux下的开发流程

北京木奇移动技术有限公司

Linux 软件外包公司 QT开发

AI编程在BOSS项目的实践经验分享

智在碧得

AI

智能问数技术路径对比:NL2SQL vs NL2Semantic2SQL

Aloudata

agent NL2SQL ChatBI 智能问数

大模型训练常见通信源语解释

永荣带你玩转昇腾

「小红书」正式加入 Karmada 用户组!携手社区共建多集群生态

华为云原生团队

云计算 容器 云原生

1688API接口终极宝典:列表、详情全掌握,图片搜索攻略助你一臂之力

tbapi

1688商品列表接口 1688API 1688商品详情API 1688图片搜索API

1688图片搜索API秘籍! 轻松获取相似商品数据

tbapi

1688API 1688图片搜索接口 1688图片搜索API 1688拍立淘api

DistilQwen-ThoughtX:变长思维链推理模型,超越DeepSeek蒸馏模型

阿里云大数据AI技术

人工智能 数据分析 数据集 大模型 DistilQwen2.5

WiFi万能钥匙鲲鹏服务器部署 TiDB 集群实战指南

TiDB 社区干货传送门

管理与运维 安装 & 部署 扩/缩容 应用适配

鸿蒙HarmonyOS - SideBarContainer 组件自学指南

李游Leo

鸿蒙 HarmonyOS

教堂LED背景屏幕:点亮信仰,

Dylan

科技 LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

对 AI Agent 定义的一些探讨

Baihai IDP

AI 智能体 AI Agent

AI技术在招聘面试中的应用

北京木奇移动技术有限公司

AI招聘 软件外包公司 AI技术应用

【HarmonyOS 5开发入门】DevEco Studio安装配置完全指南

颜颜yan_

鸿蒙 HarmonyOS NEXT Harmony5

Qt开发macOS应用程序的流程

北京木奇移动技术有限公司

软件外包公司 QT开发公司 QT外包

介绍一下这只小水獭 —— Fluss Logo 背后的故事

Apache Flink

大数据 flink 实时计算 Fluss

基于Elastic Stack的日志分析系统_文化 & 方法_王政飞_InfoQ精选文章