CN112764829A - 一种用于Linux系统的指标监控方法 - Google Patents
一种用于Linux系统的指标监控方法 Download PDFInfo
- Publication number
- CN112764829A CN112764829A CN202110038486.8A CN202110038486A CN112764829A CN 112764829 A CN112764829 A CN 112764829A CN 202110038486 A CN202110038486 A CN 202110038486A CN 112764829 A CN112764829 A CN 112764829A
- Authority
- CN
- China
- Prior art keywords
- function
- monitoring
- data
- database
- data acquisition
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于Linux系统的指标监控方法,具体步骤如下:在InfluxDB下创建一个名为“collectd”的数据库;基于实际要获取数据的数据源,代码实现“监控数据获取函数”;修改InfluxDB的配置文件,使收集到数据后可直接存入InfluxDB数据库;修改collectd的配置文件,配置执行“监控数据获取函数”所需要的参数;代码调用collectd提供的函数,注册插件的“配置加载函数”和“数据读取函数”;代码实现“配置文件读取回调函数”和“监控数据采集回调函数”,分别作为“配置加载函数”和“数据读取函数”的参数,本发明适用于指标监控,通过本发明中的方法,在监控数据源的数量逐渐变多之后,这个方法可以大大地简化程序员的工作复杂度,提高指令的通用性。
Description
技术领域
本发明属于Linux系统的指标监控技术领域,具体是一种用于Linux系统的指标监控方法。
背景技术
因为collectd可以周期性收集各种不同来源的指标,比如操作系统、应用程序、日志文件和外部设备等,这些采集得的统计数据可用于查找性能瓶颈甚至预测未来的系统负载,所以编写Python脚本来自定义collectd的插件从而采集需要的监控指标;
而现有的方法在进行Linux系统的指标监控时,当监控数据源的数量逐渐变多之后,程序员的工作复杂度会大大提升,指令的通用性差。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种用于Linux系统的指标监控方法。
为实现上述目的,本发明采用了如下技术方案:
一种用于Linux系统的指标监控方法,具体步骤如下:
S1:在InfluxDB下创建一个名为“collectd”的数据库;
S2:基于实际要获取数据的数据源,代码实现“监控数据获取函数”;
S3:修改InfluxDB的配置文件,使收集到数据后可直接存入InfluxDB数据库;
修改collectd的配置文件,配置执行“监控数据获取函数”所需要的参数;
S4:代码调用collectd提供的函数,注册插件的“配置加载函数”和“数据读取函数”;
S5:代码实现“配置文件读取回调函数”和“监控数据采集回调函数”,分别作为“配置加载函数”和“数据读取函数”的参数;
S6:代码调用“配置文件读取回调函数”,读取“监控数据获取函数”需要的参数值;
S7:在“监控数据采集回调函数”里调用“监控数据获取函数”,获取需要的数据;
S8:“监控数据获取函数”获取完数据后,代码调用collectd提供的分派函数将获取的结果存入“collectd”数据库下,该数据源对应的数据表中;
S9:在Linux终端启用InfluxDB,选择数据库“collectd”;
S10:在“collectd”数据库下,执行命令,打印出所有存储监控数据的表名;
S11:基于表名,执行SQL语句,来自该表对应数据源的监控数据则以表的形式在屏幕上打印出来。
优选的,所述步骤(S2)中实现“监控数据获取函数”的具体方法如下:
在采集MySQL数据库死锁指标时,代码获取“show engine innodb status”指令的执行结果,并经过字符串处理后,从返回结果的“LATEST DETECTED DEADLOCK”部分解析出“数据库当前是否有死锁”、“死锁涉及的事务数”和“MySQL选择回滚的事务id”的监控信息,并分别存储在自定义字典中,字典被函数返回;
在采集docker容器的监控指标时,代码获取“docker stats”命令执行的结果,经过简单字符串处理后,从返回结果中解析出所有处于活跃状态的容器的“CPU占用率”、“内存占用率”、“网络传输IO”、“块IO”以及“线程号”,并将它们分别存储在自定义字典中,字典被函数返回。
优选的,所述步骤(S8)中的分派函数采用dispatch函数。
优选的,所述数据源和表一一对应。
本发明使用python自定义collectd的插件,并结合时序数据库InfluxDB,实现持续采集MySQL数据库中死锁的监控指标值和docker各个容器的CPU占用率、内存占用率、网络传输IO、数据块IO等监控指标值,从而达到统一、直观、高效地监控计算机运行状态是否良好,方便迅速定位故障来源的目的;
通过本发明中的方法,只需要程序员配置一轮参数和实现一次collectd的插件,以后则可以直接在Linux终端采用简单的SQL语句来查询源于这个数据源的监控数据了,即将原本多种多样的监控数据查询操作统一成了简单地SQL语句查表操作,因此,当监控数据源的数量逐渐变多之后,这个方法可以大大地简化程序员的工作复杂度,提高指令的通用性。
附图说明
图1是本发明的整体结构示意图。
具体实施方式
以下结合附图1,进一步说明本发明一种用于Linux系统的指标监控方法的具体实施方式。本发明一种用于Linux系统的指标监控方法不限于以下实施例的描述。
实施例1:
本实施例给出一种用于Linux系统的指标监控方法,如图1所示,
S1:修改InfluxDB配置文件,创建名为“collectd”的数据库,并配置InfluxDB自带的collectd插件再重启InfluxDB;
S2:基于实际数据源,实现“监控数据获取函数”;
采集MySQL数据库死锁指标时,代码获取“show engine innodb status”指令的执行结果,并经过一系列字符串处理后,从返回结果的“LATEST DETECTED DEADLOCK”部分解析出“数据库当前是否有死锁”、“死锁涉及的事务数”和“MySQL选择回滚的事务id”等监控信息,并分别存储在自定义字典中,字典被函数返回;
采集docker容器的监控指标时,代码获取“docker stats”命令执行的结果,经过简单字符串处理后,从返回结果中解析出所有处于活跃状态的容器的“CPU占用率”、“内存占用率”、“网络传输IO”、“块IO”以及“线程号”,并将它们分别存储在自定义字典中,字典被函数返回;
S3:修改collectd配置文件,配置collectd为客户端,使得collectd收集到数据后,可直接发给InfluxDB。并将python插件设置为启用,以保证由Pyhon开发的插件是程序可用的,然后配置“监控数据获取函数”需要的参数,再重启collectd;
S4:代码中引入collectd模块后,用collect提供的函数,注册“配置加载函数”和“数据读取函数”;
S5:实现“配置文件读取回调函数”和“监控数据采集回调函数”,分别作为“配置加载函数”和“数据读取函数”的参数;
S6:代码调用“配置文件读取回调函数”,从collectd配置文件中读取数据源获取数据时要用到的参数;
S7:在“监控数据采集回调函数”中,调用“监控数据获取函数”。具体是定义一个collectd对象存收集的监控数据,并设置对象的参数,最后调用collectd提供的分派函数,将这个collectd对象存入“collectd”数据库下,该数据源对应的同名表中;
S8:用户在Linux终端启动InfluxDB后,输入“use collectd”,即为使用“collectd”数据库;
S9:执行“show measurement”语句后,所有存监控数据的表名会在屏幕上显示出来,一个数据源会对应一张表;
S10:用户基于这些表名,使用“select”等SQL语句即可查询监控数据。数据会以表的形式显示到屏幕。
结合实施例1可以得出,在本发明的方法下,只需要程序员配置一轮参数和实现一次collectd的插件,以后则可以直接在Linux终端采用简单的SQL语句来查询源于这个数据源的监控数据了,即将原本多种多样的监控数据查询操作统一成了简单地SQL语句查表操作,因此,当监控数据源的数量逐渐变多之后,这个方法可以大大地简化程序员的工作复杂度,提高指令的通用性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (4)
1.一种用于Linux系统的指标监控方法,其特征在于,具体步骤如下:
S1:在InfluxDB下创建一个名为“collectd”的数据库;
S2:基于实际要获取数据的数据源,代码实现“监控数据获取函数”;
S3:修改InfluxDB的配置文件,使收集到数据后可直接存入InfluxDB数据库;
修改collectd的配置文件,配置执行“监控数据获取函数”所需要的参数;
S4:代码调用collectd提供的函数,注册插件的“配置加载函数”和“数据读取函数”;
S5:代码实现“配置文件读取回调函数”和“监控数据采集回调函数”,分别作为“配置加载函数”和“数据读取函数”的参数;
S6:代码调用“配置文件读取回调函数”,读取“监控数据获取函数”需要的参数值;
S7:在“监控数据采集回调函数”里调用“监控数据获取函数”,获取需要的数据;
S8:“监控数据获取函数”获取完数据后,代码调用collectd提供的分派函数将获取的结果存入“collectd”数据库下,该数据源对应的数据表中;
S9:在Linux终端启用InfluxDB,选择数据库“collectd”;
S10:在“collectd”数据库下,执行命令,打印出所有存储监控数据的表名;
S11:基于表名,执行SQL语句,来自该表对应数据源的监控数据则以表的形式在屏幕上打印出来。
2.如权利要求1所述的一种用于Linux系统的指标监控方法,其特征在于:所述步骤(S2)中实现“监控数据获取函数”的具体方法如下:
在采集MySQL数据库死锁指标时,代码获取“show engine innodb status”指令的执行结果,并经过字符串处理后,从返回结果的“LATEST DETECTED DEADLOCK”部分解析出“数据库当前是否有死锁”、“死锁涉及的事务数”和“MySQL选择回滚的事务id”的监控信息,并分别存储在自定义字典中,字典被函数返回;
在采集docker容器的监控指标时,代码获取“docker stats”命令执行的结果,经过简单字符串处理后,从返回结果中解析出所有处于活跃状态的容器的“CPU占用率”、“内存占用率”、“网络传输IO”、“块IO”以及“线程号”,并将它们分别存储在自定义字典中,字典被函数返回。
3.如权利要求1所述的一种用于Linux系统的指标监控方法,其特征在于:所述步骤(S8)中的分派函数采用dispatch函数。
4.如权利要求1所述的一种用于Linux系统的指标监控方法,其特征在于:所述数据源和表一一对应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110038486.8A CN112764829A (zh) | 2021-01-12 | 2021-01-12 | 一种用于Linux系统的指标监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110038486.8A CN112764829A (zh) | 2021-01-12 | 2021-01-12 | 一种用于Linux系统的指标监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112764829A true CN112764829A (zh) | 2021-05-07 |
Family
ID=75699873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110038486.8A Pending CN112764829A (zh) | 2021-01-12 | 2021-01-12 | 一种用于Linux系统的指标监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827596A (zh) * | 2024-03-05 | 2024-04-05 | 大连高德瑞信科技有限公司 | 一种安全可控线程实时监控方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155749A (zh) * | 2016-07-28 | 2016-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种监控插件扩展方法及装置 |
-
2021
- 2021-01-12 CN CN202110038486.8A patent/CN112764829A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155749A (zh) * | 2016-07-28 | 2016-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种监控插件扩展方法及装置 |
Non-Patent Citations (3)
Title |
---|
JUSTMINE: "justmine(大数据与云原生)", 《HTTPS://WWW.CNBLOGS.COM/JUSTMINE/P/9103517.HTML》 * |
杨鑫: "物理机性能监控—基于collectd插件编写", 《HTTPS://TECH.IT168.COM/A2016/1025/2993/000002993954.SHTML》 * |
问仙: "使用 Grafana+collectd+InfluxDB 打造现代监控系统", 《HTTPS://BLOG.51CTO.COM/ENLIGHTEN/1956958》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827596A (zh) * | 2024-03-05 | 2024-04-05 | 大连高德瑞信科技有限公司 | 一种安全可控线程实时监控方法及系统 |
CN117827596B (zh) * | 2024-03-05 | 2024-04-26 | 大连高德瑞信科技有限公司 | 一种安全可控线程实时监控方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069572B (zh) | 基于大数据平台的hive任务调度方法、装置、设备及存储介质 | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
CN108446313B (zh) | 一种数据格式转换方法和装置 | |
CN109299074B (zh) | 一种基于模板化数据库视图的数据校验方法及系统 | |
CN111460849B (zh) | 一种兼容多套设置码的方法及扫码设备 | |
CN112764829A (zh) | 一种用于Linux系统的指标监控方法 | |
CN110597851B (zh) | 一种基于大数据的数据处理及报表展示方法 | |
CN112667873A (zh) | 一种适用于多数网站通用采集数据的爬虫系统及方法 | |
CN111625300A (zh) | 一种高效的数据采集加载方法及系统 | |
CN108399196B (zh) | 数据库sql语句自动生成工具的sql自动执行方法及系统 | |
CN115827669A (zh) | 一种类sql语句的动态执行方法及程序系统 | |
CN116361184A (zh) | 一种数据查找方法、装置、介质和计算机设备 | |
CN115062051A (zh) | 一种通用组装跨数据库语言查询方法和系统 | |
CN114064601B (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN114547524A (zh) | 一种同步http接口数据的方法、设备及存储介质 | |
CN109977104B (zh) | 数据管理方法及装置 | |
CN107656868B (zh) | 一种利用线程私有数据获取线程名字的调试方法及系统 | |
CN109783105B (zh) | 企业服务平台的编码统计方法、设备、存储介质及装置 | |
CN111813754A (zh) | 一种文件处理方法、文件处理装置、诊断设备及电子设备 | |
CN110737707A (zh) | 多系统的日志搜索方法、装置及计算机可读存储介质 | |
CN108038248B (zh) | Etl依赖自动识别方法与系统 | |
CN110968566A (zh) | 基于迁移工具的国产化应用系统迁移方法 | |
CN111522900B (zh) | 非结构化数据的自动解析方法、系统、设备及存储介质 | |
CN113326421B (zh) | 记录载体的数据识别方法、装置、电子设备及存储介质 | |
CN115051904B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210507 |