欢迎光临散文网 会员登陆 & 注册

自制单机日志解决方案 5. Talog 的应用(V.Talog.Server 的功能介绍)

2023-03-01 18:12 作者:木叉一人工作室  | 我要投稿

在本项目立项之时,我的目标就是做一个单机日志解决方案,不仅要有日志存储、查询功能,还要能记录 PageView、Metrics。前面介绍的内容只是说明了日志存储、查询是如何运作的,并还未达到最终的目标,而 V.Talog.Server 就是基于 Talog 开发的最终项目成品。

V.Talog.Server

V.Talog.Server 的目标是希望做成一个接口平台,通过调用接口来保存日志、记录 PageView、记录 Metrics,同时还能集成一个后台管理页面,以供查询数据。

目前 V.Talog.Server 具有以下几个功能:

  • 监听本地日志文件,该功能适用于将 Talog 与其他服务部署在同一台机器的情况

  • 日志索引、日志查询

  • 记录、查看 PageView

  • 记录、查看 Metrics

监听本地日志文件

考虑到用户可能已经有一些服务日志存储在本地文件中,因此 V.Talog.Server 添加了一个监听本地日志文件的功能。要启用该功能,只需要在 appsettings.json 文件中添加以下配置。


Path 代表需要监听的目录;Filter 用于筛选出想要监听的文件,本质上为正则表达式,例如以上配置只监听了 access.log、error.log 两个文件,如果想要监听所有文件可以配置.*;Tags 用于配置日志所对应的标签;Type 用于标识日志为单行或者多行,0 代表单行日志,1 代表多行日志;还有个 Head 字段,该字段用于指定多行日志的自定义头。

对于新加入监听列表的文件,V.Talog.Server 会将整个文件的日志都进行一次索引,并且记录下文件的末尾位置。当文件有发生变化时,V.Talog.Server 会从之前记录的位置继续读取日志,而不会从头开始读取,就算程序中断了也是如此,因为 V.Talog.Server 会将每个文件的已读位置记录在文件中。

日志索引、日志查询

V.Talog.Server 作为一个日志解决方案,提供了 API 接口以供其他程序上传日志,也提供了一个后台管理页面,以供用户在遇到问题时,可以快速查看日志。

POST /log/index

日志索引接口

POST /log/search?page=1&perPage=10

日志查询接口,支持分页,page 从 1 开始

后台页面查询日志

记录、查看 PageView

PageView 也是同样的,提供一个上传数据的 API 接口,以及一个后台查看页面。

GET /metric/pg/add?index=xxx&page=xxx&user=xxx

Page View 接口,index、page 都是必传参数,user 非必传,user 用于统计 UV

后台页面查看 PageView

记录、查看 Metrics

GET /metric/add?index=xxx&name=xxx&value=xxx

指标接口,name 为指标名称(如 cpu、memory),value 为指标值

后台页面查看 Metrics

最后

本文列举了 V.Talog.Server 的功能,功能较少但是对于我个人来说已经够用了,我一开始也提到过,我是在看到了其他项目功能特别简洁,才萌生自己做一个简易的日志解决方案。若是像 elasticsearch 那种功能强大的项目,我肯定是做不来分毫的。下一篇文章将会介绍一下 V.Talog.Server 的搭建过程。


自制单机日志解决方案 5. Talog 的应用(V.Talog.Server 的功能介绍)的评论 (共 条)

分享到微博请遵守国家法律