System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() Linux系统日志分布式设计和部署方法、装置、设备及介质制造方法及图纸_技高网

Linux系统日志分布式设计和部署方法、装置、设备及介质制造方法及图纸

技术编号:40316861 阅读:8 留言:0更新日期:2024-02-07 20:59
本发明专利技术提供了Linux系统日志分布式设计和部署方法、装置、设备及介质,是针对编程人员团队合作间出现的一些日志冗余,散乱,以及难以使用等诸多技术问题而衍生出来的一套新的统一规范,主要目的是为了实现对系统日志的有序,高效,专业的使用,从而提升编程人员对系统功能的可控性以及排查定位分析问题的实用性,同时也是为了尽量减少现场技术支撑的难度,该方法属于应用层面的技术领域,同时也保留了对框架层,oops内核恐慌崩溃前的最后日志自动存储,这部分是偏底层的日志,段错这些偏向于应用层方面函数接口调用的日志。

【技术实现步骤摘要】

本专利技术涉及linux系统日志,具体涉及linux系统日志分布式设计和部署方法、装置、设备及介质。


技术介绍

1、当前,linux系统本身已经包含syslog的日志存储,也可以通过更改底层文件调整日志等级输出,但这样的日志只是一种仅仅够用的排错系统,而对于比较复杂的系统环境来说,需要同时面对几千几万条日志去筛选出可用的定位信息是很难的,更何况有些时候编程人员为了减少日志的打印来提高系统工作效率,而导致现场环境出现问题后没有可用的日志来排查问题,最后只能通过临时加入debug日志处理,这样的手段费时还费力,而且也很考验现场技术人员对功能的掌握程度,通过查询资料以及测试得知,现市面上的linux系统大部分是使用log4j+mongodb或者elk(elasticsearch+logstash+kibana)的方式存储。

2、其中,syslog的日志打印接口是linux通用的,默认可以通过udp的502端口输出到一个对端软件,这就允许了使用者可以通过kiwi系统日志服务器或者syslog watcher等pc端软件直接抓取实时日志,并在pc端对抓取到的日志进行过滤筛选,但是,这样的手段在实际使用时,依旧会有很大局限性。首先是存储的日志在等级划分上需要很严格,不能随意增加日志,必须统一管理,尤其是在一些循环里面的日志,而且在一些频繁交换内存的地方多了日志就容易导致资源消耗过大,比如一条原本只需要几毫秒组包的数据帧,会因为频繁打印报文数据而导致开销增大,结果花了十几分钟才处理完成,需要额外增加互斥锁以保证日志功能的稳定性。</p>

3、这是由于存储日志的空间有限,一般jffs只有10m,4019架构的扩展flash也只有50m,最大的tf卡存储能有几十g,但是效率就会偏慢,所以需要严格控制存储日志的数量,这就意味着大部分情况下只能存储warn跟error等级的严重日志,而info等级的只能用于技术人员日常输出分析系统功能是否正常,而debug等级则是只能由编程人员调试功能使用。而对于sqlite的读写操作也需要由互斥锁的控制,避免出现sqlite database islocked之类的死锁问题,而且有些日志是频繁输入输出的,这就需要用到事务以及wal机制的方式高效批量处理,而这种处理很占据资源跟同步优先级,所以需要各个线程,进程间有序进行,避免出现进程资源抢占调用等问题,那样会导致系统僵死,从而影响用户使用。

4、有鉴于此,提出本申请。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供linux系统日志分布式设计和部署方法、装置、设备及介质,能够有效解决现有技术中的linux系统日志存储方法存在的不能随意增加日志,必须统一管理,容易导致资源消耗过大,频繁打印报文数据而导致开销增大,需要额外增加互斥锁以保证日志功能的稳定性的问题。

2、本专利技术公开了linux系统日志分布式设计和部署方法,包括:

3、在接收到启动信号后,获取当前产生的日志内容;

4、分别对所述日志内容进行输出分支处理和存储分支处理,其中,所述输出分支处理是决定输出格式的,所述存储分支处理是决定存储格式的;

5、按照预设周期对所述存储分支处理后的所述日志内容进行转存判断处理,生成转存判断结果,并根据所述转存判断结果将所述日志内容转存至预设的数据库中;

6、当接收到按钮装置发送的查询触发信号时,根据所述查询触发信号,将转存的日志内容传输至计算机pc端,其中,所述查询触发信号包括日志等级、进程名、线程名、进程号、线程号、文件名、函数名和行号。

7、优选地,对所述日志内容进行输出分支处理,具体为:

8、判断是否封装输出格式;

9、若是,获取封装后的日志内容,并判断当前日志的输出方式;

10、若否,判断当前日志的输出方式;

11、当判断到所述输出方式确定时,显示所述日志内容,结束输出分支处理。

12、优选地,对所述日志内容进行存储分支处理,具体为:

13、判断是否封装存储格式;

14、若是,获取封装后的日志内容,并判断当前内部存储模块的内存是否大于预设值;

15、若否,判断当前内部存储模块的内存是否大于预设值;

16、当判断到当前内部存储模块的内存大于预设值时,将所述日志内容存储到内部存储模块内的与当前日期相对应的文本中;

17、当判断到当前内部存储模块的内存不大于预设值时,将内部存储模块中日期最早的文本删除,再将所述日志内容存储到内部存储模块内的与当前日期相对应的文本中。

18、优选地,按照预设周期对所述存储分支处理后的所述日志内容进行转存判断处理,生成转存判断结果,并根据所述转存判断结果将所述日志内容转存至预设的数据库中,具体为:

19、根据预设的周期对所述存储分支处理后的所述日志内容进行转存判断处理,生成转存判断结果,其中,所述转存判断结果包括转存结果和不转存结果;

20、当判断到所述转存判断结果为转存结果时,判断flash容量是否大于预设值;

21、若是,将所述日志内容转存至sqlite数据库中,同时存储至数据库db中;

22、若否,根据所述sqlite数据库中每张表的累积存储记录条数来判断删除区域,根据时间戳删除所述sqlite数据库中的旧数据,再将所述日志内容转存至所述sqlite数据库中,同时存储至数据库db中。

23、优选地,当接收到按钮装置发送的查询触发信号时,根据所述查询触发信号,将转存的日志内容传输至计算机pc端,具体为:

24、当接收到查询触发信号时,根据所述查询触发信号存储查询所述sqlite数据库中符合条件的数据;

25、将符合条件的数据压缩成包通过http传输到计算机pc端,或者直接使用ftp方式将符合条件的数据传输到计算机pc端。

26、本专利技术还公开了linux系统日志分布式设计和部署装置,包括:

27、日志内容获取单元,用于在接收到启动信号后,获取当前产生的日志内容;

28、分支处理单元,用于分别对所述日志内容进行输出分支处理和存储分支处理,其中,所述输出分支处理是决定输出格式的,所述存储分支处理是决定存储格式的;

29、转存单元,用于按照预设周期对所述存储分支处理后的所述日志内容进行转存判断处理,生成转存判断结果,并根据所述转存判断结果将所述日志内容转存至预设的数据库中;

30、查询单元,用于当接收到按钮装置发送的查询触发信号时,根据所述查询触发信号,将转存的日志内容传输至计算机pc端,其中,所述查询触发信号包括日志等级、进程名、线程名、进程号、线程号、文件名、函数名和行号。

31、优选地,所述分支处理具体用于:

32、判断是否封装输出格式;

33、若是,获取封装后的日志内容,并判断当前日志的输出方式;

34、若否本文档来自技高网...

【技术保护点】

1.Linux系统日志分布式设计和部署方法,其特征在于,包括:

2.根据权利要求1所述的Linux系统日志分布式设计和部署方法,其特征在于,对所述日志内容进行输出分支处理,具体为:

3.根据权利要求1所述的Linux系统日志分布式设计和部署方法,其特征在于,对所述日志内容进行存储分支处理,具体为:

4.根据权利要求1所述的Linux系统日志分布式设计和部署方法,其特征在于,按照预设周期对所述存储分支处理后的所述日志内容进行转存判断处理,生成转存判断结果,并根据所述转存判断结果将所述日志内容转存至预设的数据库中,具体为:

5.根据权利要求4所述的Linux系统日志分布式设计和部署方法,其特征在于,当接收到按钮装置发送的查询触发信号时,根据所述查询触发信号,将转存的日志内容传输至计算机PC端,具体为:

6.Linux系统日志分布式设计和部署装置,其特征在于,包括:

7.根据权利要求6所述的Linux系统日志分布式设计和部署装置,其特征在于,所述分支处理具体用于:

8.根据权利要求6所述的Linux系统日志分布式设计和部署装置,其特征在于,所述转存具体用于:

9.Linux系统日志分布式设计和部署设备,其特征在于,包括处理器、存储器以及存储在存储器中且被配置由处理器执行的计算机程序,处理器执行计算机程序时实现如权利要求1至5任意一项所述的Linux系统日志分布式设计和部署方法。

10.可读存储介质,其特征在于,存储有计算机程序,计算机程序能够被该存储介质所在设备的处理器执行,以实现如权利要求1至5任意一项所述的Linux系统日志分布式设计和部署方法。

...

【技术特征摘要】

1.linux系统日志分布式设计和部署方法,其特征在于,包括:

2.根据权利要求1所述的linux系统日志分布式设计和部署方法,其特征在于,对所述日志内容进行输出分支处理,具体为:

3.根据权利要求1所述的linux系统日志分布式设计和部署方法,其特征在于,对所述日志内容进行存储分支处理,具体为:

4.根据权利要求1所述的linux系统日志分布式设计和部署方法,其特征在于,按照预设周期对所述存储分支处理后的所述日志内容进行转存判断处理,生成转存判断结果,并根据所述转存判断结果将所述日志内容转存至预设的数据库中,具体为:

5.根据权利要求4所述的linux系统日志分布式设计和部署方法,其特征在于,当接收到按钮装置发送的查询触发信号时,根据所述查询触发信号,将转存的日志内容传输至计算机...

【专利技术属性】
技术研发人员:唐仕斌彭府吴一鸣吴世川
申请(专利权)人:厦门四信通信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1