一种基于Prometheus的Docker容器数据保存方法及系统与流程

文档序号:33479149发布日期:2023-03-15 11:31阅读:61来源:国知局
一种基于Prometheus的Docker容器数据保存方法及系统与流程
一种基于prometheus的docker容器数据保存方法及系统
技术领域
1.本发明涉及数据备份技术领域,具体的说是一种基于prometheus的docker容器数据保存方法及系统。


背景技术:

2.作为一种新兴的虚拟化方式,docker跟传统的虚拟化方式有着利用系统资源更高效、启动时间更快速、迁移维护和扩展更轻松、管理更简单的优势,引导着大量的开发者将应用以容器化的方式部署在服务器之上,深受广大软件开发者的喜爱。
3.作为一个备受好评的虚拟化运行平台,docker数据容器保护机制目前十分简单,在容器的生命周期中,除非手动人工进行备份操作,否则容器本身并不会对所有数据进行保存工作,这就导致在异常发生时刻,一些重要的数据信息会发生丢失或者异常并且很难找回。
4.prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警的新模型。相比于传统监控系统,prometheus具有高效、可扩展、易管理、开放等优点,结合prometheus监控数据对docker容器进行实时且全生命周期的数据安全备份管理,是补全docker容器安全的可行选择。


技术实现要素:

5.本发明针对docker数据容器保护机制存在的缺陷,提供一种基于prometheus的docker容器数据保存方法及系统,旨在确定docker数据保存的时机,即在异常发生前对docker容器数据进行完整保存的技术问题和发现主机处于安全状态时的docker容器数据恢复。
6.首先,本发明提供一种基于prometheus的docker容器数据保存方法,解决上述技术问题采用的技术方案如下:
7.一种基于prometheus的docker容器数据保存方法,其实现过程包括:
8.利用prometheus监控系统对主机进行监控,获取主机运行数据;
9.利用prometheus监控系统对主机上运行的docker容器进行监控,获取docker容器运行数据;
10.对主机运行数据和docker容器运行数据分别进行综合整合,得到主机运行情况综合值和每个docker容器运行情况综合值;
11.每间隔设定时间,将主机运行情况综合值与预设的主机运行安全阈值进行比较,如果主机运行情况综合值超过了主机运行安全阈值,则对所有docker容器启动docker容器数据恢复程序;
12.每间隔设定时间,将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较,如果某个docker容器运行情况综合值超过了docker容器运行安全阈值,
即说明该docker容器处在一个较为危险的运行环境当中,对该docker容器启动docker容器数据保存程序。
13.可选的,获取的主机运行数据包括硬件温度、内存使用情况、cpu使用情况、磁盘分区使用情况网络输入输出情况。
14.可选的,获取的docker容器运行数据包括docker容器发送和接收的网络流量,docker容器的cpu使用率,docker容器的内存使用率。
15.可选的,每间隔一个小时,将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较;
16.对docker容器启动docker容器数据保存程序的步骤如下:
17.使用docker commit命令创建docker容器备份镜像;
18.根据监控数据,以及docker容器备份镜像文件大小,选择一块可以容纳docker容器备份镜像文件的磁盘分区作为备份镜像文件的存放地址;
19.导出docker容器备份镜像文件并保存到该磁盘分区;
20.记录docker镜像记录备份镜像时间,标记备份镜像状态为未恢复,保存相关信息到数据库以便查询。
21.可选的,每间隔五分钟,将主机运行情况综合值与预设的主机运行安全阈值进行比较;
22.对所有docker容器启动docker容器数据恢复程序的步骤如下:
23.根据数据库记录信息,获取所有处于未恢复状态的docker容器备份镜像信息;
24.使用docker load命令导入docker容器备份镜像;
25.从磁盘将被标记为已恢复状态容器备份镜像进行删除;
26.判断容器备份镜像对应的容器是否正在运行,如果未在运行,则使用docker run命令以及容器备份镜像恢复容器运行状态;
27.记录docker镜像记录恢复时间,标记备份镜像状态为已恢复,保存相关信息到数据库以便查询。
28.其次,本发明提供一种基于prometheus的docker容器数据保存系统,解决上述技术问题采用的技术方案如下:
29.一种基于prometheus的docker容器数据保存系统,其结构包括:
30.获取模块,用于获取主机运行数据和主机上运行的docker容器运行数据,所述主机运行数据是由prometheus监控系统对主机监控得到的,所述docker容器运行数据是由prometheus监控系统对主机上运行的docker容器监控得到的;
31.数据处理模块,用于对主机运行数据和docker容器运行数据分别进行综合整合,得到主机运行情况综合值和每个docker容器运行情况综合值;
32.设定模块,用于设定主机运行安全阈值、docker容器运行安全阈值以及数据比较间隔时间;
33.比较触发模块,用于将主机运行情况综合值与预设的主机运行安全阈值进行比较,如果主机运行情况综合值超过了主机运行安全阈值,则对所有docker容器启动docker容器数据恢复程序,还用于将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较,如果某个docker容器运行情况综合值超过了docker容器运行安全阈值,
即说明该docker容器处在一个较为危险的运行环境当中,对该docker容器启动docker容器数据保存程序。
34.可选的,主机运行数据包括硬件温度、内存使用情况、cpu使用情况、磁盘分区使用情况网络输入输出情况。
35.可选的,docker容器运行数据包括docker容器发送和接收的网络流量,docker容器的cpu使用率,docker容器的内存使用率。
36.可选的,利用设定模块设定的数据比较间隔时间为一小时,此时,比较触发模块每间隔一个小时,将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较;
37.对docker容器启动docker容器数据保存程序的步骤如下:
38.使用docker commit命令创建docker容器备份镜像;
39.根据监控数据,以及docker容器备份镜像文件大小,选择一块可以容纳docker容器备份镜像文件的磁盘分区作为备份镜像文件的存放地址;
40.导出docker容器备份镜像文件并保存到该磁盘分区;
41.记录docker镜像记录备份镜像时间,标记备份镜像状态为未恢复,保存相关信息到数据库以便查询。
42.可选的,利用设定模块设定的数据比较间隔时间为五分钟,此时,比较触发模块每间隔五分钟,将主机运行情况综合值与预设的主机运行安全阈值进行比较;
43.对所有docker容器启动docker容器数据恢复程序的步骤如下:
44.根据数据库记录信息,获取所有处于未恢复状态的docker容器备份镜像信息;
45.使用docker load命令导入docker容器备份镜像;
46.从磁盘将被标记为已恢复状态容器备份镜像进行删除;
47.判断容器备份镜像对应的容器是否正在运行,如果未在运行,则使用docker run命令以及容器备份镜像恢复容器运行状态;
48.记录docker镜像记录恢复时间,标记备份镜像状态为已恢复,保存相关信息到数据库以便查询。
49.本发明的一种基于prometheus的docker容器数据保存方法及系统,与现有技术相比具有的有益效果是:
50.本发明可以确定docker数据保存的时机,以在异常发生前对docker容器数据进行完整保存,在发现主机处于安全状态时对docker容器数据进行恢复。
附图说明
51.附图1是本发明实施例一的方法流程框图;
52.附图2是本发明启动docker容器数据保存程序的流程图;
53.附图3是本发明启动docker容器数据恢复程序的流程图;
54.附图4是本发明实施例二的连接框图。
具体实施方式
55.为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具
体实施例,对本发明的技术方案进行清楚、完整的描述。
56.prometheus:中文名普罗米修斯,是一个开源的监控程序,它将采集器收集到的所有信息都存储为时间序列数据,实时分析监控对象运行的状态、执行时间、资源占用、网络速度、调用次数等,它监控的对象比较广泛如主机,docker容器,应用程序等。
57.docker:是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux或windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。
58.docker容器:是独立运行的一个或一组应用。它的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的网络命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
59.网络命名空间:是一种隔离技术,在docker容器中,不同的容器通过网络命名空间进行了隔离,也就是不同的容器有各自的ip地址,路由表等,互不影响。
60.docker镜像:是用于创建docker容器的模板。它本身是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
61.实施例一:
62.结合附图1,本实施例提出一种基于prometheus的docker容器数据保存方法,其实现过程包括:
63.s1、利用prometheus监控系统对主机进行监控,获取主机运行数据,获取的主机运行数据包括硬件温度、内存使用情况、cpu使用情况、磁盘分区使用情况网络输入输出情况。
64.s2、利用prometheus监控系统对主机上运行的docker容器进行监控,获取docker容器运行数据,获取的docker容器运行数据包括docker容器发送和接收的网络流量,docker容器的cpu使用率,docker容器的内存使用率。
65.s3、对主机运行数据和docker容器运行数据分别进行综合整合,得到主机运行情况综合值和每个docker容器运行情况综合值。
66.s4、每间隔五分钟,将主机运行情况综合值与预设的主机运行安全阈值进行比较;如果主机运行情况综合值超过了主机运行安全阈值,则对所有docker容器启动docker容器数据恢复程序。
67.结合附图3,对所有docker容器启动docker容器数据恢复程序的步骤如下:
68.根据数据库记录信息,获取所有处于未恢复状态的docker容器备份镜像信息;
69.使用docker load命令导入docker容器备份镜像;
70.从磁盘将被标记为已恢复状态容器备份镜像进行删除;
71.判断容器备份镜像对应的容器是否正在运行,如果未在运行,则使用docker run命令以及容器备份镜像恢复容器运行状态;
72.记录docker镜像记录恢复时间,标记备份镜像状态为已恢复,保存相关信息到数据库以便查询。
73.s5、每间隔一个小时,将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较,如果某个docker容器运行情况综合值超过了docker容器运行安全阈值,即说明该docker容器处在一个较为危险的运行环境当中,对该docker容器启动docker容器数据保存程序。
74.结合附图2,对docker容器启动docker容器数据保存程序的步骤如下:
75.使用docker commit命令创建docker容器备份镜像;
76.根据监控数据,以及docker容器备份镜像文件大小,选择一块可以容纳docker容器备份镜像文件的磁盘分区作为备份镜像文件的存放地址;
77.导出docker容器备份镜像文件并保存到该磁盘分区;
78.记录docker镜像记录备份镜像时间,标记备份镜像状态为未恢复,保存相关信息到数据库以便查询。
79.实施例二:
80.结合附图4,本实施例提出一种基于prometheus的docker容器数据保存系统,其结构包括:
81.获取模块,用于获取主机运行数据和主机上运行的docker容器运行数据,所述主机运行数据是由prometheus监控系统对主机监控得到的,包括硬件温度、内存使用情况、cpu使用情况、磁盘分区使用情况网络输入输出情况,所述docker容器运行数据是由prometheus监控系统对主机上运行的docker容器监控得到的,包括docker容器发送和接收的网络流量,docker容器的cpu使用率,docker容器的内存使用率。
82.数据处理模块,用于对主机运行数据和docker容器运行数据分别进行综合整合,得到主机运行情况综合值和每个docker容器运行情况综合值;
83.设定模块,用于设定主机运行安全阈值、docker容器运行安全阈值以及数据比较间隔时间;
84.比较触发模块,用于将主机运行情况综合值与预设的主机运行安全阈值进行比较,如果主机运行情况综合值超过了主机运行安全阈值,则对所有docker容器启动docker容器数据恢复程序,还用于将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较,如果某个docker容器运行情况综合值超过了docker容器运行安全阈值,即说明该docker容器处在一个较为危险的运行环境当中,对该docker容器启动docker容器数据保存程序。
85.本实施例中,利用设定模块设定的数据比较间隔时间为五分钟,此时,比较触发模块每间隔五分钟,将主机运行情况综合值与预设的主机运行安全阈值进行比较;
86.结合附图3,对所有docker容器启动docker容器数据恢复程序的步骤如下:
87.根据数据库记录信息,获取所有处于未恢复状态的docker容器备份镜像信息;
88.使用docker load命令导入docker容器备份镜像;
89.从磁盘将被标记为已恢复状态容器备份镜像进行删除;
90.判断容器备份镜像对应的容器是否正在运行,如果未在运行,则使用docker run命令以及容器备份镜像恢复容器运行状态;
91.记录docker镜像记录恢复时间,标记备份镜像状态为已恢复,保存相关信息到数据库以便查询。
92.本实施例中,利用设定模块设定的数据比较间隔时间为一小时,此时,比较触发模块每间隔一个小时,将每个docker容器运行情况综合值与预设的docker容器运行安全阈值进行比较;
93.结合附图2,对docker容器启动docker容器数据保存程序的步骤如下:
94.使用docker commit命令创建docker容器备份镜像;
95.根据监控数据,以及docker容器备份镜像文件大小,选择一块可以容纳docker容器备份镜像文件的磁盘分区作为备份镜像文件的存放地址;
96.导出docker容器备份镜像文件并保存到该磁盘分区;
97.记录docker镜像记录备份镜像时间,标记备份镜像状态为未恢复,保存相关信息到数据库以便查询。
98.综上可知,采用本发明的一种基于prometheus的docker容器数据保存方法及系统,可以确定docker数据保存的时机,以在异常发生前对docker容器数据进行完整保存,在发现主机处于安全状态时对docker容器数据进行恢复。
99.以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1