一种服务器监控方法、装置、设备及介质
文献发布时间:2023-06-19 09:27:35
技术领域
本发明涉及服务器应用领域,特别涉及一种服务器监控方法、装置、设备及介质。
背景技术
当前,随着互联网的不断发展,互联网已经成为人们生活的一部分,很多的web服务器采用的是Nginx服务器,Nginx服务器是一个高性能的HTTP和反向代理web服务器,而web服务器作为互联网的重要组成部分,其运行情况和安全情况十分重要。因此,为保证服务器正常运行需要管理员经常查看服务器状态并及时修复。通用技术中,系统管理员需要经常通过电脑利用远程方式访问web服务器,进行资源监控和维护的操作,为此系统管理员在任何时间、任何地点都要带一台笔记本电脑在身边,由此对服务器进行监控的时间场地条件进行了限制,导致不能随时随地进行服务器监控,降低了对服务器监控的能力。
发明内容
有鉴于此,本发明的目的在于提供一种服务器监控方法、装置、设备及介质,能够通过手机端APP对Nginx服务器进行远程监控和维护。其具体方案如下:
第一方面,本申请公开了一种服务器监控装置,包括:
Nginx过滤模块,用于获取手机端APP发送的HTTP请求,并判断所述HTTP请求是否为控制命令请求;
命令解析模块,用于若所述HTTP请求为控制命令请求,则解析所述控制命令请求对应的操作命令;
命令执行模块,用于根据所述操作命令对所述Nginx服务器执行相应的操作处理,并将生成的执行结果通过所述Nginx过滤模块发送给所述手机端APP,以便所述手机端APP显示所述执行结果。
可选的,所述Nginx过滤模块,包括:
请求判断单元,用于读取所述HTTP请求的请求头信息中的目标字段,并基于所述目标字段判断所述HTTP请求是否为所述控制命令请求。
可选的,所述操作命令包括系统监控命令和系统维护命令。
可选的,所述命令执行模块,包括:
系统监控子模块,用于若所述控制命令对应的操作命令为系统监控命令,则根据所述系统监控命令获取所述Nginx服务器相应的资源使用信息;所述资源使用信息包括CPU使用信息、内存使用信息、磁盘使用信息和网络使用信息中的任意一项或几项。
可选的,所述命令执行模块,包括:
系统维护子模块,用于若所述控制命令对应的操作命令为系统维护命令,则根据所述系统维护命令对所述Nginx服务器进行维护操作;所述维护操作包括配置服务器参数、设置系统防火墙、清理磁盘垃圾和执行系统命令中的任意一项或几项。
可选的,所述服务器监控装置,还包括:
通讯加解密模块,用于当所述Nginx过滤模块获取到所述HTTP请求后,对获取的所述HTTP请求进行解码处理得到解码后请求数据,再对所述解码后请求数据进行解密处理,以得到原始的HTTP请求;
所述通讯加解密模块,还用于对所述命令执行模块生成的执行结果进行加密处理得到加密后结果数据,再对所述加密后结果数据进行编码处理以得到编码后执行结果,以便将所述编码后执行结果通过所述Nginx过滤模块发送给所述手机端APP。
第二方面,本申请公开了一种服务器监控方法,包括:
获取手机端APP发送的HTTP请求,并判断所述HTTP请求是否为控制命令请求;
若所述HTTP请求为控制命令请求,则解析所述控制命令请求对应的操作命令;
根据所述操作命令对所述Nginx服务器执行相应的操作处理,并将生成的执行结果通过Nginx过滤模块发送给所述手机端APP,以便所述手机端APP显示所述执行结果。
可选的,所述根据所述操作命令对所述Nginx服务器执行相应的操作处理,包括:
若所述操作命令为系统监控命令,则根据所述系统监控命令获取所述Nginx服务器相应的资源使用信息;所述资源使用信息包括CPU使用信息、内存使用信息、磁盘使用信息和网络使用信息中的任意一项或几项;
若所述操作命令为系统维护命令,则根据所述系统维护命令对所述Nginx服务器进行维护操作;所述维护操作包括配置服务器参数、设置系统防火墙、清理磁盘垃圾和执行系统命令中的任意一项或几项。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的服务器监控方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的服务器监控方法。
本申请中,当Nginx过滤模块获取到手机端APP发送的HTTP请求后,判断HTTP请求是否为控制命令请求,若HTTP请求为控制命令请求,则解析该控制命令请求对应的操作命令,然后基于获取的操作命令对Nginx服务器执行相应的操作处理,并将生成的执行结果通过Nginx过滤模块发送给手机端APP,以便手机端APP显示出执行结果。可见,本申请通过在Nginx系统中设计的Nginx过滤模块,利用Nginx过滤模块与手机端进行交互,由于使用的是Nginx的web端口,且该端口可以绕过防火墙的阻拦,由此,实现了通过手机监控服务器的运行状态以及维护服务器的正常运行,提高了对服务器监控的实时性,简化了服务器监控的过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种服务器监控装置结构示意图;
图2为本申请提供的一种服务器监控系统结构式示意图;
图3为本申请提供的一种具体的服务器监控装置结构示意图;
图4为本申请提供的一种服务器监控系统运行流程图;
图5为本申请提供的一种服务器监控装置的模块运行时序图;
图6为本申请提供的一种服务器监控方法流程图;
图7为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,系统管理员通过电脑利用远程方式访问web服务器,进行资源监控和维护的操作,对服务器进行监控的时间场地条件进行了限制,导致不能随时随地进行服务器监控,降低了对服务器监控的能力。为避免上述技术问题,本申请提供一种基于Nginx的手机端APP远程系统监控及维护方法,可以实现通过手机监控服务器的运行状态以及维护服务器的正常运行,提高了对服务器监控的实时性,简化了服务器监控的过程。
本申请实施例公开了一种服务器监控装置,应用于Nginx服务器,参见图1所示,该装置包括:
Nginx过滤模块11,用于获取手机端APP发送的HTTP请求,并判断所述HTTP请求是否为控制命令请求。
本实施例中,当Nginx过滤模块11获取到手机端APP发送的HTTP请求后,判断上述HTTP请求是否为控制命令请求;可以理解的是,本实施例中,服务器与手机端之间可以采用HTTP协议的通讯方式,由服务器中的Nginx过滤模块11获取手机端APP发送的HTTP请求,上述HTTP请求可以为POST请求方式;上述HTTP请求包含请求头信息和请求数据,上述请求头信息可以用于区分其他的请求,上述请求数据可以为经过加密和编码的数据;上述Nginx过滤模块11的本质为Nginx的过滤器,可以分别过滤上述请求头信息和请求数据,由此,可以过滤出手机端APP发送的HTTP请求。通过利用HTTP协议和Nginx过滤模块11,根据Nginx的应用特点,相比于现有技术不再需要服务器在特定端口监听客户端的请求,并且不会被防火墙拦截。
具体的,上述Nginx过滤模块11,可以包括请求判断单元,用于读取所述HTTP请求的请求头信息中的目标字段,并基于所述目标字段判断所述HTTP请求是否为所述控制命令请求。具体的,手机端可以通过预先在请求头信息中添加X-control字段以得到上述HTTP请求,Nginx过滤模块11在接收到HTTP请求后,通过查看请求头信息中的X-control字段,确定该HTTP请求是否为控制命令请求。
命令解析模块12,用于若所述HTTP请求为控制命令请求,则解析所述控制命令请求对应的操作命令。
本实施例中,在Nginx过滤模块11确定出上述HTTP请求为控制命令请求后,利用命令解析模块12解析上述控制命令请求对应的操作命令;其中,上述操作命令包括系统监控命令和系统维护命令,上述系统监控命令可以用于获取服务器相关的网络信息,上述系统维护命令可以用于对Nginx服务器系统进行重新启动、关机等操作,以及参数设置操作。
命令执行模块13,用于根据所述操作命令对所述Nginx服务器执行相应的操作处理,并将生成的执行结果通过所述Nginx过滤模块11发送给所述手机端APP,以便所述手机端APP显示所述执行结果。
本实施例中,在确定出操作命令后,通过命令执行模块13根据上述操作命令对Nginx服务器执行相应的操作处理,并在操作执行完成后生成相应的执行结果,然后将上述执行结果通过Nginx过滤模块11发送给手机端APP,以便手机端APP在手机的图像用户界面(即GUI)上显示出上述执行结果。
本实施例基于C/S架构,即客户机(Client)和服务器(Server)结构,例如图2所示,服务器负责数据的管理,本实施例中客户机为手机端,负责完成与用户的交互,本实施例中服务器为Nginx服务器,Nginx的架构基础设计是高度模块化的,其服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则。本实施例管理员可以通过手机端APP的GUI界面向Nginx服务器发送相应的控制命令请求,然后在Nginx服务器执行完成后,将相应的执行结果返回给手机端APP,以将执行结果显示在GUI界面。由此实现对服务器的系统监控和维护。
由上可见,本实施例中,当Nginx过滤模块获取到手机端APP发送的HTTP请求后,判断HTTP请求是否为控制命令请求,若HTTP请求为控制命令请求,则解析该控制命令请求对应的操作命令,然后基于获取的操作命令对Nginx服务器执行相应的操作处理,并将生成的执行结果通过Nginx过滤模块发送给手机端APP,以便手机端APP显示出执行结果。可见,本申请通过在Nginx系统中设计的Nginx过滤模块,利用Nginx过滤模块与手机端进行交互,由于使用的是Nginx的web端口,且该端口可以绕过防火墙的阻拦,由此,实现了通过手机监控服务器的运行状态以及维护服务器的正常运行,提高了对服务器监控的实时性,简化了服务器监控的过程,同时使管理员日常工作更加便捷。
本申请实施例公开了一种具体的服务器监控装置,应用于Nginx服务器,参见图2所示,该装置可以包括:
Nginx过滤模块11,用于获取手机端APP发送的HTTP请求,并判断所述HTTP请求是否为控制命令请求。
命令解析模块12,用于若所述HTTP请求为控制命令请求,则解析所述控制命令请求对应的操作命令。
上述命令解析模块12可以通过查看HTTP请求的请求头信息中的目标字段,根据字段值确定出相应的操作命令。上述操作命令包括系统监控命令和系统维护命令;具体的,上述目标字段可以为X-control字段,可以定义“X-control:monitor”表征系统监控命令,可以定义“X-control:cmd”表征系统维护命令。
命令执行模块13,用于根据所述操作命令对所述Nginx服务器执行相应的操作处理,并将生成的执行结果通过所述Nginx过滤模块11发送给所述手机端APP,以便所述手机端APP显示所述执行结果。
具体的,本实施例中,上述命令执行模块13可以包括系统监控子模块131,用于若所述控制命令对应的操作命令为系统监控命令,则根据所述系统监控命令获取所述Nginx服务器相应的资源使用信息;所述资源使用信息包括CPU使用信息、内存使用信息、磁盘使用信息和网络使用信息中的任意一项或几项。可以理解的是,若上述命令解析模块12确定上述控制命令请求对应的操作命令为系统监控命令,则调用系统监控子模块131,通过系统监控子模块131获取Nginx服务器的资源使用信息,包括但不限于CPU使用信息、内存使用信息、磁盘使用信息和网络使用信息。然后根据获取的信息生成执行结果发送给手机端APP,手机端APP在获取到上述执行结果后,可以通过图表的形式直观的展示服务器的资源使用情况,并对超出预警阈值的系统资源进行报警提示。
具体的,本实施例中,上述命令执行模块13可以包括系统维护子模块132,用于若所述控制命令对应的操作命令为系统维护命令,则根据所述系统维护命令对所述Nginx服务器进行维护操作;所述维护操作包括配置服务器参数、设置系统防火墙、清理磁盘垃圾和执行系统命令中的任意一项或几项。可以理解的是,若上述命令解析模块12确定上述控制命令请求对应的操作命令为系统维护命令,则调用系统维护子模块132,系统维护子模块132根据系统维护命令执行相应的维护操作,上述维护操作包括但不限于配置服务器参数、设置系统防火墙、清理磁盘垃圾和执行系统命令。
本实施例中,具体的装置运行流程图可以如图4所示,首先Nginx服务器接收手机端APP发送HTTP请求,具体的,由Nginx过滤模块11接收并判断上述HTTP请求是否为控制命令请求,若是,则调用命令解析模块12,判断上述控制命令请求是系统监控命令还是系统维护命令,若是系统监控命令则调用系统监控子模块131,若是系统维护命令则调用系统维护子模块132,最后将生成的相应的执行结果返回给手机端APP。
通讯加解密模块14,用于当所述Nginx过滤模块获取到所述HTTP请求后,对获取的所述HTTP请求进行解码处理得到解码后请求数据,再对所述解码后请求数据进行解密处理,以得到原始的HTTP请求;所述通讯加解密模块14,还用于对所述命令执行模块生成的执行结果进行加密处理得到加密后结果数据,再对所述加密后结果数据进行编码处理以得到编码后执行结果,以便将所述编码后执行结果通过所述Nginx过滤模块11发送给所述手机端APP。
可以理解的是,手机端APP发送的HTTP请求为经过加密和编码的,本实施例中加解密可以采用高级标准加密(即AES,Advanced Encryption Standard)加密法,编码可以采用BASE64编码;具体的解码解密和加密编码过程可以如图5所示,当上述Nginx过滤模块11接收到HTTP请求后,通过通讯加解密模块14对HTTP请求的请求数据进行BASE64解码得到解码后请求数据,然后对解码后请求数据进行AES解密处理,以得到原始HTTP请求,以便利用命令解析模块12和命令执行模块13进行相应处理。并且,在上述命令执行模块13生成执行结果后,通过通讯加解密模块14对执行结果进行AES加密处理得到加密后结果数据,再对加密后结果数据进行BASE64编码处理以得到编码后执行结果,以便将编码后执行结果通过上述Nginx过滤模块11发送给所述手机端APP。由此,通过对服务器与手机端之间的交互数据进行加密和编码处理,可以保护交互数据的安全性。
由上可见,本实施例中通过命令解析模块确定出控制命令请求对应的操作命令,以便调用系统监控子模块或系统维护子模块,由此可以根据管理员的命令对服务器进行相应的操作,以实现对系统资源的监控或维护,并将执行结果发送给手机端APP,以便管理员通过手机图像用户界面直观了解服务器的运行情况;并且,本实施例通过通讯加解密模块对服务器与手机端之间的交互数据进行加密和编码处理,可以保护交互数据的安全性。
相应的,本申请实施例还公开了一种服务器监控方法,应用于Nginx服务器,参见图6所示,该方法包括以下步骤:
步骤S11:获取手机端APP发送的HTTP请求,并判断所述HTTP请求是否为控制命令请求。
本实施例中,在获取到HTTP请求后,可以通过读取上述HTTP请求的请求头信息中的目标字段,并基于目标字段判断HTTP请求是否为控制命令请求。
步骤S12:若所述HTTP请求为控制命令请求,则解析所述控制命令请求对应的操作命令。
本实施例中,在确定出上述HTTP请求为控制命令请求后,解析上述控制命令请求对应的操作命令;其中,上述操作命令包括系统监控命令和系统维护命令,上述系统监控命令可以用于获取服务器相关的网络信息,上述系统维护命令可以用于对Nginx服务器系统进行重新启动、关机等操作,以及参数设置操作。
步骤S13:根据所述操作命令对所述Nginx服务器执行相应的操作处理,并将生成的执行结果通过Nginx过滤模块发送给所述手机端APP,以便所述手机端APP显示所述执行结果。
本实施例中,若上述操作命令为系统监控命令,则根据上述系统监控命令获取Nginx服务器相应的资源使用信息;上述资源使用信息包括但不限于CPU使用信息、内存使用信息、磁盘使用信息和网络使用信息。若上述操作命令为系统维护命令,则根据系统维护命令对Nginx服务器进行维护操作;上述维护操作包括但不限于配置服务器参数、设置系统防火墙、清理磁盘垃圾和执行系统命令。
本实施例中,所述服务器监控方法,还可以包括:当所述Nginx过滤模块获取到所述HTTP请求后,对获取的所述HTTP请求进行解码处理得到解码后请求数据,再对所述解码后请求数据进行解密处理,以得到原始的HTTP请求;对生成的执行结果进行加密处理得到加密后结果数据,再对所述加密后结果数据进行编码处理以得到编码后执行结果,以便将所述编码后执行结果通过Nginx过滤模块发送给所述手机端APP。
由上可见,本实施例在获取到手机端APP发送的HTTP请求后,判断HTTP请求是否为控制命令请求,若HTTP请求为控制命令请求,则解析该控制命令请求对应的操作命令,然后基于获取的操作命令对Nginx服务器执行相应的操作处理,并将生成的执行结果通过Nginx过滤模块发送给手机端APP,以便手机端APP显示出执行结果。可见,本申请通过在Nginx系统中设计的Nginx过滤模块,利用Nginx过滤模块与手机端进行交互,由于使用的是Nginx的web端口,且该端口可以绕过防火墙的阻拦,由此,实现了通过手机监控服务器的运行状态以及维护服务器的正常运行,提高了对服务器监控的实时性,简化了服务器监控的过程。
进一步的,本申请实施例还公开了一种电子设备,参见图7所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的服务器监控方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括HTTP请求在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的服务器监控方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的服务器监控方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种服务器监控方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 一种服务器设备监控方法、装置、设备及可读存储介质
- 一种基于无服务器平台的监控方法、装置、设备及存储介质