CN116149925A - 轨道交通分布式调度系统的日志管理方法、装置及设备 - Google Patents
轨道交通分布式调度系统的日志管理方法、装置及设备 Download PDFInfo
- Publication number
- CN116149925A CN116149925A CN202111410540.3A CN202111410540A CN116149925A CN 116149925 A CN116149925 A CN 116149925A CN 202111410540 A CN202111410540 A CN 202111410540A CN 116149925 A CN116149925 A CN 116149925A
- Authority
- CN
- China
- Prior art keywords
- log
- service
- micro
- operating system
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施例提供了一种轨道交通分布式调度系统的日志管理方法、装置及设备。该方法包括:获取轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志;将微服务日志添加至消息队列,并通过消息队列将微服务日志转发至日志传输组件,经由日志传输组件转发至日志存储组件;将中间件日志和操作系统日志发送至日志存储组件;利用日志可视化组件对日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。以此方式,可以通过日志传输组件和日志存储组件,快速收集轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志,并利用日志可视化组件对收集的日志进行统一的可视化分析管理,提高管理效率。
Description
技术领域
本公开涉及轨道交通领域,尤其涉及一种轨道交通分布式调度系统的日志管理方法、装置及设备。
背景技术
目前的轨道交通分布式调度系统由大量微服务组成,且微服务部署在不同服务器上。由于微服务日志通常采用本地文件存储,导致微服务日志分散难于分析管理,而且从分布式系统设计原则来说,分布式系统的中间件、操作系统的日志也需要进行分析管理。因此如何统一分析管理微服务日志、中间件日志和操作系统日志,就成为目前亟待解决的技术问题。
发明内容
本公开提供了一种轨道交通分布式调度系统的日志管理方法、装置及设备,可以提高轨道交通分布式调度系统的日志管理效率。
第一方面,本公开实施例提供了一种轨道交通分布式调度系统的日志管理方法,该方法包括:
获取轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志;
将微服务日志添加至消息队列,并通过消息队列将微服务日志转发至日志传输组件,经由日志传输组件转发至日志存储组件;
将中间件日志和操作系统日志发送至日志存储组件;
利用日志可视化组件对日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
在第一方面的一些可实现方式中,微服务日志包括:微服务运行日志和微服务操作日志;
获取轨道交通分布式调度系统的微服务日志,包括:
对轨道交通分布式调度系统的微服务对应的运行信息进行记录,生成微服务的候选运行日志;若候选运行日志的日志级别是目标日志级别,则确定候选运行日志为微服务运行日志;
基于轨道交通分布式调度系统的API网关和/或推送服务,对微服务对应的操作信息进行记录,生成微服务操作日志。
在第一方面的一些可实现方式中,该方法还包括:
将微服务操作日志存储至轨道交通分布式调度系统的关系数据库;
对关系数据库中的微服务操作日志进行可视化分析管理。
在第一方面的一些可实现方式中,获取轨道交通分布式调度系统的中间件日志,包括:
利用部署在轨道交通分布式调度系统的中间件所属服务器中的日志采集组件对中间件的日志存储路径下的文件进行监控,采集中间件日志。
在第一方面的一些可实现方式中,获取轨道交通分布式调度系统的操作系统日志,包括:
利用部署在轨道交通分布式调度系统的操作系统所属服务器中的日志采集组件对操作系统的日志存储路径下的文件进行监控,采集操作系统日志;或者,
调用操作系统的日志采集服务采集操作系统日志。
在第一方面的一些可实现方式中,将操作系统日志发送至日志存储组件,包括:
若调用操作系统的日志采集服务采集操作系统日志,则将操作系统日志发送至日志传输组件,经由日志传输组件转发至日志存储组件。
在第一方面的一些可实现方式中,日志传输组件为Logstash,日志存储组件为Elasticsearch,日志可视化组件为Kibana。
第二方面,本公开实施例提供了一种轨道交通分布式调度系统的日志管理装置,该装置包括:
获取模块,用于获取轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志;
添加模块,用于将微服务日志添加至消息队列,并通过消息队列将微服务日志转发至日志传输组件,经由日志传输组件转发至日志存储组件;
发送模块,用于将中间件日志和操作系统日志发送至日志存储组件;
管理模块,用于利用日志可视化组件对日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
第三方面,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如以上所述的方法。
第四方面,本公开实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如以上所述的方法。
第五方面,本公开实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序在被处理器执行时实现如以上所述的方法。
在本公开中,可以通过日志传输组件和日志存储组件,快速收集存储轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志,并利用日志可视化组件对收集的日志进行统一的可视化分析管理,提高管理效率。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了一种能够在其中实现本公开的实施例的示例性运行环境的示意图;
图2示出了本公开实施例提供的一种轨道交通分布式调度系统的日志管理方法的流程图;
图3示出了本公开实施例提供的一种轨道交通分布式调度系统的后端平台与前端的通信示意图;
图4示出了本公开实施例提供的一种微服务运行日志传输示意图;
图5示出了本公开实施例提供的一种微服务操作日志传输示意图;
图6示出了本公开实施例提供的一种中间件日志传输示意图;
图7示出了本公开实施例提供的一种操作系统日志传输示意图;
图8示出了本公开实施例提供的另一种操作系统日志传输示意图;
图9示出了本公开实施例提供的一种轨道交通分布式调度系统的日志管理装置的结构图;
图10示出了一种能够实施本公开的实施例的示例性电子设备的结构图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
针对背景技术中出现的问题,本公开实施例提供了一种轨道交通分布式调度系统的日志管理方法、装置及设备。具体地,可以通过日志传输组件和日志存储组件,快速收集存储轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志,并利用日志可视化组件对收集的日志进行统一的可视化分析管理,提高管理效率。
下面结合附图,通过具体的实施例对本公开实施例提供的轨道交通分布式调度系统的日志管理方法、装置及设备进行详细地说明。
图1示出了一种能够在其中实现本公开的实施例的示例性运行环境100的示意图,如图1所示,运行环境100中可以包括轨道交通分布式调度系统110、日志分析系统120和消息队列130。
其中,轨道交通分布式调度系统110是采用微服务技术、中间件技术、容器技术等实现的分布式系统,通常用于多线、线网等级别的调度管理。
日志分析系统120包括日志传输组件、日志存储组件和日志可视化组件三部分。需要知道的是,日志分析系统120具有以下几个主要特点:
收集:可以采集多种来源的日志数据;
传输:可以稳定的把日志数据传输到中央系统;
存储:可以存储大数据量日志数据;
分析:可以支持UI分析;
告警:可以提供错误报告,监控机制。
示例性地,为了节省开发维护成本,以及从技术选型、系统架构、业务需求多个维度考虑,日志分析系统120可以是Elastic Stack这一主流开源日志分析系统。相应地,日志传输组件可以为Logstash,日志存储组件为Elasticsearch,日志可视化组件为Kibana。其中,Logstash和Elasticsearch以集群形式部署。
Logstash是开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,RESTful风格接口,多数据源,自动搜索负载等。
Elasticsearch是开源工具,支持大量数据的收集、分析、过滤日志,实时性较强。一般工作方式为c/s架构,client端部署在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作写入Elasticsearch。也可以通过内置的插件解析后写入Elasticsearch。
Kibana是开源工具,用于为Logstash和Elasticsearch提供日志分析的Web界面,可以帮助汇总、分析、管理和搜索日志数据。
消息队列130可以为RabbitMQ、ActiveMQ、RocketMQ、Kafka或者其他消息队列,以集群形式部署。
作为一个示例,可以获取轨道交通分布式调度系统110的微服务日志、中间件日志和操作系统日志。其中,微服务日志为图1中微服务即实现系统业务的应用服务及微服务自身的组件服务的相关日志,中间件日志为中间件例如消息队列、分布式Job、分布式锁、分布式事务、数据库(内存数据库、关系数据库、时序数据库、分布式数据库等)等的相关日志,操作系统日志为操作系统例如CentOS7.X的相关日志。
然后将微服务日志添加至消息队列130,并通过消息队列130将微服务日志转发至日志分析系统120的日志传输组件,经由日志传输组件转发至日志分析系统120的日志存储组件进行存储。与此同时,可以将中间件日志和操作系统日志发送至日志存储组件。
进而利用日志分析系统120的日志可视化组件对日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
以此方式,可以通过日志传输组件和日志存储组件,快速收集存储轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志,并利用日志可视化组件对收集的日志进行统一的可视化分析管理,提高管理效率。
下面将详细介绍本公开实施例提供的轨道交通分布式调度系统的日志管理方法,其中,该日志管理方法可以应用于图1所示的运行环境100。
图2示出了本公开实施例提供的一种轨道交通分布式调度系统的日志管理方法200的流程图,如图2所示,日志管理方法200可以包括以下步骤:
S210,获取轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志。
在一些实施例中,微服务日志可以包括:微服务运行日志和微服务操作日志,可以满足不同的用户需求。示例性地,微服务运行日志可以用于记录微服务后台运行的信息,例如:命令下发、数据上传、网络链接/断开、数据库异常等,用户是开发人员、测试人员,主要用途是联调、测试、故障分析。微服务操作日志可以用于记录操作人员的系统行为,例如:下发控制指令、对业务数据的增删改查等,用户是系统管理员或业务岗位人员。主要用途监视系统中发生的事件,通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
相应地,可以对轨道交通分布式调度系统的微服务对应的运行信息进行记录,也即记录微服务后台运行信息,生成微服务的候选运行日志,若候选运行日志的日志级别是目标日志级别,则确定候选运行日志为微服务运行日志。如此一来,可以获取用户期望的微服务运行日志,避免获取无用日志,进而减少资源消耗,提高系统性能。
示例性地,轨道交通分布式调度系统的微服务框架可以选用Spring Cloud框架,在Spring Cloud框架中使用Spring Boot开发具体的微服务。
其中,Spring Boot中定义的日志级别从低到高可以分为:
TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF
TRACE:最低的日志级别,一般不会使用;
DEBUG:指细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息;
INFO:在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志;
WARN:表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示;
ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多的日志,可以使用这个级别;
FATAL:指出每个严重的错误事件将会导致应用程序的退出。这个级别比较高,重大错误,这种级别可以直接停止程序了;
OFF:最高等级的,用于关闭所有日志记录。
根据实际业务需求,Spring Boot可以记录运行信息,得到候选运行日志,若候选运行日志的日志级别是OFF级别、ERROR级别、WARN级别、INFO级别或者DEBUG级别,则确定候选运行日志为微服务运行日志。
日志级别控制可以通过logback.xml文件配置,配置格式:root level="LEVEL",LEVEL选项DEBUG、INFO、WARN、ERROR、OFF。可选地,测试环境配置DEBUG或INFO级别,生产环境配置INFO级别。
如图3所示,轨道交通分布式调度系统采用分层设计、前后端分离的分布式架构。其中,前端也即展示层包括PC(WEB、C/S)、大屏设备、手机、其他设备,后端平台开放数据服务的接口,支撑各种前端运行,接口由API网关(RESTful接口)、推送服务(WebSocket接口)提供。
由于所有用户操作都由前端应用产生,所以可以基于轨道交通分布式调度系统的API网关和/或推送服务,对微服务对应的操作信息进行记录,也即记录操作人员的系统行为,生成微服务操作日志。如此一来,可以基于API网关和/或推送服务统一快速地收集微服务操作日志。
具体地,基于API网关可以通过在Spring Cloud Gateway定义日志过滤器生成微服务操作日志;基于推送服务可以使用Spring Boot AOP配合自定义注解生成微服务操作日志。
在一些实施例中,可以利用部署在轨道交通分布式调度系统的中间件所属服务器中的日志采集组件对中间件的日志存储路径下的文件进行监控,采集中间件日志。其中,日志采集组件可以是Elastic Stack的Filebeat。示例性地,通过在安装中间件的服务器上安装Filebeat,修改配置文件filebeat.yml中的配置,就能实现日志的采集。如此一来,可以基于日志采集组件监控相应路径下的文件,快速获取中间件在本地存储的中间件日志。
可选地,中间件部署有两种方式:容器部署、直接部署。对性能、安全要求比较高,比如数据库,选择直接安装部署;要求不高的尽量采用容器部署。
以中间件为RabbitMQ、PostgreSQL、Redis、Nginx为例,假设是容器部署中间件,则选择的容器引擎是Docker,Docker在宿主机的日志存储路径是:/var/lib/docker/containers/***,每个容器在宿主机生成一个日志文件:***-json.log。日志采集有两种方式:
方式一:可以配置要采集的日志文件的具体路径,每种中间件建立自己的索引,不同中间件的日志是分开的;
方式二:配置Docker日志目录(/var/lib/docker/containers/***),所有中间件的日志混在一起。
假设是直接部署中间件,则提供直接部署的中间件的日志文件位置,在filebeat.yml中配置,就可以实现日志的采集。中间件默认安装,日志路径可以为:
PostgreSQL:/var/lib/pgsql/12/data/pg_log/;
Redis:/var/log/redis/redis.log;
RabbitMQ:/var/log/rabbitmq/;
Nginx:/var/log/nginx/access.log,/var/log/nginx/error.log;
其中,Nginx访问日志格式为Json;
在一些实施例中,可以利用部署在轨道交通分布式调度系统的操作系统所属服务器中的日志采集组件(Filebeat)对操作系统的日志存储路径下的文件进行监控,采集操作系统日志。也可以调用操作系统的日志采集服务采集操作系统日志。如此一来,可以基于日志采集组件或者日志采集服务灵活快速地获取操作系统在的操作系统日志。
示例性地,操作系统可以是Linux(CentOS7.X),日志存储路径可以是/var/log,日志采集服务可以是rsyslog,其配置文件是/etc/rsyslog.conf。
需要知道的是,Linux系统中有很多日志存储路径(表征不同的日志类型):
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以在该日志文件中获得相关信息;
/var/log/dmesg:记录Linux操作系统在引导过程中的各种事件信息;
/var/log/maillog:记录进入或发出系统的电子邮件活动;
/var/log/lastlog:记录每个用户最近的登陆事件;
/var/log/secure:记录用户认证相关的安全事件信息;
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件;
/var/log/btmp:记录失败的、错误的登录尝试及验证事件。
在本公开实施例中,监控的日志存储路径主要是/var/log/messages。
S220,将微服务日志添加至消息队列,并通过消息队列将微服务日志转发至日志传输组件,经由日志传输组件转发至日志存储组件。
其中,消息队列可以为RabbitMQ、ActiveMQ、RocketMQ、Kafka,日志传输组件可以为Logstash,日志存储组件为Elasticsearch。
Logstash在logstash.conf中配置input为消息队列,output为Elasticsearch,按日建立索引。为了提高性能避免单点故障,可以部署多个Logstash。
示例性地,微服务作为生产者把微服务运行日志发送到消息队列,Logstash作为消息队列的消费者收集、分析、过滤微服务运行日志,把微服务运行日志解析后写入即发送至Elasticsearch。具体地,可以按日建立索引存储到Elasticsearch中。
进一步地,每个微服务可以通过日志管理服务提供的LogUtils工具类的标准接口调用Logback工具向消息队列写微服务运行日志即发送微服务运行日志。
其中,日志管理服务是轨道交通分布式调度系统的一个微服务,此服务从应用层面提供日志的管理功能,主要功能如下:
实现LogUtils工具类,为整个平台提供写日志标准接口;
实现微服务操作日志新增、删除、查询的RESTful风格接口;
通过配置启动定时任务,实现系统保存一定时间的操作日志、运行日志。
此外,可以通过logback.xml统一配置微服务运行日志的相关信息,logback.xml的相关配置可以如下:
设置日志级别,DEBUG、INFO、WARN、ERROR、OFF。
设置loger传递的appender,默认是控制台(STDOUT)、消息队列(RabbitMQ);
配置消息队列信息:地址、用户名、密码、交换机、路由键等;
设置写入消息队列的微服务运行日志格式。
作为一个示例,微服务运行日志格式可以如下:
"appname":"${appname}",
"level":"%level",
"appkey":"${appkey}",
"trace":"%X{X-B3-TraceId:-}",
"span":"%X{X-B3-SpanId:-}",
"exportable":"%X{X-Span-Export:-}",
"pid":"${PID:-}",
"thread":"%thread",
"class":"%logger{50}",
"log":"%msg",
"createtime":"%d{yyyy-MM-dd HH:mm:ss.SSS}"
同时,微服务作为生产者把微服务操作日志发送到消息队列,Logstash作为消息队列的消费者收集、分析、过滤微服务操作日志,把微服务操作日志解析后写入即发送至Elasticsearch。具体地,可以按日建立索引存储到Elasticsearch中。可选地,可以在Elasticsearch中保存1个月。
S230,将中间件日志和操作系统日志发送至日志存储组件。
具体地,可以直接将中间件日志发送至日志存储组件。参见S210,若利用部署在操作系统所属服务器中的日志采集组件采集操作系统日志,则可以直接将操作系统日志发送至日志存储组件。
若调用操作系统的日志采集服务采集操作系统日志,则可以将操作系统日志发送至日志传输组件,经由日志传输组件转发至日志存储组件。
以日志传输组件为Logstash,日志存储组件为Elasticsearch,日志采集组件为Filebeat为例,Filebeat支持的输入类型有:Log、Stdin、Redis、UDP、Docker、TCP、Syslog,支持的输出类型有:Elasticsearch、Logstash、Kafka、Redis、File、Console、Cloud。关于中间件所处服务器中的Filebeat的相关配置如下:
输入类型(type):log或docker;
文件路径(paths):日志存储文件路径;
日志标签(tags):日志的标签;
输出类型(output):Elasticsearch;
日志索引(index):日志按日建立索引。
可知,可以基于Filebeat直接将中间件日志发送至Elasticsearch。
若利用部署在操作系统所属服务器中的Filebeat采集操作系统日志,则可以直接基于Filebeat将操作系统日志发送至Elasticsearch。若调用操作系统的rsyslog采集操作系统日志,则可以将操作系统日志发送至Logstash,经由Logstash转发至Elasticsearch。
S240,利用日志可视化组件对日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
其中,日志可视化组件可以是Kibana,可以通过Kibana的Web界面进行日志汇总、分析和搜索。
根据本公开的实施例,可以通过日志传输组件和日志存储组件,快速收集存储轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志,并利用日志可视化组件对收集的日志进行统一的可视化分析管理,提高管理效率。
在一些实施例中,该日志管理方法100还可以包括:
将微服务操作日志存储至轨道交通分布式调度系统的关系数据库例如PostgreSQL,对关系数据库中的微服务操作日志进行可视化分析管理,便于系统管理员或业务岗位人员使用。
需要注意的是这部分日志数据需要长期保存,同时需要单独开发Web界面,进行汇总、分析和搜索。
示例性地,可以通过LogUtils工具类的标准接口识别指定参数来区分操作日志和运行日志,进而通过日志管理服务把微服务操作日志写入关系数据库,通过Logback工具把微服务操作日志写入到消息队列,并通过消息队列将微服务操作日志转发至Logstash,经由Logstash转发至Elasticsearch。
关系数据库中存储的微服务操作日志可以如表1所示:
表1
下面结合图4-8,对公开实施例提供的日志管理方法进行详细介绍,具体如下:
轨道交通分布式调度系统的微服务框架选用Spring Cloud框架,在Spring Cloud框架中使用Spring Boot开发具体的微服务,消息队列为RabbitMQ,日志传输组件为Elastic Stack的Logstash,日志存储组件为Elastic Stack的Elasticsearch,日志采集组件为Elastic Stack的Filebeat,日志可视化组件为Elastic Stack的Kibana,关系数据库为PostgreSQL,针对PostgreSQL中的微服务操作日志可视化分析管理可选用Dashboard。中间件可以包括Redis、PostgreSQL等,操作系统为CentOS7.X,日志采集服务为rsyslog服务。
如图4所示,可以记录微服务(Spring Boot)的运行信息,得到候选运行日志,若候选运行日志的日志级别是OFF级别、ERROR级别、WARN级别、INFO级别或者DEBUG级别,则确定候选运行日志为微服务运行日志。微服务作为生产者把微服务运行日志发送到RabbitMQ,Logstash作为RabbitMQ的消费者收集微服务运行日志,并把微服务运行日志发送至Elasticsearch存储,通过Kibana进行可视化分析管理。
如图5所示,可以基于API网关和/或推送服务记录微服务(Spring Boot)的操作信息,得到微服务操作日志。微服务作为生产者把微服务操作日志发送到RabbitMQ,Logstash作为RabbitMQ的消费者收集微服务操作日志,并把微服务操作日志发送至Elasticsearch存储,通过Kibana进行可视化分析管理。与此同时,可以通过日志管理服务把微服务操作日志写入PostgreSQL,通过Dashboard进行可视化分析管理。
如图6所示,可以基于Filebeat采集Redis、PostgreSQL等的中间件日志,并将采集的中间件日志发送至Elasticsearch存储,通过Kibana进行可视化分析管理。
如图7所示,可以基于Filebeat采集操作系统(CentOS7.X)的操作系统日志,并将采集的操作系统日志发送至Elasticsearch存储,通过Kibana进行可视化分析管理。
如图8所示,可以调用操作系统(CentOS7.X)的rsyslog采集操作系统日志,并将操作系统日志发送至Logstash,经由Logstash转发至Elasticsearch存储,通过Kibana进行可视化分析管理。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图9示出了根据本公开的实施例提供的一种轨道交通分布式调度系统的日志管理装置900的结构图,如图9所示,日志管理装置900可以包括:
获取模块910,用于获取轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志。
添加模块920,用于将微服务日志添加至消息队列,并通过消息队列将微服务日志转发至日志传输组件,经由日志传输组件转发至日志存储组件。
发送模块930,用于将中间件日志和操作系统日志发送至日志存储组件。
管理模块940,用于利用日志可视化组件对日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
在一些实施例中,微服务日志包括:微服务运行日志和微服务操作日志,获取模块910具体用于:
对轨道交通分布式调度系统的微服务对应的运行信息进行记录,生成微服务的候选运行日志;
若候选运行日志的日志级别是目标日志级别,则确定候选运行日志为微服务运行日志;
基于轨道交通分布式调度系统的API网关和/或推送服务,对微服务对应的操作信息进行记录,生成微服务操作日志。
在一些实施例中,日志管理装置900还包括:
存储模块,用于将微服务操作日志存储至轨道交通分布式调度系统的关系数据库。
管理模块940还用于对关系数据库中的微服务操作日志进行可视化分析管理。
在一些实施例中,获取模块910具体用于:
利用部署在轨道交通分布式调度系统的中间件所属服务器中的日志采集组件对中间件的日志存储路径下的文件进行监控,采集中间件日志。
在一些实施例中,获取模块910具体用于:
利用部署在轨道交通分布式调度系统的操作系统所属服务器中的日志采集组件对操作系统的日志存储路径下的文件进行监控,采集操作系统日志;或者,
调用操作系统的日志采集服务采集操作系统日志。
在一些实施例中,发送模块930具体用于:
若调用操作系统的日志采集服务采集操作系统日志,则将操作系统日志发送至日志传输组件,经由日志传输组件转发至日志存储组件。
在一些实施例中,日志传输组件为Logstash,日志存储组件为Elasticsearch,日志可视化组件为Kibana。
可以理解的是,图9所示日志管理装置900中的各个模块/单元具有实现本公开实施例提供的日志管理方法200中的各个步骤的功能,并能达到其相应的技术效果,为了简洁,在此不再赘述。
图10示出了一种可以用来实施本公开的实施例的电子设备1000的结构图。电子设备1000旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备1000还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,电子设备1000可以包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM1003中,还可存储电子设备1000操作所需的各种程序和数据。计算单元1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如方法200。例如,在一些实施例中,方法200可被实现为计算机程序产品,包括计算机程序,其被有形地包含于计算机可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM1003并由计算单元1001执行时,可以执行上文描述的方法200的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200。
本文中以上描述的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,计算机可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读介质可以是计算机可读信号介质或计算机可读储存介质。计算机可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要注意的是,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行方法200,并达到本公开实施例执行其方法达到的相应技术效果,为简洁描述,在此不再赘述。
另外,本公开还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序在被处理器执行时实现方法200。
为了提供与用户的交互,可以在计算机上实施以上描述的实施例,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将以上描述的实施例实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种轨道交通分布式调度系统的日志管理方法,其特征在于,所述方法包括:
获取所述轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志;
将所述微服务日志添加至消息队列,并通过所述消息队列将所述微服务日志转发至日志传输组件,经由所述日志传输组件转发至日志存储组件;
将所述中间件日志和所述操作系统日志发送至所述日志存储组件;
利用日志可视化组件对所述日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
2.根据权利要求1所述的方法,其特征在于,所述微服务日志包括:微服务运行日志和微服务操作日志;
所述获取轨道交通分布式调度系统的微服务日志,包括:
对所述轨道交通分布式调度系统的微服务对应的运行信息进行记录,生成所述微服务的候选运行日志;
若所述候选运行日志的日志级别是目标日志级别,则确定所述候选运行日志为所述微服务运行日志;
基于所述轨道交通分布式调度系统的API网关和/或推送服务,对所述微服务对应的操作信息进行记录,生成所述微服务操作日志。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述微服务操作日志存储至所述轨道交通分布式调度系统的关系数据库;
对所述关系数据库中的微服务操作日志进行可视化分析管理。
4.根据权利要求1所述的方法,其特征在于,获取轨道交通分布式调度系统的中间件日志,包括:
利用部署在所述轨道交通分布式调度系统的中间件所属服务器中的日志采集组件对所述中间件的日志存储路径下的文件进行监控,采集所述中间件日志。
5.根据权利要求1所述的方法,其特征在于,获取轨道交通分布式调度系统的操作系统日志,包括:
利用部署在所述轨道交通分布式调度系统的操作系统所属服务器中的日志采集组件对所述操作系统的日志存储路径下的文件进行监控,采集所述操作系统日志;或者,
调用所述操作系统的日志采集服务采集操作系统日志。
6.根据权利要求5所述的方法,其特征在于,将所述操作系统日志发送至所述日志存储组件,包括:
若调用所述操作系统的日志采集服务采集操作系统日志,则将所述操作系统日志发送至所述日志传输组件,经由所述日志传输组件转发至日志存储组件。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述日志传输组件为Logstash,所述日志存储组件为Elasticsearch,所述日志可视化组件为Kibana。
8.一种轨道交通分布式调度系统的日志管理装置,其特征在于,所述装置包括:
获取模块,用于获取轨道交通分布式调度系统的微服务日志、中间件日志和操作系统日志;
添加模块,用于将所述微服务日志添加至消息队列,并通过所述消息队列将所述微服务日志转发至日志传输组件,经由所述日志传输组件转发至日志存储组件;
发送模块,用于将所述中间件日志和所述操作系统日志发送至所述日志存储组件;
管理模块,用于利用日志可视化组件对所述日志存储组件中的微服务日志、中间件日志和操作系统日志进行可视化分析管理。
9.一种电子设备,其特征在于,所述设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111410540.3A CN116149925A (zh) | 2021-11-23 | 2021-11-23 | 轨道交通分布式调度系统的日志管理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111410540.3A CN116149925A (zh) | 2021-11-23 | 2021-11-23 | 轨道交通分布式调度系统的日志管理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149925A true CN116149925A (zh) | 2023-05-23 |
Family
ID=86353190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111410540.3A Pending CN116149925A (zh) | 2021-11-23 | 2021-11-23 | 轨道交通分布式调度系统的日志管理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149925A (zh) |
-
2021
- 2021-11-23 CN CN202111410540.3A patent/CN116149925A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810074B2 (en) | Unified error monitoring, alerting, and debugging of distributed systems | |
Guo et al. | Graph-based trace analysis for microservice architecture understanding and problem diagnosis | |
US9672137B1 (en) | Shadow test replay service | |
US9383900B2 (en) | Enabling real-time operational environment conformity to an enterprise model | |
US9697104B2 (en) | End-to end tracing and logging | |
US8990621B2 (en) | Fast detection and diagnosis of system outages | |
US9442822B2 (en) | Providing a visual representation of a sub-set of a visual program | |
US8627337B2 (en) | Programmatic modification of a message flow during runtime | |
US10331544B2 (en) | Creating trace data from recent software output and activity | |
US11256590B1 (en) | Agent profiler to monitor activities and performance of software agents | |
US10951509B1 (en) | Methods, systems, and computer readable media for providing intent-driven microapps for execution on communications network testing devices | |
US20230214229A1 (en) | Multi-tenant java agent instrumentation system | |
JP2022033685A (ja) | 堅牢性を確定するための方法、装置、電子機器、コンピュータ可読記憶媒体、及びコンピュータプログラム | |
CN105122733A (zh) | 队列监控和可视化 | |
US20150370619A1 (en) | Management system for managing computer system and management method thereof | |
WO2021167659A1 (en) | Systems and methods of monitoring and controlling remote assets | |
US10706108B2 (en) | Field name recommendation | |
US9354962B1 (en) | Memory dump file collection and analysis using analysis server and cloud knowledge base | |
CN116149925A (zh) | 轨道交通分布式调度系统的日志管理方法、装置及设备 | |
US11416376B2 (en) | Investigative platform for software application development and production | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
US11474928B2 (en) | Remote system filtered data item logging | |
Kleehaus et al. | Multi-layer monitoring and visualization | |
Bare et al. | ASDF: an automated, online framework for diagnosing performance problems | |
CN113835698A (zh) | 一种安全控制方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |