CN112035332B - 一种服务器监控方法、系统及可读存储介质 - Google Patents
一种服务器监控方法、系统及可读存储介质 Download PDFInfo
- Publication number
- CN112035332B CN112035332B CN202011228699.9A CN202011228699A CN112035332B CN 112035332 B CN112035332 B CN 112035332B CN 202011228699 A CN202011228699 A CN 202011228699A CN 112035332 B CN112035332 B CN 112035332B
- Authority
- CN
- China
- Prior art keywords
- file
- server
- monitored
- dictionary
- monitoring method
- 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.)
- Active
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/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Abstract
本发明提供一种服务器监控方法,登录被监控服务器;获取监控数据:打开被监控服务器命令行,执行单次命令获取需要监控的一个或多个信息,即,执行fgrep命令,无论是获取一个信息还是多个信息,都可以通过执行单次命令来实现,大大降低了系统负担。
Description
技术领域
本发明涉及服务监控技术领域,特别涉及一种实时的无代理服务监控方法、系统及可读存储介质。
背景技术
目前一般有两种服务器监控方案,第一种是在被监控机器上安装监控代理agent;第二种是使用独立的监控程序,登录并验证服务是否正常。
对于第一种方法,部署运维比较复杂,需要在大量机器上管理升级监控代理,对部署和运维带来负担。
对于第二种方法,一般流程如下:
a. 使用telnet/ssh模拟登录远程受控机。
b. 执行一条特定的命令如 (vmstat, ps),取得单个监控指标(如内存,进程,cpu等其中之一)。
c. 重复步骤 a, b,直至取得所有要监控的指标,大约 20~30 次。
支持第二种监控方式的系统有zabbix和nagios,目前这种无代理监控的主要问题有:(1)很难做到实时监控,需要频繁登录,因为网络延迟的原因和单次只执行一条特定的命令导致每次取得所有的监控指标需要分钟级别的耗时。(2)监控指标一般会受限,因为执行的命令越多,消耗的受控机器上的内存和处理器资源越多,为了不影响受控机上的业务正常运行,一般会人为给监控指标设置上限。
申请号为201510054937.1的专利申请公开了一种基于Linux系统开关机下内存监测实现方法,包括,(1)确保待测主机安装了Linux系统,用户登录,拷贝warmboot脚本到桌面,打开linux系统终端程序,将当前目录切换到桌面,执行以下操作:#./warmboot.sh –m–max N –time F;(2)命令执行完成后,脚本抓取/proc/meminfo下的内存容量作为参考内存容量;(3)桌面生成RebootResult文件夹,该文件夹下子文件夹记录内存测试情况;(4)按照设定间隔时间,系统重启;(5)通过读取RebootResult/count文件进行计数,根据对/proc/meminfo中内存容量的抓取,与参考容量作比较;(6)系统自动执行重启设定的测试次数,直到执行完毕;该申请实现无人值守,自动测试,对测试进行计数以及内存容量监控,以评估测试机重启压力测试中整机的稳定性。但该申请也仅能对特定指标进行监控。
发明内容
本发明的目的在于提供一种服务器监控方法,实现无代理的实时监控,同时可以单条命令获取多个数据,减少命令数量。
本发明提供的服务器监控方法,包括,登录被监控服务器;获取监控数据:打开被监控服务器命令行,执行单次命令获取需要监控的一个或多个信息,即,执行命令“/bin/fgrep '' /[filename]”,获取文件名为filename的文件数据,输出所获取的文件数据,当获取多个信息时,命令中包括多个文件名,即执行命令“/bin/fgrep '' /[filename] .../[filename]”。
本发明巧妙地运用了fgrep命令的一个特殊组合用法,一般来说,fgrep的常规用法是用来查找文件中的字符串:fgrep 'something' /path/to/filename,fgrep的常见用法是第一个参数是特定的字符串,第二个参数是文件名,fgrep的输出结果是这个字符串在这个文件里出现的地方。本发明使用空字符串作为第一个参数,并且利用fgrep支持任意个文件名的特性,组合出上面这个命令,一次性输出需要监控的各项指标。
本发明所获取的文件信息位于/proc/目录下。
优选地,获取到需要监控的信息后,对信息进行解析,具体包括,(1)创建内存字典,以文件名为字典键,以文件行列表为字典值;(2)以换行符分割文件数据,遍历每一行;(3)以“:”将每一行分割为内存字典的键值对:“:”之前是文件名,“:”之后是文件行列表元素;(4)如果字典键已存在,将文件行列表元素加入到文件名对应的文件行列表;如不存在则以文件名为字典键进行创建。
优选地,将解析后的内存字典的字典键值转换为OpenMetrics格式数据后输出。
优选地,基于ssh协议登录被监控服务器。
本发明还提供一种服务器监控系统,包括登录模块和监控模块,实现本发明提供的服务器监控方法,所述登录模块登录被监控服务器,所述监控模块执行获取监控数据的步骤。
本发明还提供一种可读存储介质,所述可读存储介质中存储有程序,该程序实现本发明提供的服务器监控方法。
本发明巧妙地运用了fgrep命令的一个特殊组合用法,使用空字符串作为第一个参数,并且利用fgrep支持任意个文件名的特性,组合出上面这个命令,一次性需要监控的各项指标。本发明既可以实现无代理的服务器监控,又可以通过一次查询多个文件,实现一次性输出需要监控的各项指标,避免了频繁登录被监控服务器,减少了执行的命令的条数,耗时大大降低。
附图说明
图1为获得的数据在命令行窗口中的显示示意图;
图2为可视化监控示意图。
具体实施方式
本发明提供的无代理的服务器实时监控方法,包括如下步骤:
1、根据预先配置的认证信息登录被监控机器;
2、如果登录失败或超时,则判断所述服务器异常;
3、如果登录成功,则打开被监控机器命令行;
4、执行单次命令获取系统当前需要监控的所有信息;
5、如果命令执行失败或返回空值,则判断所述服务器异常;
6、解析返回的监控信息,输出OpenMetrics 格式数据;
7、监控系统采集 OpenMetrics 数据,生成对应仪表盘和告警。
下面对本申请的实现过程进行详细描述。
1、登录模块从 CMDB(配置管理数据库)读取需要监控的机器信息列表,信息列表的格式见下表:
表1
2、登录模块使用上述信息登陆到对应的被监控的机器上,保持 ssh 会话。
3、当监控模块接收到第三方的监控信息采集请求时,执行以下动作:
(1)找到对应的机器的 ssh 会话;
(2)打开 ssh 通道,执行以下命令:
对于Linux操作系统中的fgrep命令,fgrep 的常规用法是用来查找文件中的字符串,如:fgrep 'something' /path/to/filename,该命令中,第一个参数是特定的字符串,如命令中的“something”,以单引号来限定,第二个参数是文件名,如命令中的“filename”,“/path/to/”是该文件在机器中存储的路径,fgrep 的输出结果是这个字符串在这个文件里出现的地方。对于命令bin/fgrep '' /[filename],“/[filename]”表示文件名filename所存储的位置,如“/proc/diskstats”表示文件diskstats位于proc目录。
本申请使用空字符串作为第一个参数,并且利用 fgrep 支持任意个文件名的特性,组合出上面这个命令,一次性的输出系统需要监控的各项指标并且按照指标文件名排列,获得的数据在命令行窗口中的显示如图1所示。
图1中的数据输出格式遵循的规则为:<文件名>:<文件内容行>。
对于每一个文件名,都是 linux procfs 和 sysfs 规范中定义的,规范完整定义在 https://www.kernel.org/doc/Documentation/ ,简要摘录见下表:
表2
4、监控模块从 ssh 通道的标准输出读取出上述各项指标,按指标文件名归类。
针对这种输出,我们使用如下流程解析出相应的监控指标:
(1)创建内存字典,以文件名为字典键,以文件行列表(即,字符串列表)为字典值。
(2)以换行符分割从 ssh 通道的标准输出读取的各项指标文件,遍历每一行。
(3)以“:”将每一行输出分割为字典的键值对:第一部分是文件名,第二部分是文件行列表元素。
(4)如果字典键已存在,将文件行列表元素加入到文件名对应的字符串列表;如不存在则创建。
针对不同监控指标文件的输出,生成对应的 metrics格式数据。以/proc/meminfo为例,原始数据如表3。/proc/meminfo包括很多子项,如MemTotal、MemFree、MemAvailable等,我们在内存字典中创建,以子项的文件名作为字典键,以文件行列表作为字典键值,遍历每一行,使用冒号将每一行分割为两部分,前面是具体的子项名称,如 MemTotal,后面是具体的值,如16194200 kB。对于具体值,我们还需要解析它们的单位(kB, mB等)换算成标准的字节数,最后使用字符串拼接,形成node_memory_MemTotal_bytes 16582860800这样的字符串。接着继续遍历,完成表3中的全部子项的分割、拼接成字符串,再将字符串转换为OpenMetrics 格式,转换后的数据如表4所示,这些数据包含了被监控机器的内存使用的详细情况。OpenMetrics 格式转换为常规技术。
表3
表4
5. 将表4中的OpenMetrics 格式数据作为回应返回给提出信息采集请求的第三方。
将OpenMetrics格式数据,使用http/https 协议暴露给仪表盘系统(如 grafana/prometheus等),就能得到如图2所示的可视化的监控结果。
本发明还提供服务器监控系统,包括登录模块和监控模块。登录模块根据预先配置的认证信息登录被监控机器;如果登录失败或超时,则判断所述服务器异常,如果登录成功,则由监控模块打开被监控机器命令行,执行单次命令获取系统当前需要监控的所有信息;解析返回的监控信息,输出OpenMetrics 格式数据。
Claims (7)
1.一种服务器监控方法,其特征在于,登录被监控服务器;获取监控数据:打开被监控服务器命令行,执行单次命令获取需要监控的一个或多个文件信息,即,执行命令“/bin/fgrep '' /[filename]”,获取文件名为filename的文件数据,输出所获取的文件数据,当获取多个文件信息时,命令中包括多个文件名,即执行命令“/bin/fgrep '' /[filename].../[filename]”。
2.如权利要求1所述的服务器监控方法,其特征在于,所获取的文件信息位于/proc/目录下。
3.如权利要求1或2所述的服务器监控方法,其特征在于,获取到需要监控的信息后,对信息进行解析,具体包括,(1)创建内存字典,以文件名为字典键,以文件行列表为字典值;(2)以换行符分割文件数据,遍历每一行;(3)以“:”将每一行分割为内存字典的键值对:“:”之前是文件名,“:”之后是文件行列表元素;(4)如果字典键已存在,将文件行列表元素加入到文件名对应的文件行列表;如不存在则以文件名为字典键进行创建。
4.如权利要求3所述的服务器监控方法,其特征在于:将解析后的内存字典的字典键值转换为OpenMetrics格式数据后输出。
5.如权利要求1或2所述的服务器监控方法,其特征在于:基于ssh协议登录被监控服务器。
6.一种服务器监控系统,其特征在于:包括登录模块和监控模块,实现权利要求1-5任一权利要求所述的服务器监控方法,所述登录模块登录被监控服务器,所述监控模块执行获取监控数据的步骤。
7.一种可读存储介质,其特征在于,所述可读存储介质中存储有程序,该程序实现权利要求1-5任一权利要求所述的服务器监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011228699.9A CN112035332B (zh) | 2020-11-06 | 2020-11-06 | 一种服务器监控方法、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011228699.9A CN112035332B (zh) | 2020-11-06 | 2020-11-06 | 一种服务器监控方法、系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035332A CN112035332A (zh) | 2020-12-04 |
CN112035332B true CN112035332B (zh) | 2021-02-12 |
Family
ID=73572804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011228699.9A Active CN112035332B (zh) | 2020-11-06 | 2020-11-06 | 一种服务器监控方法、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035332B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553740B (zh) * | 2022-03-11 | 2023-11-10 | 以萨技术股份有限公司 | 一种跨网监控的方法、系统、可读存储介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744764A (zh) * | 2013-12-26 | 2014-04-23 | 浪潮电子信息产业股份有限公司 | 一种基于Crontab的整机内存稳定性的测试方法 |
CN104268076A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种适用各处理器平台的自动测试内存带宽的测试方法 |
-
2020
- 2020-11-06 CN CN202011228699.9A patent/CN112035332B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744764A (zh) * | 2013-12-26 | 2014-04-23 | 浪潮电子信息产业股份有限公司 | 一种基于Crontab的整机内存稳定性的测试方法 |
CN104268076A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种适用各处理器平台的自动测试内存带宽的测试方法 |
Non-Patent Citations (2)
Title |
---|
centos查看服务器信息;zkaipmoo;《https://blog.csdn.net/yongcto/article/details/11715509》;20130915;第1-8页 * |
使用python进行服务器的监控;andy1219111;《https://www.jb51.net/article/132350.htm》;20180108;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112035332A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245078B (zh) | 一种软件的压力测试方法、装置、存储介质和服务器 | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US11210158B2 (en) | Automated problem diagnosis on logs using anomalous telemetry analysis | |
US9633106B1 (en) | Log data analysis | |
US7031981B1 (en) | Tool supporting system log file reporting | |
US20110191394A1 (en) | Method of processing log files in an information system, and log file processing system | |
EP4270199A1 (en) | Application programming interface (api) testing method and device | |
CN104022903A (zh) | 一站式自动化运维系统 | |
US20220050765A1 (en) | Method for processing logs in a computer system for events identified as abnormal and revealing solutions, electronic device, and cloud server | |
US7913233B2 (en) | Performance analyzer | |
CN110569214A (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
CN112035332B (zh) | 一种服务器监控方法、系统及可读存储介质 | |
CN111240953A (zh) | 一种日志处理的方法及装置、可读存储介质 | |
CN114116422A (zh) | 一种硬盘日志分析方法、硬盘日志分析装置及存储介质 | |
CN114185791A (zh) | 一种数据映射文件的测试方法、装置、设备及存储介质 | |
CN108228417A (zh) | 车联网日志处理方法及处理装置 | |
CN112148545A (zh) | 嵌入式系统的安全基线检测方法以及安全基线检测系统 | |
CN110209578B (zh) | 一种信息在线测试平台 | |
CN113946559A (zh) | 数据处理方法、目标数据库系统及数据处理系统 | |
CN110543394A (zh) | 服务器sensor信息一致性测试方法、系统、终端及存储介质 | |
CN115033639A (zh) | 一种生成集群间数据共享的关系图的方法和相关装置 | |
CN110381010B (zh) | 自适应的webapp识别与漏洞管理方法 | |
CN117112780B (zh) | 一种基于文本摘要模型的非结构化日志解析方法及装置 | |
CN109684158A (zh) | 分布式协调系统的状态监控方法、装置、设备及存储介质 | |
TWI749717B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |