CN111782372A - java进程的启动方法、装置、计算机设备和存储介质 - Google Patents
java进程的启动方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111782372A CN111782372A CN202010623512.9A CN202010623512A CN111782372A CN 111782372 A CN111782372 A CN 111782372A CN 202010623512 A CN202010623512 A CN 202010623512A CN 111782372 A CN111782372 A CN 111782372A
- Authority
- CN
- China
- Prior art keywords
- log
- nohup
- picture
- hash value
- port number
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Facsimiles In General (AREA)
Abstract
本申请涉及微服务架构的技术领域,提供一种java进程的启动方法、装置、计算机设备和存储介质,包括:检测进程的进程ID、端口号、jps信息是否均存在;若均不存在,判定进程未启动,后台采用nohup启动方式启动进程,并打印nohup日志;在预设检测时间段内,每间隔预设时间检测进程的端口号是否监听;若监听,则打印进程ID;并在本地数据库中保存nohup日志,从nohup日志中检测出进程的端口号以及进程ID;并将日志文本内容合成为第一图片;对第一图片进行处理得到目标数据,并存储目标数据;其中,目标数据作为检测日志是否被篡改的参考数据。本申请克服目前无法准确判断出服务进程是否启动成功的缺陷,以及克服无法提供作为检测日志是否被篡改的参考数据的缺陷。
Description
技术领域
本申请涉及微服务架构的技术领域,特别涉及一种java进程的启动方法、装置、计算机设备和存储介质。
背景技术
在基于微服务的架构中,越来越多的模块基于java开发或者重构,高效合理的在版本发布期间对java服务进程(java进程)进行启停操作,在第一时间给开发提供足够且准确的信息,可以有效的节省版本发布期间的启停故障排查。
当前的服务进程启动逻辑不能准确判断出服务进程是否启动成功,开发人员在服务进程启动后,需要登陆每台机器判断日志是否正常打印,这种方式对于微服务架构多台冗余的服务,其工作量非常大,非常不智能化,同时多次登陆机器,增加了操作安全风险;同时日志内容容易发生篡改,目前无法无法提供作为检测出日志是否被篡改的参考数据。
发明内容
本申请的主要目的为提供一种java进程的启动方法、装置、计算机设备和存储介质,旨在克服目前无法准确判断出服务进程是否启动成功的缺陷,以及克服无法提供作为检测日志是否被篡改的参考数据的缺陷。
为实现上述目的,本申请提供了一种java进程的启动方法,包括以下步骤:
检测进程的进程ID、端口号、jps信息是否均存在;其中,所述进程为java进程;
若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;其中,打印所述nohup日志的log4j2.xml配置文件中console级别的日志预先经过注释;
在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;
若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;
提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;
对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。
进一步地,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤,包括:
对所述第一图片进行哈希计算得到第一哈希值;
将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值;
将所述第二哈希值,所述第二哈希值与所述进程ID、端口号的对应关系作为所述目标数据上传至管理服务器进行存储。
进一步地,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤之后,还包括:
在接收到分析所述nohup日志的指令时,从本地数据库中调用所述nohup日志;
从所述nohup日志中检测出所述进程的端口号以及进程ID,并根据所述进程的端口号以及进程ID,从所述管理服务器中查找出对应的第二哈希值;
提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第二图片;
对所述第二图片进行哈希计算得到第三哈希值;
将所述第三哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第四哈希值;
判断所述第四哈希值与所述第二哈希值是否一致;
若一致,则验证所述nohup日志无误,并基于预设的日志分析工具对所述nohup日志进行分析,得出分析结果。
进一步地,所述基于预设的日志分析工具对所述nohup日志进行分析的步骤,包括:
获取所述nohup日志中日志文本内容的总数据量;
逐行分析所述nohup日志中的日志文本内容,得到对应的分析结果,并记录已分析的日志文本内容的总数据量;
创建一个空白文档,将已分析的所述日志文本内容逐行添加至所述空白文档中,在所述空白文档中的每行日志文本内容之后创建一个预设数组,并将每行所述日志文本内容对应的分析结果添加至所述预设数组中;
判断已分析的所述日志文本内容的总数据量与所述nohup日志中日志文本内容的总数据量是否一致;
若一致,则结束分析,将添加有所述日志文本内容以及分析结果的空白文档作为分析结果文档保存在本地数据库中。
进一步地,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤,包括:
创建一个签章图层,并将所述进程的端口号以及进程ID组合后添加至所述签章图层之后,将所述签章图层合成至所述第一图片上,得到第二图片;
获取所述nohup日志中日志文本内容的总数据量以及行数,将所述总数据量以及行数进行组合得到加密密码,用于对所述第二图片进行加密,将加密后的所述第二图片作为目标数据;
在本地数据库中保存加密后的所述第二图片。
本申请还提供了一种java进程的启动装置,包括:
第一检测单元,用于检测进程的进程ID、端口号、jps信息是否均存在;其中,所述进程为java进程;
第一打印单元,用于若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;其中,打印所述nohup日志的log4j2.xml配置文件中console级别的日志预先经过注释;
第二检测单元,用于在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;
第二打印单元,用于若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;
提取单元,用于提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;
处理单元,用于对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。
进一步地,所述处理单元,包括:
第一计算子单元,用于对所述第一图片进行哈希计算得到第一哈希值;
第二计算子单元,用于将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值;
第一存储子单元,用于将所述第二哈希值,所述第二哈希值与所述进程ID、端口号的对应关系作为所述目标数据上传至管理服务器进行存储。
进一步地,还包括:
调用单元,用于在接收到分析所述nohup日志的指令时,从本地数据库中调用所述nohup日志;
查找单元,用于从所述nohup日志中检测出所述进程的端口号以及进程ID,并根据所述进程的端口号以及进程ID,从所述管理服务器中查找出对应的第二哈希值;
合成单元,用于提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第二图片;
第一哈希计算单元,用于对所述第二图片进行哈希计算得到第三哈希值;
第二哈希计算单元,用于将所述第三哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第四哈希值;
判定单元,用于判断所述第四哈希值与所述第二哈希值是否一致;
分析单元,用于所述第四哈希值与所述第二哈希值一致,则验证所述nohup日志无误,并基于预设的日志分析工具对所述nohup日志进行分析,得出分析结果。
进一步地,所述分析单元,具体用于:
获取所述nohup日志中日志文本内容的总数据量;
逐行分析所述nohup日志中的日志文本内容,得到对应的分析结果,并记录已分析的日志文本内容的总数据量;
创建一个空白文档,将已分析的所述日志文本内容逐行添加至所述空白文档中,在所述空白文档中的每行日志文本内容之后创建一个预设数组,并将每行所述日志文本内容对应的分析结果添加至所述预设数组中;
判断已分析的所述日志文本内容的总数据量与所述nohup日志中日志文本内容的总数据量是否一致;
若一致,则结束分析,将添加有所述日志文本内容以及分析结果的空白文档作为分析结果文档保存在本地数据库中。
进一步地,所述处理单元,包括:
创建子单元,用于创建一个签章图层,并将所述进程的端口号以及进程ID组合后添加至所述签章图层之后,将所述签章图层合成至所述第一图片上,得到第二图片;
加密子单元,用于获取所述nohup日志中日志文本内容的总数据量以及行数,将所述总数据量以及行数进行组合得到加密密码,用于对所述第二图片进行加密,将加密后的所述第二图片作为目标数据;
第二存储子单元,用于在本地数据库中保存加密后的所述第二图片。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请提供的java进程的启动方法、装置、计算机设备和存储介质,包括:检测进程的进程ID、端口号、jps信息是否均存在;若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;以此来准确判断出服务进程是否启动成功。若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。将nohup日志中的日志文本内容转换成目标数据进行保存,即便日志发生篡改,也可以基于上述目标数据进行对比,以验证日志是否被篡改。
附图说明
图1是本申请一实施例中java进程的启动方法步骤示意图;
图2是本申请一实施例中java进程的启动装置结构框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例中提供了一种java进程的启动方法,包括以下步骤:
步骤S1,检测进程的进程ID、端口号、jps信息是否均存在;其中,所述进程为java进程;
步骤S2,若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;其中,打印所述nohup日志的log4j2.xml配置文件中console级别的日志预先经过注释;
步骤S3,在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;
步骤S4,若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;
步骤S5,提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;
步骤S6,对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。
在本实施例中,上述方法应用于微服务架构中应用版本发布期间进行的java进程启停操作场景中,为了给开发提供准确的信息,需要确定进程是否启动成功。
具体地,如上述步骤S1所述的,检测进程的进程ID、端口号、jps信息($JAVA_HOME/bin/jps-l|grep$APP_MAIN)是否均存在,上述参数是一个进程在正常运行时所具备的参数,若上述参数都存在,则表明当前该进程处于正常运行的状态,无需进行启动操作。若上述任一项参数不存在,则表明,上述进程处于未正常运行的状态,需要进行启动操作。上述未正常运行的状态包括:未运行以及运行中出现错误的状态。
如上述步骤S2所述的,若进程ID、端口号、jps信息都不存在,则表明该进程没有启动,需要进入启动逻辑。在本实施例中,在后台触发采用nohup启动方式(命令运行方式)启动所述进程。在启动上述进程时,还需要输出nohup日志,上述nohup启动进程时可以只输出错误信息至nohup日志;上述nohup日志可以同时实现记录日志与屏幕输出,方便在进程失败时,开发人员可以快速查看nohup日志,快速定位问题,减少发版期间的故障处理时间。由于上述nohup日志容量较大,为了避免上述进程运行时产生大量的日志,需要预先对打印所述nohup日志的log4j2.xml配置文件中console级别的日志进行注释,避免造成磁盘告警。
如上述步骤S3-S4所述的,预先设置有一个检测时间段,在该检测时间段内每间隔预设时间(例如每间隔1秒)检测所述端口号是否监听。如果超过了上述预设的检测时间段,上述端口号仍然监听失败,则自动退出启动脚本,并进行启动失败报错;如果在上述检测时间段内,上述端口号正常监听,则表明进程可以正常运行了,则打印进程ID,并退出启动脚本,完成上述进程的启动,此时,上述jps信息也会自动生成。
如上述步骤S5-S6所述的,可以理解的是,为了验证上述nohup日志是否被篡改,需要将其保存在本地数据库中;目前,验证日志是否被更改时,通常采用的方式是,将日志与预存的日志进行逐行比对,改比对过程比较冗余,比对效率低下。因此,本实施例中,因为日志通常很容易因为设备不同的原因发生格式变化,或者人为误操作,因此,基于日志文本内容生成第一图片以固化日志文本内容。对上述第一图片进行转换,得到目标数据,而该目标数据则作为检测日志是否被篡改的参考数据,当需要验证日志是否被篡改时,只需要将日志按照同样的方式转换成目标数据,然后进行目标数据的对比,则可以快递检测出日志是否被篡改。
在本实施例中,判断进程是否启动时,针对多种参数综合进行判断,判断更全面,可以准确确定进程是否启动成功,无需登陆每台机器查看日志确认进程是否启动成功了,减少发布过程中,开发人员介入的工作量,使发布流程自动化、智能化。输出nohup日志的同时,console经过注释之后,屏蔽java的console输出,减少日志量,nohup日志还可以同时实现屏幕输出,可以将错误直观输出到web界面,无需开发再登陆机器查看日志排查错误,改善发布体验,同时也减少了开发或者运维人员ssh登陆的次数,提高操作安全,提升发布体验。将nohup日志转换成目标数据,目标数据用于作为检测日志是否被篡改的参考数据,便于提升检测日志是否被篡改的效率。
在一实施例中,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤S6,包括:
步骤S61,对所述第一图片进行哈希计算得到第一哈希值;
步骤S62,将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值;
步骤S63,将所述第二哈希值,所述第二哈希值与所述进程ID、端口号的对应关系作为所述目标数据上传至管理服务器进行存储。
在本实施例中,为了便于后续核查/测试中,需要上述nohup日志保存在本地数据库中;为了便于用户从上述nohup日志中获取到准确的信息,应当避免上述nohup日志发生篡改;而保存的本地数据库中的nohup日志容易发生篡改,因此,通常是可以将上述nohup日志保存至管理服务器,但是会增加管理服务器的存储压力。因此,在本实施例中,上述nohup日志保存在本地数据库,不会将上述nohup日志保存至管理服务器,而仅仅是将上述nohup日志中的日志文本内容添加至预设图层中,以合成为第一图片;进而对该第一图片进行哈希计算得到第一哈希值,为了进一步表达出上传至管理服务器的第二哈希值与进程的端口号以及进程ID的关联性,将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值,最后将所述第二哈希值、所述第二哈希值与所述进程ID、端口号的对应关系上传至管理服务器。本实施例中仅将第二哈希值、所述第二哈希值与所述进程ID、端口号的对应关系上传至管理服务器,不会过于增加管理服务器的存储压力,而且上述第二哈希值可以作为后续验证本地数据库中的nohup日志是否有效的有力证据。
在本实施例中,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤S6之后,还包括:
步骤S7,在接收到分析所述nohup日志的指令时,从本地数据库中调用所述nohup日志;
步骤S8,从所述nohup日志中检测出所述进程的端口号以及进程ID,并根据所述进程的端口号以及进程ID,从所述管理服务器中查找出对应的第二哈希值;
步骤S9,提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第二图片;
步骤S10,对所述第二图片进行哈希计算得到第三哈希值;
步骤S11,将所述第三哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第四哈希值;
步骤S12,判断所述第四哈希值与所述第二哈希值是否一致;
步骤S13,若一致,则验证所述nohup日志无误,并基于预设的日志分析工具对所述nohup日志进行分析,得出分析结果。
在本实施例中,在接收到分析所述nohup日志的指令时,只需要从上述本地数据库中提取出上述nohup日志,并基于相同的图片生成过程,哈希计算过程得到上述第四哈希值,验证上述第四哈希值与所述第二哈希值是否一致,若一致,则验证所述nohup日志无误,该nohup日志有效,则可以采用预设的日志分析工具对所述nohup日志进行分析,得出正确分析结果。
在本实施例中,所述基于预设的日志分析工具对所述nohup日志进行分析的步骤S13,包括:
步骤S131,获取所述nohup日志中日志文本内容的总数据量;
步骤S132,逐行分析所述nohup日志中的日志文本内容,得到对应的分析结果,并记录已分析的日志文本内容的总数据量;
步骤S133,创建一个空白文档,将已分析的所述日志文本内容逐行添加至所述空白文档中,在所述空白文档中的每行日志文本内容之后创建一个预设数组,并将每行所述日志文本内容对应的分析结果添加至所述预设数组中;
步骤S134,判断已分析的所述日志文本内容的总数据量与所述nohup日志中日志文本内容的总数据量是否一致;
步骤S135,若一致,则结束分析,将添加有所述日志文本内容以及分析结果的空白文档作为分析结果文档保存在本地数据库中。
在本实施例中,对上述nohup日志进行分析时,采用逐行进行分析的方式对日志文本内容进行分析,而且在逐行分析之后,将已分析的日志文本内容逐行添加至空白文档中,为了加强分析结果与每一行日志文本内容的关联性,将分析结果添加至一个预设数组中,并将该预设数组设置在每行日志文本内容之后。如此,便可以在同一行中查找到对该日志文本内容的分析结果。
在所有的日志文本内容均分析完成之后,将添加有所述日志文本内容以及分析结果的空白文档作为分析结果文档保存在本地数据库中,以便查勘。
在另一实施例中,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤S6,包括:
步骤S601,创建一个签章图层,并将所述进程的端口号以及进程ID组合后添加至所述签章图层之后,将所述签章图层合成至所述第一图片上,得到第二图片;
步骤S602,获取所述nohup日志中日志文本内容的总数据量以及行数,将所述总数据量以及行数进行组合得到加密密码,用于对所述第二图片进行加密,将加密后的所述第二图片作为目标数据;
步骤S603,在本地数据库中保存加密后的所述第二图片。
在本实施例中,提出另一种避免上述nohup日志被篡改的方案;将上述nohup日志保存在本地数据库,以便后续进行核查。同时,将上述nohup日志中的日志文本内容添加至预设图层中,以合成为第一图片;进而,如上述步骤S601所述的,创建一个签章图层,并将所述进程的端口号以及进程ID组合后添加至所述签章图层之后,将所述签章图层合成至所述第一图片上,得到第二图片;即该第二图片中不仅包括有上述日志文本内容,而且还加盖有签章图层,便于从签章图层中识别出上述日志文本内容。进一步地,如上述步骤S602所述的,为了避免上述第二图片被泄露,需要对其进行加密;本实施例中采用的加密密码即为所述nohup日志中日志文本内容的总数据量以及行数组合所得到。上述数据量以及行数可以真实反映出上述nohup日志的属性,若上述nohup日志发生篡改,则其数据量以及行数会相应发生变动。
在验证上述本地数据库中的nohup日志是否有效时,只需要获取所述nohup日志中进程的端口号以及进程ID,以及获取上述本地数据库中的nohup日志的总数据量以及行数,将所述总数据量以及行数进行组合得到解密密码;使用该解密密码对上述第二图片进行解密,若解密不成功,则表明上述本地数据库中的nohup日志发生篡改;若解密成功,则比对上述第二图片中的签章图层中携带的所述进程的端口号以及进程ID与上述本地数据库中的nohup日志中进程的端口号以及进程ID是否一致;若一致,则验证上述本地数据库中的nohup日志有效;不一致,则验证nohup日志无效。
在上述实施例中,上述进程ID、端口号其中一个参数不存在时,则表明上述进程处于运行中出现错误的状态;
所述检测进程的进程ID、端口号、jps信息是否均存在的步骤S1之后,还包括:
若所述进程ID存在,且所述端口号不存在,则判定所述进程正在启动或者所述进程处于异常;
若所述进程ID不存在,且所述端口号存在,则判定所述端口号配置错误。此时,可以表明上述端口号配置到已监听的进程中,开发人员可以根据日志的输出快速确认问题的根本原因,无需采用ssh登录机器做二次排查,节省了排查问题的时间。
在一实施例中,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤S6,包括:
获取所述第一图片的存储数据量,并判定所述存储数据量是否大于阈值;
若大于,则检测所述第一图片的中心,以所述中心为几何中心作一矩形框;其中,所述矩形框的长、宽为预设值;
以所述矩形框中的边框进行图像裁剪,得到所述矩形框中的第一子图片,以及所述矩形框外的第二子图片;
获取所述第二子图片的存储数据量,并判定所述第二子图片的存储数据量是否大于阈值;
若所述第二子图片的存储数据量不大于预设值,则将所述第一子图片以及第二子图片共同作为所述目标数据,并上传至管理服务器进行存储。
在本实施例中,若上述第一图片的存储数据量过大,容易造成无法上传至管理服务器,因此,需要对其进行裁剪,而普通的裁剪方式容易造成图片的质量降低,影响后续读取。在本实施例中,以上述第一图片的几何中心作矩形框,再以矩形框为边框进行裁剪,得到第一子图片以及第二子图片,该过程中不仅可以降低图片的数据量,而且不会降低图片的像素、分辨率等属性。同时,在上传至管理服务器之后,若需要将上述第一子图片以及第二子图片进行拼接,只需要将第一子图片填入第二子图片中的空白处;由于第一子图片的尺寸大小以及第二子图片中空白区域的限制,使得,只有第一子图片可以拼接至上述第二子图片中,而其他尺寸的图像则无法进行拼接,避免造成图像之间的混淆。
参照图2,本申请一实施例中还提供了一种java进程的启动装置,包括:
第一检测单元10,用于检测进程的进程ID、端口号、jps信息是否均存在;其中,所述进程为java进程;
第一打印单元20,用于若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;其中,打印所述nohup日志的log4j2.xml配置文件中console级别的日志预先经过注释;
第二检测单元30,用于在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;
第二打印单元40,用于若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;
提取单元50,用于提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;
处理单元60,用于对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。
在一实施例中,所述处理单元60,包括:
第一计算子单元,用于对所述第一图片进行哈希计算得到第一哈希值;
第二计算子单元,用于将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值;
第一存储子单元,用于将所述第二哈希值,所述第二哈希值与所述进程ID、端口号的对应关系作为所述目标数据上传至管理服务器进行存储。
在另一实施例中,上述装置,还包括:
调用单元,用于在接收到分析所述nohup日志的指令时,从本地数据库中调用所述nohup日志;
查找单元,用于从所述nohup日志中检测出所述进程的端口号以及进程ID,并根据所述进程的端口号以及进程ID,从所述管理服务器中查找出对应的第二哈希值;
合成单元,用于提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第二图片;
第一哈希计算单元,用于对所述第二图片进行哈希计算得到第三哈希值;
第二哈希计算单元,用于将所述第三哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第四哈希值;
判定单元,用于判断所述第四哈希值与所述第二哈希值是否一致;
分析单元,用于所述第四哈希值与所述第二哈希值一致,则验证所述nohup日志无误,并基于预设的日志分析工具对所述nohup日志进行分析,得出分析结果。
在一实施例中,所述分析单元,具体用于:
获取所述nohup日志中日志文本内容的总数据量;
逐行分析所述nohup日志中的日志文本内容,得到对应的分析结果,并记录已分析的日志文本内容的总数据量;
创建一个空白文档,将已分析的所述日志文本内容逐行添加至所述空白文档中,在所述空白文档中的每行日志文本内容之后创建一个预设数组,并将每行所述日志文本内容对应的分析结果添加至所述预设数组中;
判断已分析的所述日志文本内容的总数据量与所述nohup日志中日志文本内容的总数据量是否一致;
若一致,则结束分析,将添加有所述日志文本内容以及分析结果的空白文档作为分析结果文档保存在本地数据库中。
在另一实施例中,所述处理单元60,包括:
创建子单元,用于创建一个签章图层,并将所述进程的端口号以及进程ID组合后添加至所述签章图层之后,将所述签章图层合成至所述第一图片上,得到第二图片;
加密子单元,用于获取所述nohup日志中日志文本内容的总数据量以及行数,将所述总数据量以及行数进行组合得到加密密码,用于对所述第二图片进行加密,将加密后的所述第二图片作为目标数据;
第二存储子单元,用于在本地数据库中保存加密后的所述第二图片。
在本实施例中,上述单元、子单元的具体实现请参照上述方法实施例中所述,在此不再进行赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储日志数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种java进程的启动方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种java进程的启动方法。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
综上所述,为本申请实施例中提供的java进程的启动方法、装置、计算机设备和存储介质,包括:检测进程的进程ID、端口号、jps信息是否均存在;若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;以此来准确判断出服务进程是否启动成功。若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。将nohup日志中的日志文本内容转换成目标数据进行保存,即便日志发生篡改,也可以基于上述目标数据进行对比,以验证日志是否被篡改。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种java进程的启动方法,其特征在于,包括以下步骤:
检测进程的进程ID、端口号、jps信息是否均存在;其中,所述进程为java进程;
若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;其中,打印所述nohup日志的log4j2.xml配置文件中console级别的日志预先经过注释;
在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;
若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;
提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;
对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。
2.根据权利要求1所述的java进程的启动方法,其特征在于,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤,包括:
对所述第一图片进行哈希计算得到第一哈希值;
将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值;
将所述第二哈希值,所述第二哈希值与所述进程ID、端口号的对应关系作为目标数据上传至管理服务器进行存储。
3.根据权利要求2所述的java进程的启动方法,其特征在于,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤之后,还包括:
在接收到分析所述nohup日志的指令时,从本地数据库中调用所述nohup日志;
从所述nohup日志中检测出所述进程的端口号以及进程ID,并根据所述进程的端口号以及进程ID,从所述管理服务器中查找出对应的第二哈希值;
提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第二图片;
对所述第二图片进行哈希计算得到第三哈希值;
将所述第三哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第四哈希值;
判断所述第四哈希值与所述第二哈希值是否一致;
若一致,则验证所述nohup日志无误,并基于预设的日志分析工具对所述nohup日志进行分析,得出分析结果。
4.根据权利要求3所述的java进程的启动方法,其特征在于,所述基于预设的日志分析工具对所述nohup日志进行分析的步骤,包括:
获取所述nohup日志中日志文本内容的总数据量;
逐行分析所述nohup日志中的日志文本内容,得到对应的分析结果,并记录已分析的日志文本内容的总数据量;
创建一个空白文档,将已分析的所述日志文本内容逐行添加至所述空白文档中,在所述空白文档中的每行日志文本内容之后创建一个预设数组,并将每行所述日志文本内容对应的分析结果添加至所述预设数组中;
判断已分析的所述日志文本内容的总数据量与所述nohup日志中日志文本内容的总数据量是否一致;
若一致,则结束分析,将添加有所述日志文本内容以及分析结果的空白文档作为分析结果文档保存在本地数据库中。
5.根据权利要求1所述的java进程的启动方法,其特征在于,所述对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据的步骤,包括:
创建一个签章图层,并将所述进程的端口号以及进程ID组合后添加至所述签章图层之后,将所述签章图层合成至所述第一图片上,得到第二图片;
获取所述nohup日志中日志文本内容的总数据量以及行数,将所述总数据量以及行数进行组合得到加密密码,用于对所述第二图片进行加密,将加密后的所述第二图片作为所述目标数据;
在本地数据库中保存加密后的所述第二图片。
6.一种java进程的启动装置,其特征在于,包括:
第一检测单元,用于检测进程的进程ID、端口号、jps信息是否均存在;其中,所述进程为java进程;
第一打印单元,用于若均不存在,判定所述进程未启动,则触发在后台采用nohup启动方式启动所述进程,并打印nohup日志;其中,打印所述nohup日志的log4j2.xml配置文件中console级别的日志预先经过注释;
第二检测单元,用于在一个预设检测时间段内,每间隔预设时间检测所述进程的端口号是否监听;
第二打印单元,用于若在所述预设检测时间段内监听,则打印所述进程的进程ID;并在本地数据库中保存所述nohup日志,以及从所述nohup日志中检测出所述进程的端口号以及进程ID;
提取单元,用于提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第一图片;
处理单元,用于对所述第一图片按照预设方式进行处理得到目标数据,并存储所述目标数据;其中,所述目标数据作为检测日志是否被篡改的参考数据。
7.根据权利要求6所述的java进程的启动装置,其特征在于,所述处理单元,包括:
第一计算子单元,用于对所述第一图片进行哈希计算得到第一哈希值;
第二计算子单元,用于将所述第一哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第二哈希值;
第一存储子单元,用于将所述第二哈希值,所述第二哈希值与所述进程ID、端口号的对应关系作为所述目标数据上传至管理服务器进行存储。
8.根据权利要求7所述的java进程的启动装置,其特征在于,还包括:
调用单元,用于在接收到分析所述nohup日志的指令时,从本地数据库中调用所述nohup日志;
查找单元,用于从所述nohup日志中检测出所述进程的端口号以及进程ID,并根据所述进程的端口号以及进程ID,从所述管理服务器中查找出对应的第二哈希值;
合成单元,用于提取所述nohup日志中的日志文本内容,并将所述日志文本内容添加至预设图层中,以合成为第二图片;
第一哈希计算单元,用于对所述第二图片进行哈希计算得到第三哈希值;
第二哈希计算单元,用于将所述第三哈希值与所述进程的端口号以及进程ID进行组合后进行哈希计算得到第四哈希值;
判定单元,用于判断所述第四哈希值与所述第二哈希值是否一致;
分析单元,用于所述第四哈希值与所述第二哈希值一致,则验证所述nohup日志无误,并基于预设的日志分析工具对所述nohup日志进行分析,得出分析结果。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010623512.9A CN111782372A (zh) | 2020-06-30 | 2020-06-30 | java进程的启动方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010623512.9A CN111782372A (zh) | 2020-06-30 | 2020-06-30 | java进程的启动方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782372A true CN111782372A (zh) | 2020-10-16 |
Family
ID=72760461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010623512.9A Pending CN111782372A (zh) | 2020-06-30 | 2020-06-30 | java进程的启动方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782372A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377463A (zh) * | 2021-07-06 | 2021-09-10 | 上海通联金融服务有限公司 | ***核心***进程启停方法及*** |
CN113553578A (zh) * | 2021-07-08 | 2021-10-26 | 北京奇艺世纪科技有限公司 | 一种日志打印响应方法、装置、电子设备和存储介质 |
CN113641544A (zh) * | 2021-08-23 | 2021-11-12 | 北京百度网讯科技有限公司 | 用于检测应用状态的方法、装置、设备、介质和产品 |
-
2020
- 2020-06-30 CN CN202010623512.9A patent/CN111782372A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377463A (zh) * | 2021-07-06 | 2021-09-10 | 上海通联金融服务有限公司 | ***核心***进程启停方法及*** |
CN113553578A (zh) * | 2021-07-08 | 2021-10-26 | 北京奇艺世纪科技有限公司 | 一种日志打印响应方法、装置、电子设备和存储介质 |
CN113553578B (zh) * | 2021-07-08 | 2024-04-12 | 北京奇艺世纪科技有限公司 | 一种日志打印响应方法、装置、电子设备和存储介质 |
CN113641544A (zh) * | 2021-08-23 | 2021-11-12 | 北京百度网讯科技有限公司 | 用于检测应用状态的方法、装置、设备、介质和产品 |
CN113641544B (zh) * | 2021-08-23 | 2024-04-26 | 北京百度网讯科技有限公司 | 用于检测应用状态的方法、装置、设备、介质和产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782372A (zh) | java进程的启动方法、装置、计算机设备和存储介质 | |
CN109788032B (zh) | 镜像文件的获取方法、装置、计算机设备和存储介质 | |
CN109634258B (zh) | 一种用于硬件在环测试的总线报文校验方法、装置及*** | |
CN110908909A (zh) | 自动化测试方法、装置、存储介质及设备 | |
CN110990183A (zh) | 数据库集群的异常检测方法、装置、计算机可读存储介质 | |
CN108400978B (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN111611021A (zh) | 日志数据传输方法、装置、计算机设备和存储介质 | |
CN109273045B (zh) | 存储设备在线检测方法、装置、设备及可读存储介质 | |
CN111327428B (zh) | 图像信息处理方法、***及电子设备 | |
CN117032908B (zh) | 基于冗余架构的集成计算设备部署运行方法及*** | |
CN113220584A (zh) | 页面测试方法、装置、计算机设备和可读存储介质 | |
CN111835710B (zh) | 校验请求体的方法、装置、计算机设备和存储介质 | |
WO2016188223A1 (zh) | 故障信息采集的方法及装置 | |
CN111897789A (zh) | 一种日志生成方法及装置 | |
CN111752819B (zh) | 一种异常监控方法、装置、***、设备和存储介质 | |
CN109740386B (zh) | 一种静态资源文件的检测方法及装置 | |
CN111966461A (zh) | 虚拟机集群节点守护方法、装置、设备及存储介质 | |
CN114579473B (zh) | 应用测试方法、装置、设备及存储介质 | |
CN116032735A (zh) | 一种交换机异常信息确定方法、装置、设备及介质 | |
CN115757138A (zh) | 脚本异常原因的确定方法、装置、存储介质以及电子设备 | |
CN110704218B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN107861842B (zh) | 一种元数据损坏检测方法、***、设备及存储介质 | |
CN113987506A (zh) | 认证***的测试方法、装置、测试设备和存储介质 | |
CN110737595A (zh) | 一种自动化测试方法及装置 | |
CN113672917A (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 |