导读Nginx运营管理是个通用的、普遍的应用场景,开发团队会使用不同的工具去实现这一需求。炎凰数据使用鸿鹄平台实现了基础版的Nginx运营管理,最终达到了较好的效果。本文将分享炎凰数据如何使用鸿鹄平台搭建上述应用系统,并分享这一过程中的最佳实践方式。
本次介绍会围绕下面几点展开:1. 分享背景2. 实践案例3. 总结和回顾4. Q&A分享嘉宾|张锦明 炎凰数据科技有限公司 软件工程师编辑整理|王吉东内容校对|李瑶出品社区|DataFun01
分享背景1. 关于此次分享(1) 关于炎凰数据
炎凰数据是一家专注于打造自主知识产权的大数据处理平台的公司。
(2) 关于鸿鹄 鸿鹄是炎凰数据为广大开发者(研发人员、数据分析师、数据科学家等)提供的免费社区版一站式异构数据分析平台,包含了异构数据的采集、导入、存储、计算分析、可视化和告警等一系列服务。平台采用云原生架构和特有的读时建模引擎,支持标准的SOL语言,让用户可以灵活地管理海量多源异构数据,快速地分析数据特征,助力用户轻松实现数据驱动业务,诚邀大家一起参与,免费体验,共同助力新产品的功能优化、新技术的发现探索。(3) 分享目的Nginx是个常用的系统,其运维管理是普遍的需求。本文从实际案例出发,介绍如何利用日志动态分析平台(炎凰 数据的鸿鹄产品)完成Nginx运维管理的场景落地,涵盖从数据导入、数据解析、数据建模,到数据可视化的全过程,以及告警及第三方系统集成等等。通过实际案例分享,展示一个新型的日志动态分析平台如何通过一站式的方案解决日志运维管理中的挑战,帮助用户敏捷且高效地完成运维管理工作。
(4) 期望收获
① 端到端快速高效搭建简单Nginx运维管理的实操案例② 使用一体化日志分析工具平台的最佳实践③ 手把手的异构数据解析和关联分析的实战经验2.实践场景:Nginx运维管理(1) 数据源①时序文本型
②具备一定格式而非结构化
③格式非固定,具有predefined combined format,也具有各种extended format,依赖于具体配置而变化
①时序型(按时间采样)
②结构化数据 (关系型数据库表结构,包含明确字段定义)
①非时序型
②结构化数据 (IT资产与业务资产的关系数据,包含:FQDN,IP,Service等的相关映射关系)
(2) 场景特点① 对log这类动态非结构化数据的解析
② 多源异构数据的关联分析:Nginx + Prometheus + CMDB
③ 运维管理场景下,需求灵活多变且会持续迭代
02实践案例1. 场景实现准备
应用是平台提供的一种实现不同场景的方式,让用户将创作的仪表板、告警等资源有序地组织起来,打造完整的解决方案。
如下图所示,利用鸿鹄平台,创建了一个名叫“Nginx运营管理”的应用,之后所有的操作,以及所有分析资源本身都会包含在所创建的这个应用当中。
因此,实现某一通用场景的最佳实践就是创建“应用”,进而通过打包等方式实现“共享”。
数据集是一个一组事件的集合,用来存储事件的容器。每一个查询,都需要描述清楚从哪个数据集开始进行查询。导入数据的时候,都需要明确指出事件存储在哪个数据集中。
如下图所示,完成应用的创建后,下一步需要新建数据集。
数据源类型用于对具有统一类型属性的数据进行集合处理。平台中的数据源类型包含一系列的属性,定义了对数据的各类解析处理规则,例如数据索引阶段的抽取模式、查询阶段的抽取模式、字段分隔符等。平台内置了多种开箱即用的数据源类型,包含ncinx accesslog,apache access log,syslog等。数据源类型对应字段_datatype,是一个字符串,用来标记事件原始数据的格式等元信息。
在实际使用的过程中,推荐用户优先定义数据源类型,用来限定该数据的适用范围;必要时还需自定义一些字段加工规则,用来和数据源类型进行一一对应。
2. 数据处理流程
(1) 数据导入
鸿鹄系统支持各类数据源的自动化导入操作,通过数据采集器或数据连接器,将数据从不同的数据源拉取并汇总到鸿鹄系统中。同时数据的格式也是多种多样的,包括文件类型、数据库类型、Kafka类型等。注:此演示为手动导入过程,实际生产中多为自动化导入,关于自动化导入的实现,请参考使用手册中的“数据导入”章节设定数据源类型。
完成数据上传后,在预览界面选择自定义的数据源类型。利用鸿鹄系统实现对时间字段的自动化提取,并通过预览数据的方式确认时间字段提取的正确性。① 设定目标数据集 将数据存放在目标数据集中,如上图所示,支持通过数据源主机来区分不同的数据来源,以达到数据源区分的目的,避免混乱。② 数据导入验证同样地,通过数据源主机以及数据源的方式,对数据来源进行区分。
资产关系映射数据
资产映射数据是相对“静态”、不带时间属性的数据,表达从A到B的映射关系。对于这类数据,鸿鹄系统支持用户通过构建“查找表”来记录这种映射关系,实现资产映射的管理。
① 构建“查找表”
上图中,构建了fqdn、ip、service这3个查找表。新建查找表的具体界面如下图所示。② FQDN <-> 系统 映射表 ③ IP <-> 系统 映射表 ④ URL节点<-> Web服务模块 映射表 (2) 数据解析完成了数据的导入,下一步是解析数据,提取数据字段,为建模做准备。对于本例中的数据格式,由于其是非结构化数据,故采用正则表达式的方式来提取字段。在鸿鹄系统中,正则解析方式有两种实现方式:互动划词,和手动编辑。首先基于实现的场景来进行数据探索,如上图所示,通过SQL实现该场景下的一些计算逻辑,生成分析结果数据;进而将其添加到可视化的UI板中,生成可视化图表。② 第2步:根据分析结果数据直接创建可视化图表,按需更改钻取交互的配置图表构建 ③ 第3步:调整可视化图表的属性,达到预期展现效果 完成图表创建后,通过调整可视化的仪表板的各类属性,即可达到用户预期的展现效果;该模块支持用户自定义,以及eCharts等更高级的功能。
4. 生成可视化展现
② 第三方集成(封装数据接口)鸿鹄系统还可以实现数据接口的封装功能,将复杂的SQL语句封装成查询工具。1. 创建“SQL表函数” 在鸿鹄系统中,将复杂的查询计算逻辑“包装”成“SQL表函数”,如上图所示,该“SQL表函数”包括函数参数及参数类型,函数的输入和输出都是数据表格;用户自定义函数逻辑将表格A转化为表格B。2. 调用“SQL表函数”应用过程中可以直接调用包装好的“SQL表函数”,因此对于下游用户接口的使用非常便捷。这样,可以将复杂逻辑甚至是Grafana不支持的逻辑,借助接口工具得以实现;详见下图举例,优化前文中Grafana集成的步骤3(构建SQL查询):Grafana通过调用“SQL表函数”接口直接实现可视化操作,从而实现数据计算和数据可视化之间的解耦。 03总结和回顾1.实践产出
通过数据导入、数据解析、数据建模和数据可视化等操作,最终实现了Nginx运维的一个完整的场景应用,实现了该场景下的数据监控和分析。这就是一个典型的实践产出。2. 总结回顾
Nginx运营管理是个通用的、普遍的需求,不同团队会使用不同的工具去实现这个需求。炎凰数据使用鸿鹄平台完成了基础版的Nginx运营管理实现,使用到了鸿鹄的诸多基本功能,包括应用、数据集、数据源类型、查找表、字段加工、视图、物化视图、仪表板、告警、SQL表函数等。鸿鹄系统的更多功能也等待用户的挖掘。此外,我们帮助大家总结了一些最佳实践,避免大家在使用的过程中“绕弯路”。A. 创建“应用”B. 自定义“数据源类型”C. 确认时间字段的抽取正确性D. 通过“数据源主机”和“数据源”区分数据来源E. 使用“查找表”F. 有效结合“互动划词”与“手动编辑”G. 利用视图:行过滤 and/or 列过滤 and/or 时间分桶H. 利用物化视图:聚合加速I. 基于视图构建物化视图J. 为各资源定义合理的命名规范,如:vw,mat等K. 参考生成各图表所需的数据样例文档章节,合理分配维度和度量L. 自定义图表M. 灵活利用自定义触发条件设定阈值N. 利用Webhook对接外部网关,例如即时通讯工具等O. 利用“SQL表函数”封装逻辑,构建数据接口该平台旨在让用户从繁琐的事情中解放出来,提高工作的效率。本次分享只是开始,更多更丰富的场景等您来挖掘!04Q&AQ1:数据解析规则和数据源类型是一一对应的关系吗?A1:在鸿鹄系统中,这样的绑定关系并不是一对一的关系,而是多对多的关系。同一套规则可以应用于不同的数据源,实现数据间规则的共享;同样,同一数据源也可绑定不同的规则,形成规则“pineline”。Q2:告警配置中的限制秒是什么?
A2:限制秒是告警配置中的一个必填项。假设监控CPU使用率,当CPU使用率达到80%将会设定一级报警,而运维人员的处理则往往会需要一定的时间延迟;这样在运维人员处理之前就会重复报警,生成冗余报警信息,甚至曹诚告警风暴;因此,通过限制秒的方式,在限制秒的时间内避免重复报警;如果时间超过了限制秒,而报警仍未得到处理,则会再次报警。Q3:默认告警有自带的短信等配置方式吗?
A3:自带方式是没有的,一般最佳实践是通过webhook的方式将告警信息post出去,和外部系统实现对接;如果采用短信方式,则需要进行短信网关等的设置,需要进行针对性的开发和对接,目前没有预定义的方式。Q4:是不是将所有来源的数据都导入到同一数据集才能实现数据关联?
A4:本文所演示的案例中,是将3个数据源导入到同一数据集;但这样的操作不是必须的,鸿鹄系统支持对多源异构数据进行直接关联,并没有数据集的限制,用户可以根据实际的应用场景去构建数据集的分布,更好地实现数据管理的目的。Q5:使用鸿鹄需要先掌握什么技能?上手会比较困难吗?A5:鸿鹄系统主要需要SQL技能,使用基本的SQL语法就可以实现基于鸿鹄系统的开发;而对于一些高阶的场景,鸿鹄本身已经包装好了部分函数(包括python函数、java函数、C++函数等)供用户使用,大大降低了用户的开发门槛。今天的分享就到这里,谢谢大家。分享嘉宾
INTRODUCTION
张锦明
炎凰数据科技有限公司
软件工程师
毕业于北京邮电大学,一直从事数据处理和数据分析相关的系统研发工作,先后接触过企业级搜索引擎研发、商业智能分析平台研发、银行统一监管报表平台研发等。
峰会推荐
限时免费资料
往期推荐
开源数据库 MatrixOne 的 HTAP 分布式架构演进
信息流场景下的AIGC实践
电信网络运营事件知识图谱构建
Abase2: NoSQL数据库中的CRDT支持实践
国产开源湖仓LakeSoul--数据智能的未来方向
数据湖与实时数仓应用实践
快手内容冷启动推荐模型实践
大语言模型在推荐系统的实践应用
点击关注,更多信息更新