Nginx 日志对很多企业而言,都属于宝藏,这是为什么呢?
首先,Nginx 作为互联网基础设施,是请求访问的必要入口。
其次,很多部门对 Nginx 日志中可分析的数据都很重视。比如,对于运维团队而言,服务质量和流量带宽等统计 KPI 都可以从 Nginx 日志中获取。而对于公司的业务运营团队而言,运营活动或商品访问的 PV,UV 等,也可以从 Nginx 日志中统计出来。另外,像金融行业的风控模块,对 Nginx 日志其实也是有很大需求的。
假设某公司想优化自己某个产品的带宽成本,那么就可以通过对 Nginx 日志分析得到一个成本指标,倒推研发团队优化流程降低指标。这个指标应该会成为研发,运维,管理层共享的一个 KPI/OKR。
而想要对 Nginx 日志做分析,需要解决三个核心问题:
- 来源:日志收集
- 处理:日志清洗和分析
- 指标:指标计算和管理
传统方案
传统方案有两种,一种是大数据领域的方案,一种是运维领域的方案。
方案一
运维领域常见的方案是使用 ELK 全家桶, 通过 Logstash 收集,直接写入 ElasticSearch, 配合 web 插件 Kibana 完成交互分析部分。
但是,这套架构的缺点也很明显:
- 每个节点要独立部署 logstash
- ElasticSearch 实时写入会极大地影响读取
- ElasticSearch 分析能力有限
- 缺乏完善的指标管理以及指标分析能力(诸如归因分析,异常检测等等)
其中第四点是真正触及用户核心价值的需求,因为我们做的所有前置处理其实最终都是为了得到几个衡量自己 KPI/OKR的指标。
方案二
第二种是大数据解决方案,使用 flume 收集日志,使用 Kafka 作为数据队列,使用 Spark/Flink 消费Kafka 将日志写入对象存储。最后,再接一套完整的数据分析工具。
这套架构也有一些不足之处,比如:
- 使用的组件很多,每个组件都有比较大学习门槛和运维压力。
- 需要借助大数据相关分析工具,可能需要熟悉大数据体系的东西。
- 也缺乏一套指标管理和分析的工具
那么有没有一种端到端的解决方案,帮助我们快速获取信息并得到需要管理的指标呢?
JuiceFS Byzer Kyligence Zen 三剑合并方案
- 日志收集
日志收集部分,只需要将对象存储通过 JuiceFS 挂载成服务器本地目录,然后直接将 Nginx 日志写入到那个目录即可。
相比传统方案:
- 配置,运维简单,组件只要一个 JuiceFS 就可以直接完成数据实时收集到对象存储/HDFS
- 数据无需在各个系统间倒腾,比如先写到本地,再发送到 Kafka,然后再通过流应用收集等等。
大家唯一可能担心的是,Nginx 直接写 JuiceFS 可能会影响 Nginx 的正常运行,有两方面可以帮大家减少一些顾虑:
- JuiceFS 本身是一个高可用的服务,支持本地写缓存异步上传等特性,而且经过广泛的生产验证。
- Nginx 的日志输出是使用异步 IO 来实现的,即使 JuiceFS 出现暂时性的抖动,也基本不影响 Nginx 的正常运行(restart 或 reload 可能会受影响)
II. 数据 ETL & 探索 & 分析
数据分析部分,则可以使用 Byzer 来进行分析。Byzer 可以直接读取 JuiceFS 里的日志数据,然后使用 可编程SQL语法 在 Byzer 专属的开源产品 Byzer Notebook 中进行分析。
Byzer Notebook 界面是这样的:
相比传统方案的优点:
- 使用门槛低,同时满足Tech 和 Non-Tech 需求
- 组件少,开箱即用
- 无需大数据体系诸如 Hadoop 套件等,可以运行多种环境下。运维成本低。
III. 指标管理和分析,绑定 KPI/OKR, 赋能公司管理和决策
指标管理和分析部分,则可以使用 Kyligence Zen, 它可以直接对接 Byzer 处理的数据(放在诸如对象存储和云上的 Catalog 里的数据),然后用户可以通过可视化界面或者导入 YAML 指标定义文件来完成指标的创建,最终形成指标看板。比如我们通过 Nginx 日志中每个请求的比特数得到流量,然后乘以带宽成本,形成云存储成本的一部分。 以成本为例,可得到指标管理视图如下:
可以看到,Zen 可以很好地展示和管理指标,形成指标目录,并且提示相关分险。
另外,这些指标还可以和诸如飞书等管理工具集成,比如 Kyligence Zen 可以自动发送飞书信息:
当前 Kyligence Zen 正在内测阶段,可以访问 https://kyligence.io/zen 申请试用
总结
综上,用户仅仅需要使用 JuiceFS/Byzer/Kyligence Zen 三个组件就可以完成数据的收集和分析以及指标驱动等一整套体系。具有如下优点:
- 每个产品都有很好的横向扩展性,云原生,简单易用,支持海量大数据分析
- 整套方案只需要 JuiceFS ,Byzer以及 Kyligence Zen,运维压力小
- 通过 Kyligence Zen 强大的 API 衔接能力,可以和众多企业管理工具完成互通,实现指标赋能。
- 面向企业管理,可以帮助企业对齐指标,助力降本增效。