CN108449343B - Ssh协议文本数据采集方法、采集器及计算机设备 - Google Patents
Ssh协议文本数据采集方法、采集器及计算机设备 Download PDFInfo
- Publication number
- CN108449343B CN108449343B CN201810235859.9A CN201810235859A CN108449343B CN 108449343 B CN108449343 B CN 108449343B CN 201810235859 A CN201810235859 A CN 201810235859A CN 108449343 B CN108449343 B CN 108449343B
- Authority
- CN
- China
- Prior art keywords
- reading
- source file
- log source
- component
- ssh
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Abstract
本发明涉及一种SSH协议文本数据采集方法、采集器及计算机设备。该方法包括:步骤10、SSH资源池管理读取日志源文件所需的连接资源;步骤20、至少一读取组件争抢所述连接资源以读取日志源文件,如果所述SSH资源池没有空闲连接资源,读取组件会等待直到其他读取组件释放连接资源;步骤30、读取组件将读取到的日志源文件数据存放到共享内存中;步骤40、解析组件从所述共享内存中读取日志源文件数据并根据规则做结构化解析,然后将得到的结构化数据保存到所述共享内存中;步骤50、打包发送组件打包压缩从所述共享内存中获取的结构化数据,然后发送至消息中间件。本发明通过SSH协议远程采集目标机器上的文本数据,无需在目标机器上安装额外的程序。
Description
技术领域
本发明涉及通信领域,尤其涉及一种SSH协议文本数据采集方法、采集器及计算机设备。
背景技术
随着企业信息化程度越来越高,面对着各类平台和系统产生的大量日志(设备日志、系统日志和应用日志等),如何充分发掘日志价值、提升基础运营能力、降低运营风险成为重要课题,建立满足日志的统一存储、统一查询、统一分析、数据共享、智能预警审计派单、运营评估分析形成评估报告等能力的统一日志平台势在必行。
现有技术中一般使用采集器来采集各种日志。现有的采集器,例如flume、logstash等,虽然功能强大、稳定且扩展性良好,但是它们都无法做到在目标机器完全不配合的情况下进行数据采集。
采集器作为日志平台的核心组成部分,现有很多成熟的产品,但这些产品大多数都是通过在目标机器上安装Agent代理程序实现,但是在生产环境中,企业一般不能接受这种方式,所以有必要研发一款利用通用协议进行远程采集的采集器。
发明内容
因此,本发明的目的在于提供一种SSH(安全外壳)协议文本数据采集方法、采集器及计算机设备、计算机可读存储介质,通过SSH协议远程采集目标机器上的文本数据。
为实现上述目的,本发明提供了一种SSH协议文本数据采集方法,包括:
步骤10、SSH资源池管理读取日志源文件所需的连接资源,以供读取组件读取日志源文件时申请连接资源;
步骤20、至少一读取组件争抢所述连接资源以读取日志源文件,如果所述SSH资源池没有空闲连接资源,读取组件会等待直到其他读取组件释放连接资源;
步骤30、读取组件将读取到的日志源文件数据存放到共享内存中;
步骤40、解析组件从所述共享内存中读取日志源文件数据并根据规则做结构化解析,然后将得到的结构化数据保存到所述共享内存中;
步骤50、打包发送组件打包压缩从所述共享内存中获取的结构化数据,然后发送至消息中间件。
其中,所述读取组件根据日志源文件进行创建,一个日志源文件对应一个读取组件。
其中,步骤30中,所述读取组件按行读取日志源文件数据。
本发明还提供了一种SSH协议文本数据采集器,包括:
SSH资源池,用于管理读取日志源文件所需的连接资源,读取组件读取日志源文件时需要向SSH资源池申请连接资源;
至少一读取组件,用于争抢所述连接资源以读取日志源文件,如果SSH资源池没有空闲连接资源,读取组件会等待直到其他读取组件释放连接资源;
共享内存,用于存储读取组件读取到的日志源文件数据;
解析组件,用于从所述共享内存中读取日志源文件数据并根据规则做结构化解析,然后将得到的结构化数据保存到所述共享内存中;以及
打包发送组件,用于打包压缩从所述共享内存中获取的结构化数据,然后发送至消息中间件。
其中,所述读取组件根据日志源文件进行创建,一个日志源文件对应一个读取组件。
其中,所述读取组件按行读取日志源文件数据。
其中,所述解析组件采用一个或多个线程进行处理。
其中,所述打包发送组件采用一个或多个线程进行处理。
本发明还提供了一种计算机设备,包括:处理器;以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述任一项所述的SSH协议文本数据采集方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的SSH协议文本数据采集方法。
综上,本发明的SSH协议文本数据采集方法、采集器及计算机设备、计算机可读存储介质,通过SSH协议远程采集目标机器上的文本数据,无需在目标机器上安装额外的程序。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其他有益效果显而易见。
附图中,
图1为本发明SSH协议文本数据采集器一较佳实施例的采集过程示意图;
图2为本发明SSH协议文本数据采集器一较佳实施例的方框图;
图3为本发明SSH协议文本数据采集方法一较佳实施例的流程图。
具体实施方式
参见图1,其为本发明SSH协议文本数据采集器一较佳实施例的采集过程示意图。在一采集器部署服务器2上可以同时部署多个本发明的采集器1,并且采集器1与对应的目标机器3分别通信连接,使用采集器1从目标机器3采集文本数据,例如目标机器3上的各类日志源文件,然后采集器1将数据发送给消息中间件4。使用本发明的采集器1,无需在目标机器3上安装额外的程序(SSH协议除外),可以通过SSH协议远程采集目标机器3上的文本数据,采集器1将采集到的数据根据相应的规则,进行结构化处理,并存放到消息中间件4中,例如Kafka、MQ等。
参见图2,其为本发明SSH协议文本数据采集器一较佳实施例的方框图。本发明SSH协议文本数据采集器1的核心程序模块主要包括:SSH资源池5、读取组件6、共享内存7、解析组件8和打包发送组件9;其中读取组件6,可以根据目标机器上的日志源文件进行创建,一个文件可以对应一个读取组件6。具体如下:
SSH资源池5:采集器1启动时,可以创建一个全局的SSH资源池5,SSH资源池5可以管理读取日志源文件所需的连接资源;所有读取组件6读取日志源文件时需要向SSH资源池5申请连接资源,如果没有空闲连接资源,读取组件6会等待直到其他读取组件6释放出连接资源;SSH资源池5有效的控制了读取组件6打开SSH通道的数量,使采集器1对目标机器的影响控制在有限范围内(CPU资源、内存和网络IO)。
读取组件6:主要作用是争抢SSH资源池5的连接资源以读取日志源文件,并可以按行读取日志源文件数据,然后将读取的日志源文件数据存放到共享内存7中;读取组件6可以是唯一一个和日志源绑定的组件,这样做是为了避免文件数据读取不均;读取组件6的数量至少为一个,也可以为多个。读取组件6在读取日志源文件之前,需要先向SSH资源池5发送指令以获得SSH通道,通过SSH协议远程采集目标机器上的日志源文件数据,采集到的日志源文件数据以执行结果集的形式由SSH资源池5发送给读取组件6。
共享内存7:采集器1启动时,可以创建一个全局的共享内存空间,所有读取组件6读取到的日志源文件数据,都可以放到共享内存7中,共享内存7也可以用于存储结构化数据。
解析组件8:采集器1启动时,可以创建一个全局的解析组件8,解析组件8可以为默认一个线程进行处理,并且可设置多个线程同时进行处理以提升效率,解析组件8从共享内存7中读取日志源文件数据并可以根据预设的规则做结构化解析,然后再将结构化数据保存到共享内存7中。
打包发送组件9:采集器1启动时,可以创建一个全局的打包发送组件9,可以为默认一个线程进行处理,并且可设置多个线程同时处理以提升效率,打包发送组件9从共享内存7中获取结构化数据后,将结构化数据打包压缩,然后发送到消息中间件中,例如Kafka、MQ等。
本发明的SSH协议文本数据采集器无需在目标机器上安装额外的程序(SSH协议除外),通过SSH协议远程采集目标机器上的文本数据,将采集到的数据根据相应的规则,进行结构化处理,并存放到消息中间件中(如:Kafka、MQ等);除此之外,本发明的SSH协议文本数据采集器对目标机器产生的影响很小(系统资源占用小),并且性能强大;不考虑网络带宽的情况下,1小时可以采集10G+数据。由于上述优点,本发明可以在电信行业广泛使用,例如用于统一日志平台;本发明的SSH协议文本数据采集器所采集的目标机器可以是电信行业的各类平台和系统,所采集的文本数据可以是各类平台和系统产生的大量日志(设备日志、系统日志和应用日志等)。
参见图3,其为本发明SSH协议文本数据采集方法一较佳实施例的流程图,该方法主要包括:
步骤10、SSH资源池管理读取日志源文件所需的连接资源,以供读取组件读取日志源文件时申请连接资源;
步骤20、至少一读取组件争抢所述连接资源以读取日志源文件,如果所述SSH资源池没有空闲连接资源,读取组件会等待直到其他读取组件释放连接资源;
步骤30、读取组件将读取到的日志源文件数据存放到共享内存中;读取组件可以按行读取日志源文件数据;
步骤40、解析组件从所述共享内存中读取日志源文件数据并根据规则做结构化解析,然后将得到的结构化数据保存到所述共享内存中;解析组件可以为默认一个线程,并且可设置多个线程同时处理以提升效率;
步骤50、打包发送组件打包压缩从所述共享内存中获取的结构化数据,然后发送至消息中间件;打包发送组件可以为默认一个线程,并且可设置多个线程同时处理以提升效率。
读取组件可以根据日志源文件进行创建,一个日志源文件对应一个读取组件,读取组件数量可以为一个或多个;SSH资源池、共享内存、解析组件以及打包发送组件可以为全局的。
本领域技术人员可以理解,本发明的SSH协议文本数据采集方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来控制相关的硬件完成。相应的,本发明提供了一种计算机设备,包括:处理器;以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述的SSH协议文本数据采集方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的SSH协议文本数据采集方法。作为举例,计算机可读存储介质可以是U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等。
综上,本发明的SSH协议文本数据采集方法、采集器及计算机设备、计算机可读存储介质,通过SSH协议远程采集目标机器上的文本数据,无需在目标机器上安装额外的程序。
以上所述,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思作出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明后附的权利要求的保护范围。
Claims (8)
1.一种SSH协议文本数据采集方法,其特征在于,包括:
步骤10、SSH资源池管理读取日志源文件所需的连接资源,以供读取组件读取日志源文件时申请连接资源;
步骤20、至少一读取组件争抢所述连接资源以读取日志源文件,如果所述SSH资源池没有空闲连接资源,读取组件会等待直到其他读取组件释放连接资源;
步骤30、读取组件将读取到的日志源文件数据存放到共享内存中;
步骤40、解析组件从所述共享内存中读取日志源文件数据并根据规则做结构化解析,然后将得到的结构化数据保存到所述共享内存中;
步骤50、打包发送组件打包压缩从所述共享内存中获取的结构化数据,然后发送至消息中间件;
所述读取组件根据日志源文件进行创建,一个日志源文件对应一个读取组件。
2.如权利要求1所述的SSH协议文本数据采集方法,其特征在于,步骤30中,所述读取组件按行读取日志源文件数据。
3.一种SSH协议文本数据采集器,其特征在于,包括:
SSH资源池,用于管理读取日志源文件所需的连接资源,读取组件读取日志源文件时需要向SSH资源池申请连接资源;
至少一读取组件,用于争抢所述连接资源以读取日志源文件,如果SSH资源池没有空闲连接资源,读取组件会等待直到其他读取组件释放连接资源;
共享内存,用于存储读取组件读取到的日志源文件数据;
解析组件,用于从所述共享内存中读取日志源文件数据并根据规则做结构化解析,然后将得到的结构化数据保存到所述共享内存中;以及
打包发送组件,用于打包压缩从所述共享内存中获取的结构化数据,然后发送至消息中间件;
所述读取组件根据日志源文件进行创建,一个日志源文件对应一个读取组件。
4.如权利要求3所述的SSH协议文本数据采集器,其特征在于,所述读取组件按行读取日志源文件数据。
5.如权利要求3所述的SSH协议文本数据采集器,其特征在于,所述解析组件采用一个或多个线程进行处理。
6.如权利要求3所述的SSH协议文本数据采集器,其特征在于,所述打包发送组件采用一个或多个线程进行处理。
7.一种计算机设备,其特征在于,包括:处理器;以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至2中任一项所述的SSH协议文本数据采集方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至2中任一项所述的SSH协议文本数据采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235859.9A CN108449343B (zh) | 2018-03-21 | 2018-03-21 | Ssh协议文本数据采集方法、采集器及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235859.9A CN108449343B (zh) | 2018-03-21 | 2018-03-21 | Ssh协议文本数据采集方法、采集器及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108449343A CN108449343A (zh) | 2018-08-24 |
CN108449343B true CN108449343B (zh) | 2021-07-09 |
Family
ID=63196280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810235859.9A Active CN108449343B (zh) | 2018-03-21 | 2018-03-21 | Ssh协议文本数据采集方法、采集器及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108449343B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007241850A (ja) * | 2006-03-10 | 2007-09-20 | Net In Kyoto:Kk | 大規模ネットワークシステムにおけるログ収集方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270334A (zh) * | 2014-06-13 | 2015-01-07 | 国家电网公司 | 一种ssh网络安全访问协议监测方法 |
CN105656973B (zh) * | 2014-11-25 | 2018-11-13 | 中国科学院声学研究所 | 一种分布式节点组内任务调度方法及系统 |
CN107547589B (zh) * | 2016-06-27 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 一种数据采集处理方法以及装置 |
CN106371986A (zh) * | 2016-09-08 | 2017-02-01 | 上海新炬网络技术有限公司 | 一种日志处理运维监控系统 |
-
2018
- 2018-03-21 CN CN201810235859.9A patent/CN108449343B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007241850A (ja) * | 2006-03-10 | 2007-09-20 | Net In Kyoto:Kk | 大規模ネットワークシステムにおけるログ収集方法 |
Non-Patent Citations (1)
Title |
---|
"数据库连接池";钱能,罗强;《JSP开发项目教程》;20170531;第3.5节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108449343A (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714192B (zh) | 一种监控云平台的监控方法及系统 | |
CN107689953B (zh) | 一种面向多租户云计算的容器安全监控方法及系统 | |
CN107809467B (zh) | 一种云环境下容器镜像数据的删减方法 | |
CN104778188A (zh) | 一种分布式设备日志采集方法 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN108334557B (zh) | 一种聚合数据分析方法、装置、存储介质及电子设备 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN111984495A (zh) | 一种大数据监控方法、装置和存储介质 | |
CN109902028A (zh) | Acl特性的自动化测试方法、装置、设备及存储介质 | |
US20230420083A1 (en) | Method and apparatus for acquiring gene information of proprietary cloud container cluster | |
CN111177193A (zh) | 一种基于Flink的日志流式处理方法及系统 | |
CN108449343B (zh) | Ssh协议文本数据采集方法、采集器及计算机设备 | |
CN111190875A (zh) | 基于容器平台的日志聚合方法及装置 | |
CN116700779A (zh) | 代码动态调整方法、装置、设备、介质和程序产品 | |
CN116170275A (zh) | 一种云网络运维管理方法和装置 | |
CN109257256A (zh) | 设备监控方法、装置、计算机设备及存储介质 | |
CN114610567A (zh) | 容器监控方法、网络设备及存储介质 | |
CN113157475A (zh) | 日志处理方法、装置、存储介质及电子设备 | |
CN113570347A (zh) | 一种面向微服务架构系统的rpa运维方法 | |
CN106557530A (zh) | 业务系统、数据修复方法及装置 | |
CN108805741B (zh) | 一种电能质量数据的融合方法、装置及系统 | |
CN111159004A (zh) | 一种Hadoop集群仿真测试方法、装置及存储介质 | |
CN116170321B (zh) | 一种链路追踪的数据收集方法、装置、设备和存储介质 | |
CN111143280B (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 |