前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用开源 Byzer 和 JuiceFS 做实时Nginx日志分析

如何使用开源 Byzer 和 JuiceFS 做实时Nginx日志分析

作者头像
用户2936994
发布于 2022-07-21 06:13:54
发布于 2022-07-21 06:13:54
64400
代码可运行
举报
文章被收录于专栏:祝威廉祝威廉
运行总次数:0
代码可运行

要对 Nginx 日志作分析,需要解决两个核心问题:

  1. 日志收集
  2. 日志分析

传统方案

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

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

这套架构缺点也很明显:

  1. 每个节点要独立部署logstash
  2. ElasticSearch 实时写入会极大的影响读取
  3. ElasticSearch 分析能力有限

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

这套架构缺点也比较明显:

  1. 使用的组件很多,每个组件都有比较大的运维压力。
  2. 需要借助大数据相关分析工具,可能需要熟悉大数据体系的东西。

JuiceFS + Byzer 双剑合并方案

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

相比传统方案:

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

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

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

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

Notebook界面是这样的:

下面是一个实际的 Byzer 代码 分析 Nginx 日志的例子(简单统计,把产生的统计结果作为邮件发送):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
load text.`/data/nginx/logs/access_log*` as nginxTable;

-- 日志文件的清洗和统计
select 
  access_host,access_page,count(1) as access_freq 
from (
    select split(value,' ')[2] as access_host,split(value,' ')[7] as access_page 
    from (select * from nginxTable where value is not null)
  )
where 
  access_host !="-"
group by access_host,access_page 
order by access_freq desc
limit 10 as accessTable;

set saveDir="/tmp/access";
set savePath="/tmp/access.csv";

-- 保存PV统计数据为CSV格式的文件
save overwrite accessTable as csv.`${saveDir}` where header="true";

-- 因为在分布式环境运行,我们的文件会按照分区个数保存为多个文件,这里我们进行合并
!hdfs -getmerge /tmp/access/tmp/access.csv;

set EMAIL_TITLE = "Byzer网站访问日志分析"; 
set EMAIL_BODY = '''<div>Hi All,<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日志分析完成,请查收邮件!</div><br/><hr/><div>Thanks,<br/>The Byzer Org</div>''';
set EMAIL_TO = "userAccountNumber@qq.com, userAccountNumber@163.com";

-- 发送附件邮件到指定邮箱
run command as SendMessage.``
where method="mail"
and content="${EMAIL_BODY}"
and from = "userAccountNumber@qq.com"
and to = "${EMAIL_TO}"
and subject = "${EMAIL_TITLE}"
and contentType="text/html"
and attachmentContentType="text/csv"
and attachmentPaths="${savePath}"
and smtpHost = "smtp.qq.com"
and smtpPort="587"
and `properties.mail.smtp.ssl.enable`= "true"
and `userName`="userAccountNumber@qq.com"
and password="***"
;

总结

用户仅仅需要使用 JuiceFS 和 Byzer 就可以完成数据的收集和分析,具有如下有点:

  1. 两个产品都有很好的横向扩展性,云原生,简单易用,支持海量大数据分析
  2. 整套方案只需要 JuiceFS 和 Byzer,运维压力小
  3. JuiceFS 可以轻松收集数据,低碳环保
  4. Byzer 具有强大的分析能力,简单易用,具备完成数据加载,处理,投递等各种能力,也包括AI方面的能力,还提供了易用的开发界面(Byzer-notebook)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从0开始,3步构建Nginx日志监控和运营指标
其次,很多部门对 Nginx 日志中可分析的数据都很重视。比如,对于运维团队而言,服务质量和流量带宽等统计 KPI 都可以从 Nginx 日志中获取。而对于公司的业务运营团队而言,运营活动或商品访问的 PV,UV 等,也可以从 Nginx 日志中统计出来。另外,像金融行业的风控模块,对 Nginx 日志其实也是有很大需求的。
用户2936994
2022/09/23
6130
用 JuiceFS 备份 Nginx 日志可以这么简单
在我们线上的生产环境中要备份的东西很多,各种服务日志、数据库数据、用户上传数据、代码等等。用 JuiceFS 来备份可以节省你大量时间,我们会围绕这个主题写一系列的教程,整理出一套最佳实践,方便大家。
Juicedata
2022/03/07
5490
用 JuiceFS 备份 Nginx 日志可以这么简单
超级简陋的采集部署运维。
5、任务计划程序的坑。不能像爬虫一样直接运行,先找到默认的运行程序C:\Windows\py.exe,添加参数写python脚本的位置。
用户7138673
2022/09/21
3060
Nginx日志分析系统全景探秘
Nginx的访问日志记录每条请求的来龙去脉,通过日志可以分析出很多有用的监控信息,如下面的这些信息。
用户1682855
2019/03/06
2.2K0
Nginx日志分析系统全景探秘
搭建ELK日志分析平台并收集Nginx日志
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
子润先生
2021/07/08
9480
腾讯云 Elasticsearch 实战篇(十七) 构建日志分析系统
在前面的众多章节中,我们从开源架构ELK讲到腾讯云Elasticsearch Service .最近的六篇中我们讲了腾讯云ES集群的选择、安装、运维监控告警系列。那么围绕这些知识点我们讲了这么多,我们要搞清楚ELK到底能做什么,到底在那些场景下做哪些事?只有搞清楚了它的用途我们才能更有目的的去学习并使用它。<本节提到的Logstash插件后面再详讲>
南非骆驼说大数据
2020/02/24
1.9K0
『学习笔记』Nginx日志分析与性能调优
🎈今日推荐——https://cloud.tencent.com/developer/article/2472042
数字扫地僧
2024/11/29
3680
理想汽车 x JuiceFS:从 Hadoop 到云原生的演进与思考
第一个时期: 2006 年到 2008 年。2008 年左右,Hadoop 成为了 Apache 顶级项目,并正式发布了 1.0 版本,它的基础主要是基于谷歌的三驾马车,GFS、MapReduce、BigTable 去定义的。
Juicedata
2022/09/23
1.1K0
理想汽车 x JuiceFS:从 Hadoop 到云原生的演进与思考
Elasticsearch在日志分析领域应用和运维实践
场景描述:Elasticsearch及相关产品,介绍基于ELK + Kafka 的日志分析系统,Elasticsearch优化经验,阿里云 Elasticsearch服务以及Elasticsearch 运维实践。
王知无-import_bigdata
2019/10/31
5650
Elasticsearch在日志分析领域应用和运维实践
人工智能驱动的日志分析与关联:揭开智能运维的新时代
随着云计算、大数据和物联网等技术的快速发展,运维团队面临的挑战也日益增多。日志数据作为运维的关键数据源之一,包含了大量的系统行为和故障信息。然而,传统的日志分析方法往往费时费力,难以应对现代复杂系统的大规模日志数据。在这样的背景下,人工智能(AI)驱动的日志分析与关联成为了一种强有力的解决方案。
Echo_Wish
2025/02/26
1940
人工智能驱动的日志分析与关联:揭开智能运维的新时代
Elasticsearch在日志分析领域应用和运维实践
场景描述:Elasticsearch及相关产品,介绍基于ELK + Kafka 的日志分析系统,Elasticsearch优化经验,阿里云 Elasticsearch服务以及Elasticsearch 运维实践。
大数据真好玩
2019/10/30
9350
Elasticsearch在日志分析领域应用和运维实践
基于ELK Nginx日志分析
针对业务需求建立用户访问行为记录,基于ELK(Elasticsearch日志检索+Logstash日志收集+Kibana查询 展示)日志处理技术,建立业务日志采集和智能分析系统,实现了对访问用户的行为跟踪和针对不同类别用户的访问热点分析、趋势分析和对比分析。
Kevin song
2020/02/19
2.8K0
Byzer + OpenMLDB 实现端到端的,基于实时特征计算的机器学习流程
本文示范如何使用OpenMLDB和 Byzer-lang 联合完成一个完整的机器学习应用。Byzer-lang 作为面向大数据和AI的一门语言,通过 Byzer-Notebook 和用户进行交互,用户可以轻松完成数据的抽取,ETL,特征/模型训练,保存,部署到最后预测等整个端到端的机器学习流程。OpenMLDB在本例中接收Byzer发送的指令和数据,完成数据的实时特征计算,并经特征工程处理后的数据集返回Byzer,供其进行后续的机器学习训练和预测。
用户2936994
2022/10/27
1.1K0
搭建ELK日志分析平台+Filebeat
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
子润先生
2021/07/08
1.4K0
ELK前端日志分析、监控系统
前言 大数据时代,不仅仅是后端,前端更需要对数据进行分析、展示和汇总,你们会怎么做呢?今天我们来『师夷长技以制夷』,用ELK来搭建自己的日志分析、监控平台。 前端日志与后端日志不同,具有很强的自定义特性,不像后端的接口日志、服务器日志格式比较固定,大部分成熟的后端框架都有非常完善的日志系统,借助一些分析框架,就可以实现日志的监控与分析,这也是运维工作的一部分。 什么是ELK ELK在服务器运维界应该是运用的非常成熟了,很多成熟的大型项目都使用ELK来作为前端日志监控、分析的工具。 那
用户1907613
2018/07/20
2.2K0
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ELK(Elasticsearch , Logstash, Kibana)是一套开源的日志收集、存储和分析软件组合。而且不只是java能用,其他的开发语言也可以使用,今天给大家带来的是elk+logback+kafka搭建分布式日志分析平台。本文主要讲解一下两种流程,全程linux环境(模拟现实环境,可用内存一定要大于2G,当然也可以使用windows),至于elk这些组件的原理,百度太多了,我就不重复了,重在整合。
用户2235302
2018/08/22
1.5K0
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ELK(Elasticsearch , Logstash, Kibana)是一套开源的日志收集、存储和分析软件组合。而且不只是java能用,其他的开发语言也可以使用,今天给大家带来的是elk+logback+kafka搭建分布式日志分析平台。本文主要讲解一下两种流程,全程linux环境(模拟现实环境,可用内存一定要大于2G,当然也可以使用windows),至于elk这些组件的原理,百度太多了,我就不重复了,重在整合。
码农笔录
2022/01/21
1.1K0
ELK+logback+kafka+nginx 搭建分布式日志分析平台
存算分离实践:JuiceFS 在中国电信日均 PB 级数据场景的应用
中国电信大数据集群每日数据量庞大,单个业务单日量级可达到 PB 级别,且存在大量过期数据(冷数据)、冗余数据,存储压力大;每个省公司都有自己的集群,以及多个收集全国各省级业务信息的集团大数据集群,导致数据分散冗余,省集群与集团集群数据无法共享,跨地域任务延迟高。
Juicedata
2023/05/09
6850
存算分离实践:JuiceFS 在中国电信日均 PB 级数据场景的应用
可视化实时Web日志分析工具,堪称神器!
说到web服务器就不得不说Nginx,目前已成为企业建站的首选。但由于种种历史原因,Nginx日志分析工具相较于传统的apache、lighthttp等还是少很多。
猿哥
2019/03/29
8.3K0
可视化实时Web日志分析工具,堪称神器!
Nginx日志分析工具GoAccess使用详解
如果把运维看做是医生给病人看病,则日志就是病人对自己的陈述,很多时候医生需要通过对病人的描述中得出病人状况,是否严重,需要什么计量的药,什么类型的药。所以古人有句话叫对症下药,这个症就是病人的描述加医生的判断,在重一点的病在加上很多的化验。在医生看病时病人的描述和化验单上的数据对医生是非常重要的。同理日志在运维中的作用也是类似的,但非常不幸,日志在很多运维中被严重低估,直到磁盘空间不足的时候才想到,这有个大的日志文件把他删了,这样可以节省空间。
星哥玩云
2022/07/19
1.6K0
Nginx日志分析工具GoAccess使用详解
推荐阅读
相关推荐
从0开始,3步构建Nginx日志监控和运营指标
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验