前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0开始,3步构建Nginx日志监控和运营指标

从0开始,3步构建Nginx日志监控和运营指标

作者头像
用户2936994
发布2022-09-23 10:20:19
5440
发布2022-09-23 10:20:19
举报
文章被收录于专栏:祝威廉

Nginx 日志对很多企业而言,都属于宝藏,这是为什么呢?

首先,Nginx 作为互联网基础设施,是请求访问的必要入口。

其次,很多部门对 Nginx 日志中可分析的数据都很重视。比如,对于运维团队而言,服务质量和流量带宽等统计 KPI 都可以从 Nginx 日志中获取。而对于公司的业务运营团队而言,运营活动或商品访问的 PV,UV 等,也可以从 Nginx 日志中统计出来。另外,像金融行业的风控模块,对 Nginx 日志其实也是有很大需求的。

假设某公司想优化自己某个产品的带宽成本,那么就可以通过对 Nginx 日志分析得到一个成本指标,倒推研发团队优化流程降低指标。这个指标应该会成为研发,运维,管理层共享的一个 KPI/OKR。

而想要对 Nginx 日志做分析,需要解决三个核心问题:

  1. 来源:日志收集
  2. 处理:日志清洗和分析
  3. 指标:指标计算和管理

传统方案

传统方案有两种,一种是大数据领域的方案,一种是运维领域的方案。

方案一

运维领域常见的方案是使用 ELK 全家桶, 通过 Logstash 收集,直接写入 ElasticSearch, 配合 web 插件 Kibana 完成交互分析部分。

但是,这套架构的缺点也很明显:

  1. 每个节点要独立部署 logstash
  2. ElasticSearch 实时写入会极大地影响读取
  3. ElasticSearch 分析能力有限
  4. 缺乏完善的指标管理以及指标分析能力(诸如归因分析,异常检测等等)

其中第四点是真正触及用户核心价值的需求,因为我们做的所有前置处理其实最终都是为了得到几个衡量自己 KPI/OKR的指标。

方案二

第二种是大数据解决方案,使用 flume 收集日志,使用 Kafka 作为数据队列,使用 Spark/Flink 消费Kafka 将日志写入对象存储。最后,再接一套完整的数据分析工具。

这套架构也有一些不足之处,比如:

  1. 使用的组件很多,每个组件都有比较大学习门槛和运维压力。
  2. 需要借助大数据相关分析工具,可能需要熟悉大数据体系的东西。
  3. 也缺乏一套指标管理和分析的工具

那么有没有一种端到端的解决方案,帮助我们快速获取信息并得到需要管理的指标呢?

JuiceFS + Byzer + Kyligence Zen 三剑合并方案

  1. 日志收集

日志收集部分,只需要将对象存储通过 JuiceFS 挂载成服务器本地目录,然后直接将 Nginx 日志写入到那个目录即可。

相比传统方案:

  1. 配置,运维简单,组件只要一个 JuiceFS 就可以直接完成数据实时收集到对象存储/HDFS
  2. 数据无需在各个系统间倒腾,比如先写到本地,再发送到 Kafka,然后再通过流应用收集等等。

大家唯一可能担心的是,Nginx 直接写 JuiceFS 可能会影响 Nginx 的正常运行,有两方面可以帮大家减少一些顾虑:

  1. JuiceFS 本身是一个高可用的服务,支持本地写缓存异步上传等特性,而且经过广泛的生产验证。
  2. Nginx 的日志输出是使用异步 IO 来实现的,即使 JuiceFS 出现暂时性的抖动,也基本不影响 Nginx 的正常运行(restart 或 reload 可能会受影响)

II. 数据 ETL & 探索 & 分析

数据分析部分,则可以使用 Byzer 来进行分析。Byzer 可以直接读取 JuiceFS 里的日志数据,然后使用 可编程SQL语法 在 Byzer 专属的开源产品 Byzer Notebook 中进行分析。

Byzer Notebook 界面是这样的:

相比传统方案的优点:

  1. 使用门槛低,同时满足Tech 和 Non-Tech 需求
  2. 组件少,开箱即用
  3. 无需大数据体系诸如 Hadoop 套件等,可以运行多种环境下。运维成本低。

III. 指标管理和分析,绑定 KPI/OKR, 赋能公司管理和决策

指标管理和分析部分,则可以使用 Kyligence Zen, 它可以直接对接 Byzer 处理的数据(放在诸如对象存储和云上的 Catalog 里的数据),然后用户可以通过可视化界面或者导入 YAML 指标定义文件来完成指标的创建,最终形成指标看板。比如我们通过 Nginx 日志中每个请求的比特数得到流量,然后乘以带宽成本,形成云存储成本的一部分。 以成本为例,可得到指标管理视图如下:

可以看到,Zen 可以很好地展示和管理指标,形成指标目录,并且提示相关分险。

另外,这些指标还可以和诸如飞书等管理工具集成,比如 Kyligence Zen 可以自动发送飞书信息:

当前 Kyligence Zen 正在内测阶段,可以访问 https://kyligence.io/zen 申请试用

总结

综上,用户仅仅需要使用 JuiceFS/Byzer/Kyligence Zen 三个组件就可以完成数据的收集和分析以及指标驱动等一整套体系。具有如下优点:

  1. 每个产品都有很好的横向扩展性,云原生,简单易用,支持海量大数据分析
  2. 整套方案只需要 JuiceFS ,Byzer以及 Kyligence Zen,运维压力小
  3. 通过 Kyligence Zen 强大的 API 衔接能力,可以和众多企业管理工具完成互通,实现指标赋能。
  4. 面向企业管理,可以帮助企业对齐指标,助力降本增效。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JuiceFS + Byzer + Kyligence Zen 三剑合并方案
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档