网络日志分析系统性能优化的研究

2021-06-16 09:35李禄源
电子技术与软件工程 2021年7期
关键词:日志报表监控

李禄源

(许昌电气职业学院成人教育部 河南省许昌市 461000)

据了解,网络日志文件的检查工作一般是由系统的管理员来执行操作的,但是从实际管理结果来看并不如预期般理想。之所以出现这样的问题,其与管理员的专业能力存在着非常紧密的关联性。有一些管理员对网络日志的文件格式以及分析步骤并不是很了解和熟悉,这就使得网络日志当中存在的诸多有价值的信息被忽略,进而严重影响到了网络日志的价值和作用。

1 网络日志的种类以及分析系统介绍

1.1 网络日志的种类

网络日志目前可以共分为系统日志和埋点日志两类。其中,系统日志是由研发人员在系统后台代码当中加入日志输出语句,以JAVA 语言为例,一般都是采用log4j 的框架技术来进行日志语句的输出。这类日志能够在一定程度上帮助了解系统的运行情况,如果系统发生异常,那么这些信息便可以成为分析和解决问题的重要参考依据。但是,这类日志也有着一定的弊端,因为日志信息的输出内容是由专业人员通过专业操作产生的,所以其不属于架构级的日志输出方案,导致输出信息呈现出片面化的特征,并不能够确保信息运行传输的全面性。关于埋点日志,其是在现有系统当中集成相应代码,用户捕获系统特定事件并输出相关信息。

1.2 网络日志分析系统的定位

就目前网络日志发展形势来看,网络日志分析系统应该定位于为广大用户提供的一个统一的日志汇总平台,方便用户可以集中搜集、使用和展现安全系统、网络系统和其他系统的日志,进而为网络系统进行日志监控、审计和分析奠定坚实的基础,与此同时也可以为管理人员所进行的事前管理、事中监控以及事后分析提供更多便利。现在的网络日志分析系统面临着新的需求,其需要实现跨平台、跨厂商、跨地区的统一日志分析和审计,以便通过统一管理来对网络系统中的各类设备进行全面监控,确保网络系统的正常运行。

2 网络日志分析系统架构分析

2.1 日志埋点的方式

2.1.1 客户端

客户端,即支持安卓、iOS、Web/H5、微信小程序,主要用于分析PV、UV、点击量等指标。其中,Web 端的埋点技术如图1 所示。

2.1.2 服务器日志

服务器日志,即采集后端业务服务器打印的日志,其有着较强的采集能力,而且能够较好地支撑精细化分析场景。

2.2 日志采集和处理方式

2.2.1 离线处理方案

如图2 所示。

2.2.2 实时处理方案

如图3 所示。

3 网络日志分析系统需要具备的功能

3.1 日志功能

日志功能主要包括日志采集、过滤分析、审计日志数据自动归档以及日志查询四个方面的内容。首先,关于日志的采集,即通过设置日志收集源和日志代理来定义收集哪些设备的哪些日志,并根据设置的内容接收设备发送来的日志信息。其次,关于过滤分析,按照设定好的条件和标准将不符合要求的日志类型丢弃掉。还有就是保护日志的完整性,未经授权的用户无权修改日志信息。然后,关于审计日志数据的自动归档,即根据规定的格式和要求来对指定类型的日志作出专业分析并保存,为后续工作开展提供参考依据。最后,关于日志的查询,可按照日志类型、日志格式、审计设备等来针对性查询日志,同时自动生成日志分析表和趋势图。

图1:Web 端的埋点技术

图2:离线处理方案

图3:实时处理方案

3.2 报表功能

报表功能主要体现在报表统计任务、报表模板以及报表浏览几个方面。首先,报表统计任务,允许各种方式来对日志记录信息进行查询,查询结果以报表的形式呈现。一般情况下管理人员会根据参数要求来制定一批报表任务,以用户的需求为准来设定执行条件。其次,关于报表模板,在系统当中会提供多种形式的报表模板供用户选择和使用,模板的价值还在于对日志的内容进行定义。最后,关于报表的浏览,即将以报表形式呈现出来的日志记录信息进行导出,以供浏览时使用。

3.3 系统管理

系统管理包括用户管理、设备组的管理以及数据库的管理三大方面,其中,用户管理主要是分配和管理用户组的权限;设备组管理以IP 地址范围为准来对设备组进行定义,同时进行添加、删除和修改等操作步骤;而数据库的管理多是做好数据库的备份以及提供相关准备和支持工作。

3.4 拓扑管理

拓扑管理系统中会提供手动或自动生产网络拓扑两种拓扑方式。在当前网络日志分析系统当中,拓扑图需要做到对网络布线信息的动态实时反应,同时也要做到随时监督设备运行状态及链路的流量变化情况,一旦网络设备发生故障,诸如网络连接断掉或者机器死机等等,系统需要在最短的时间内生成警报信号,并在拓扑图上标记出来供管理人员参考和诊断,同时也要为用户掌控整个网络实时运行状态提供参考依据。

4 网络日志分析系统性能优化思路以及策略分析

网络日志分析系统性能优化的目的一主要是为了提升分析系统的响应能力,缩短系统对具体问题作出响应和反馈的时间,增加系统事件处理的数量。网络日志分析系统的性能优化主要集中在内存占用、延时以及吞吐量几个方面,对此进行性能的调优,具体优化方案主要涵盖对设计方案进行优化、合理调整参数配置、修改相关代码等等来更好地满足网络日志整体质量的提升需求。在实际优化过程当中,其实很难同时对这几个方面的性能全部实现提升,通常相关专业人员会将重点偏向或者侧重于一到两个方面,确保这一到两个方面确实可以实现性能的优化和提升。

4.1 关于网络日志分析系统性能优化的思路

网络日志分析系统的性能优化思路可以分为以下三个方面,分别是性能监控、性能分析以及性能优化。这三个步骤相辅相成,任何一个步骤都不能够缺少。

4.1.1 关于性能监控

性能监控主要监控的内容包括系统代码的侵入情况、日志的分析和运行、对运转流程和节点进行把控、对操作系统以及容器等数据信息进行收集、对性能所在点进行预估。通俗来说,性能监控就是要监控JVM 和GC 的状态,对细节问题进行定位,明确性能优化的需求性到底有多大,常见手段有很多,比如,通过visualVM、jstat 等诊断工具来查看GC日志(dump 文件),判断GC 相关状态。

4.1.2 性能分析

修改相关配置、屏蔽代码降级或增加资源,验证性能所在点。例如,通过追踪GC日志,查找是不是GC 在特定时间发生了长时间的暂停,进而导致了应用响应不及时;或者在诊断工具里面查看是否存在死循环或者连接池缓冲区满了,进而导致堆内存溢出问题。

4.1.3 性能优化

通过优化方案或修改代码突破性能瓶颈。即通过分析来不断调整参数和软硬件配置,并验证是否达到调优目标,否则重复完成以上过程。

4.2 多角度性能优化的衡量指标

多角度性能优化的衡量指标具体体现在以下几个方面:

(1)从业务角度出发,业务指标包括并发用户数、TPS、成功率、响应时间。

(2)从开发角度出发,应用指标包括关注空闲线程数、数据库连接数、GC/FULL GC 次数、函数耗时。

(3)从运维角度出发,资源指标包括关注CPU、内存、磁盘I/O、网络I/O。

(4)从DBA 角度出发,数据指标包括关注耗时SQL、锁、会话、CPU、异常事件、tps。

4.3 系统程序和使用过程约定

(1)接口:程序模块间只发出一次请求和响应。

(2)场景:由一个也可以由多个系统接口完成,对一次用户和商户系统的服务端作出完整响应。

(3)由多个程序模块根据数目比例来组成服务节点来分析验证和优化发展场景。

4.4 性能瓶颈表现

性能瓶颈表现具体体现在以下几个方面:

(1)内存接近上限,固定时间范围内平均响应时间低于垃圾回收时间,tps 趋势图波动显著;

(2)CPU 使用率超出规定限额;

(3)场景响应时间较长,而且tps 提上去,响应时间往下掉,成功率接近于零;

(4)固定时间段内tps 趋势图出现了波峰和波谷。

4.5 分析及解决策略

4.5.1 性能监控

性能监控的优化措施主要包括以下几个方面:

(1)通过运行场景压测脚本来对系统的运行情况进行查看。比如,通过jconsole 远程连接应用程序来查看内存、CPU、线程的使用情况。通过”jstack 应用程序进程号“ 命令查看应用程序的线程使用情况等,进而可以对工作的线程数、CPU 使用情况、垃圾回收情况等有一个全面的了解。

(2)收齐日志、运行单个节点,对全部系统调用链接进行清理,对场景/接口的关键节点进行预估,确定好压测环境单节点。

(3)对操作系统资源进行实时监控,随时查看系统负载、监控网卡流量、监控内存使用情况、对磁盘读写、监控网络状态、监控应用程序错误日志也要进行监控。

(4)进一步核实和确定压力传递状态:通过netstat -at | grep 客户端ip 地址 | wc -l 监控压力的透传情况,锁定性能发生点。

4.5.2 性能分析

结合实际需求来合理修改操作系统内核的相关配置,适当调整运行容器工作线程、支撑连接数,修改应用程序日志级别、异步输出,连接池数目,修改工作参数配置、垃圾回收策略、jvm 内存大小,应用程序代码加入开关、降低服务,优化数据库索引、表结构,对性能所遭遇到的瓶颈问题进行确认之后再深入分析其中原因,进而寻找到正确的解决办法。

4.5.3 性能应对方案

关于性能应对方案的内容,其主要包含以下几个方面:

(1)业务设计,主要包括分离业务和服务降级两个方面,其中分离业务又包括申请与受理分离,申请受理权利、业务异步处理。

(2)应用程序方面的性能应对方案主要集中在资源升级、横向拓展、jvm 参数优化、代码优化以及负载保护五个方面。其中,资源升级所涵盖的范围主要是内存、连接池连接数目、CPU 核数、工作线程数。jvm 参数优化主要是垃圾回收策略和运行参数设置。代码优化主要是日志异步输出、业务辅助功能异步处理、缓存、RPC 调用合并、减少调用节点链路、使用连接池/长链接、降代方法调用层级、减少大数据对象的构建。负载保护主要针对的是指定IP 访问量和整体受理量。

5 结束语

综上所述,网络日志分析系统记录着整个系统运行过程当中的全部数据信息和行为,其是后续开展系统恢复、数据纠正以及错误查找等工作的重要参考依据,因此,我们必须要高度重视网络日志分析系统的性能优化工作,要尽全力去提升网络日志分析系统的整体性能。

猜你喜欢
日志报表监控
The Great Barrier Reef shows coral comeback
一名老党员的工作日志
扶贫日志
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
LabWindows/CVI中Excel报表技术研究
从三大报表读懂养猪人的成绩单
游学日志
PDCA循环法在多重耐药菌感染监控中的应用
一种基于粗集和SVM的Web日志挖掘模型