一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Docker的CMP系统日志统一监控管理方法与流程

2022-11-14 14:16:16 来源:中国专利 TAG:

基于docker的cmp系统日志统一监控管理方法
技术领域
1.本技术涉及计算机技术领域,特别是涉及一种基于docker的cmp系统日志统一监控管理方法、装置、计算机设备和存储介质。


背景技术:

2.cmp全称为cloud managerment platform,主要能力包含自服务、提供系统镜像、计费系统、调度系统以及通过既定策略优化工作负载。更优的产品可以与外部企业系统集成,支持存储和网络资源配置,允许通过服务治理加强资源管理,并提供高级监控,提高系统性能和可用性。可以利用cmp平台监控各类公有云、私有云资源、做任务分发和工单管理。
3.cmp系统涉及众多业务子系统,不同业务系统产品开发可能涉及不同的开发语言(例如java、go、python等)和不同软件服务(例如mysql数据库服务、nginx服务、nodejs服务等),cmp系统的安全性和稳定性有赖于对各个子系统和软件服务状态的监控,各子系统和相关软件服务的状态情况有赖于对其日志进行收集和分析。针对复杂大系统的日志收集和分析传统的方式是对部署的每个子系统或软件服务单独配置日志采集客户端(如filebeat)上传到日志中心服务器进行分析。传统日志收集和分析方式缺点如下:
4.1.对运维人员要求较高,需要熟悉不同语言开发产品和相关软件服务的日志输出特性,必要时还需要向开发人员了解不同业务子系统相关日志输出特性。
5.2.cmp系统扩展新的子系统和服务时日志采集端需要相应的增加对应日志配置,维护复杂度较高。
6.因此,现有技术存在效率不高、适应性不佳的问题。


技术实现要素:

7.基于此,有必要针对上述技术问题,提供一种能够提高cmp系统日志监控管理效率和适应性的基于docker的cmp系统日志统一监控管理方法、装置、计算机设备和存储介质。
8.一种基于docker的cmp系统日志统一监控管理方法,所述方法包括:
9.获取云管理平台下业务的系统程序或软件服务,并制作对应的docker镜像;
10.将所述系统程序或软件服务的日志关联到所述docker镜像的标准输出;
11.根据所述docker镜像启动docker容器,设置容器日志驱动,在所述docker容器运行时将所述docker容器产生的日志传至所述云管理平台的日志中心服务器;
12.通过所述日志中心服务器对收集到的日志建立索引并进行统一监控管理。
13.在其中一个实施例中,还包括:获取云管理平台下业务的系统程序或软件服务;
14.通过dockerfile文件配置并制作对应的docker镜像。
15.在其中一个实施例中,还包括:将所述系统程序或软件服务的日志关联到所述docker镜像的标准输出;所述日志包括访问日志和错误日志。
16.在其中一个实施例中,还包括:根据所述docker镜像启动docker容器;
17.选取日志驱动类型,在所述docker容器启动时设置容器日志驱动参数;
18.将所述日志驱动类型和日志要转发到的日志中心服务器地址配置到服务器docker的daemon.json文件,并由在所述服务器docker上运营的所有docker容器共享该驱动配置。
19.在其中一个实施例中,还包括:在所述日志中心服务器上通过rsyslog服务对发来的日志进行收集、分类并转发到logstash;
20.由logstash读取rsyslog收集的日志,转发到elasticseach。
21.在其中一个实施例中,还包括:通过所述日志中心服务器将收集到的日志转发到elasticseach并建立索引;
22.通过noc系统监控中心根据建立的索引对日志进行分类展示。
23.在其中一个实施例中,还包括:所述日志中心服务器的台数由所述云管理平台服务集群规模的大小进行配置。
24.一种基于docker的cmp系统日志统一监控管理装置,所述装置包括:
25.docker镜像制作模块,用于获取云管理平台下业务的系统程序或软件服务,并制作对应的docker镜像;
26.日志关联模块,用于将所述系统程序或软件服务的日志关联到所述docker镜像的标准输出;
27.日志驱动模块,用于根据所述docker镜像启动docker容器,设置容器日志驱动,在所述docker容器运行时将所述docker容器产生的日志传至所述云管理平台的日志中心服务器;
28.监控管理模块,用于通过所述日志中心服务器对收集到的日志建立索引并进行统一监控管理。
29.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
30.获取云管理平台下业务的系统程序或软件服务,并制作对应的docker镜像;
31.将所述系统程序或软件服务的日志关联到所述docker镜像的标准输出;
32.根据所述docker镜像启动docker容器,设置容器日志驱动,在所述docker容器运行时将所述docker容器产生的日志传至所述云管理平台的日志中心服务器;
33.通过所述日志中心服务器对收集到的日志建立索引并进行统一监控管理。
34.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
35.获取云管理平台下业务的系统程序或软件服务,并制作对应的docker镜像;
36.将所述系统程序或软件服务的日志关联到所述docker镜像的标准输出;
37.根据所述docker镜像启动docker容器,设置容器日志驱动,在所述docker容器运行时将所述docker容器产生的日志传至所述云管理平台的日志中心服务器;
38.通过所述日志中心服务器对收集到的日志建立索引并进行统一监控管理。
39.上述基于docker的cmp系统日志统一监控管理方法、装置、计算机设备和存储介质,在制作云管理平台下业务的系统程序或软件服务对应的docker镜像时,将系统程序或软件服务的日志关联到docker镜像的标准输出,为日志的统一收集并转发到日志中心服务器进行统一监控管理提供前提。由于所有程序和服务的日志都托管到容器,当为不同客户
在不同服务节点部署或者服务扩容时无需重新设置日志上传收集配置,服务更新时停止旧容器拉取最新镜像重新启动即可,对运维人员要求较低,降低了维护复杂度。通过高效的统一监控管理能够及时处理系统节点反馈信息、先于客户发现各类问题,提升系统使用体验。
附图说明
40.图1为一个实施例中基于docker的cmp系统日志统一监控管理方法的流程示意图;
41.图2为另一个实施例中基于docker的cmp系统日志统一监控管理方法的流程示意图;
42.图3为一个实施例中基于docker的cmp系统日志统一监控管理装置的结构框图;
43.图4为一个实施例中计算机设备的内部结构图。
具体实施方式
44.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
45.在一个实施例中,如图1所示,提供了一种基于docker的cmp系统日志统一监控管理方法,包括以下步骤:
46.步骤102,获取云管理平台下业务的系统程序或软件服务,并制作对应的docker镜像。
47.docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows操作系统的机器上。
48.步骤104,将系统程序或软件服务的日志关联到docker镜像的标准输出。
49.无论是业务系统程序或是应用软件服务,日志的产生源头为容器内进程,利用这个特点本发明提出在制作程序docker镜像时将系统程序或软件服务的访问或错误日志输出到标准输出,即stdout/stderr,这样系统程序或软件服务的日志可以为docker容器的log日志所管理到,为后面的统一收集并转发到日志中心服务器等操作提供前提。
50.下面以nginx软件服务为例说明具体的镜像日志定制方式。
51.docker容器的制作基于dockerfile文件配置,查看nginx官方dockerfile文件(https://github.com/nginxinc/docker-nginx/blob/04226fe92cc11bed68dae464eb60fd5399daf3b1/mainline/debian/dockerfile)第99-100行有如下配置:
52.&&ln-sf/dev/stdout/var/log/nginx/access.log\
53.&&ln-sf/dev/stderr/var/log/nginx/error.log\
54.将容器中nginx服务原本的访问日志(access.log)和错误日志(error.log)link到容器的标准输出,也就是将原来写入到具体文件的日志输出到docker日志中,不再输入到具体文件中,当容器运行时docker容器所输出日志即为nginx服务日志。
55.基于上述,本发明可以对其他程序(如基于springcloud或golang开发的业务系统)和服务(如mysql、redis等)在构建镜像时将自己程序日志link到容器标准输出端交由容器管理。鉴于开发人员熟悉自己开发程序和所使用软件服务,该步骤可由开发人员完成并维护镜像配置。运维人员部署时直接从镜像库拉取即可。
56.步骤106,根据docker镜像启动docker容器,设置容器日志驱动,在docker容器运行时将docker容器产生的日志传至云管理平台的日志中心服务器。
57.docker容器支持的常见日志驱动有local、json-file、syslog、fluentd等,本实施例中选择syslog驱动。可以在容器启动时设置日志驱动参数,考虑到一台服务器上会部署多个docker应用程序容器,因此将驱动类型和日志要转发到的日志中心服务器地址等信息配置到服务器docker的daemon.json文件,只要在该服务器docker上启动的应用容器共享该驱动配置,可以减轻后续部署的复杂度。容器启动后即可根据相关预设配置将产生的日志发到syslog服务器进行集中管理分析。
58.步骤108,通过日志中心服务器对收集到的日志建立索引并进行统一监控管理。
59.对日志中心服务器收集到的来自不同业务(如计费系统、运营系统、dns调度系统、账户管理系统等)和服务(nginx、mysql、redis等)的日志建立索引提供给noc系统监控中心分类展示。
60.根据noc监控系统反馈cmp系统个节点性能、业务调整、故障修复。noc系统是基于elasticsearch提供数据源,通过echarts可视化展示的自研实时日志展示系统。echarts是一款基于javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。基于echarts可视化展示日志终端监控能够及时处理系统节点反馈信息、先于客户发现各类问题,提升系统使用体验。
61.具体地,cmp系统所涉及的各类业务和服务运行状态将通过他们产生的日志统一汇聚展示到noc监控系统,针对不同服务节点出现的问题可以及时反馈、精确定位。如mysql服务出现慢查询导致请求响应时间变长,可以通过搜集到的容器日志发现并体现在noc监控系统上,可以根据日志定位到服务节点ip,查询语句,由监控中心反馈给程序开发人员,修复后更新服务镜像重新下发到服务节点停止旧容器启动新镜像容器。
62.上述基于docker的cmp系统日志统一监控管理方法中,在制作云管理平台下业务的系统程序或软件服务对应的docker镜像时,将系统程序或软件服务的日志关联到docker镜像的标准输出,为日志的统一收集并转发到日志中心服务器进行统一监控管理提供前提。由于所有程序和服务的日志都托管到容器,当为不同客户在不同服务节点部署或者服务扩容时无需重新设置日志上传收集配置,服务更新时停止旧容器拉取最新镜像重新启动即可,对运维人员要求较低,降低了维护复杂度。通过高效的统一监控管理能够及时处理系统节点反馈信息、先于客户发现各类问题,提升系统使用体验。
63.在其中一个实施例中,还包括:根据docker镜像启动docker容器;选取日志驱动类型,在docker容器启动时设置容器日志驱动参数;将日志驱动类型和日志要转发到的日志中心服务器地址配置到服务器docker的daemon.json文件,并由在该服务器docker上运营的所有docker容器共享该驱动配置。
64.docker是一开源应用容器引擎,采用cs架构(docker客户端cli和docker服务器端dockerd),服务器docker指的是在节点服务器上安装的docker引擎环境(即docker服务器端),服务器上运行的各种docker容器都依赖于该环境的安装,日志中心服务器是指收集、过滤、存储、索引各个应用节点发来的日志文件(由logstash和elk服务组成)。
65.每台节点服务器上的docker引擎的配置文件为daemon.json,daemon.json中的配置项将被在该服务器上运营的所有docker容器所共享(或者说遵守),如log-driver项决定
docker容器日志驱动类型,log-level项将决定输出的原始日志级别,log-opt项中可以设置日志被转发的地址和日志的类型标签,这些配置项被服务器上的docker容器和后续将部署运行的docker容器所共享,不必运维人员每次单独配置。
66.在其中一个实施例中,还包括:在日志中心服务器上通过rsyslog服务对发来的日志进行收集、分类并转发到logstash;由logstash读取rsyslog收集的日志,转发到elasticseach。
67.rsyslog是一个syslogd的多线程增强版,基于syslog协议完成系统日志的处理转发,是一个极速的日志处理系统。
68.logstash是具有实时流水线能力的开源的数据收集引擎。logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助解析,丰富,转换和缓冲任何类型的数据。
69.elasticsearch是一个基于lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于restful web接口。
70.具体地,根据cmp服务集群规模大小可以配置一台或多台日志收集服务器。以ubuntu系统为例:
71.1.安装rsyslog(apt-get install-y rsyslog);
72.2.配置rsyslog.conf,为保证日志传输可靠,打开配置文件中tcp监听514端口;
73.3.配置rsyslog收集日志的模板(将日志文件名定义为来源服务器ip 收集的日期 容器名称 程序名称);
74.4.为防止单个日志过大,利用linux服务器的logratate对rsyslog收集到的日志按时间和大小进行切割;
75.5.安装logstash并配置logstash.conf,读取rsyslog收集的日志转发到elasticsearch。
76.在其中一个实施例中,还包括:通过日志中心服务器将收集到的日志转发到elasticseach并建立索引;通过noc系统监控中心根据建立的索引对日志进行分类展示。
77.noc监控系统数据源由elasticsearch接口提供,前端展示由echarts插件实现数据可视化展示。
78.在其中一个实施例中,还包括:日志中心服务器的台数由云管理平台服务集群规模的大小进行配置。
79.在另一个实施例中,如图2所示,提供了一种基于docker的cmp系统日志统一监控管理方法,包括:
80.s1:制作docker镜像将程序日志交由容器托管;
81.s2:设置docker全局日志驱动类型和上传地址;
82.s3:rsyslog日志服务器中心收集并转发logstash;
83.s4:日志汇聚到elasticsearch并分类建立索引;
84.s5:echarts可视化展示cmp系统运行状态。
85.应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一
部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
86.在一个实施例中,如图3所示,提供了一种基于docker的cmp系统日志统一监控管理装置,包括:docker镜像制作模块302、日志关联模块304、日志驱动模块306和监控管理模块308,其中:
87.docker镜像制作模块302,用于获取云管理平台下业务的系统程序或软件服务,并制作对应的docker镜像;
88.日志关联模块304,用于将系统程序或软件服务的日志关联到docker镜像的标准输出;
89.日志驱动模块306,用于根据docker镜像启动docker容器,设置容器日志驱动,在docker容器运行时将docker容器产生的日志传至云管理平台的日志中心服务器;
90.监控管理模块308,用于通过日志中心服务器对收集到的日志建立索引并进行统一监控管理。
91.docker镜像制作模块302还用于获取云管理平台下业务的系统程序或软件服务;通过dockerfile文件配置并制作对应的docker镜像。
92.日志关联模块304还用于将系统程序或软件服务的日志关联到docker镜像的标准输出;日志包括访问日志和错误日志。
93.日志驱动模块306还用于根据docker镜像启动docker容器;选取日志驱动类型,在docker容器启动时设置容器日志驱动参数;将日志驱动类型和日志要转发到的日志中心服务器地址配置到服务器docker的daemon.json文件,并由在该服务器docker上运营的所有docker容器共享该驱动配置。
94.监控管理模块308还用于在日志中心服务器上通过rsyslog服务对发来的日志进行收集、分类并转发到logstash;由logstash读取rsyslog收集的日志,转发到elasticseach。
95.监控管理模块308还用于通过日志中心服务器将收集到的日志转发到elasticseach并建立索引;通过noc系统监控中心根据建立的索引对日志进行分类展示。
96.关于基于docker的cmp系统日志统一监控管理装置的具体限定可以参见上文中对于基于docker的cmp系统日志统一监控管理方法的限定,在此不再赘述。上述基于docker的cmp系统日志统一监控管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
97.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以
实现一种基于docker的cmp系统日志统一监控管理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
98.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
99.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
100.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
101.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
102.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
103.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献