一个golang实现的日志中心glogcenter,简称GLC
Go to file
2022-06-30 20:07:52 +08:00
glc 异常堆栈日志换行 2022-06-30 20:07:52 +08:00
.gitignore Web前端检索,适当重构 2022-06-30 19:42:12 +08:00
LICENSE LGPL-3.0 license 2022-06-22 20:38:58 +08:00
README.md 初版0.1.0 2022-06-28 23:12:00 +08:00

缘起

日志中心,一直是忍者用那传统三件套,打开速度不理想,资源占用太厉害,常闹情绪,替代品总是找不到。终于忍不住用go试写一个logcenter,结果确实是惊艳到自己了,故起名glogcenter,简称GLC,开仓建库

特点

  • 使用golang实现,就是快
  • 借助goleveldb做数据保存,结合日志写多读少特点稍加设计,就是快
  • 日志量大,用内存提升性能耗不起,依靠goleveldb大数组,真心省内存资源
  • 日志接收吞食量大,待压测后展示更多信息
  • 支持全文检索,支持中文分词
  • 无条件查询日志,默认查最新日志,快到麻木无感
  • 单关键词查询,反向索引实现,快到麻木无感
  • 多关键词查询,需要求反向索引的交集,常令人颇费脑筋,反复调整尝试,快到欢
  • 支持docker容器化部署,该有的方式
  • 提供java项目日志收集包,日志都放心发来发来发来
  • 提供日志查询界面

docker运行

// 简单示例
docker run -d -p 8080:8080 gotoeasy/glc

docker启动支持的环境变量

  • GLC_STORE_ROOT数据存储的根目录,默认/glogcenter
  • GLC_STORE_CHAN_LENGTH接收日志的通道长度,golang特有的概念,默认值64,基本不用修改
  • GLC_MAX_IDLE_TIME最大闲置时间(秒),超过闲置时间将自动关闭文件用时再自动打开0时表示不关闭默认180
  • GLC_STORE_NAME_AUTO_ADD_DATE,存储名是否自动添加日期(日志量大通常按日单位区分存储),默认false
  • GLC_SERVER_PORTWEB服务端口默认8080,极少有修改的必要
  • GLC_CONTEXT_PATHWEB服务的contextPath,默认/glc
  • GLC_ENABLE_SECURITY_KEYWEB服务是否开启API秘钥校验默认false
  • GLC_HEADER_SECURITY_KEYWEB服务API秘钥的header键名默认X-GLC-AUTH
  • GLC_SECURITY_KEYWEB服务API秘钥默认glogcenter

服务接口

  • /glc/add日志添加,表单提交方式,字段text是日志内容,name是存储名可省略
  • /glc/search日志查询,表单提交方式,检索条件字段searchKey,更多条件字段先看代码了

使用logbackjava项目,支持日志收集

<!-- pom坐标 -->
<dependency>
    <groupId>top.gotoeasy</groupId>
    <artifactId>glc-logback-appender</artifactId>
    <version>0.1.0</version>
</dependency>
<!-- logback-spring.xml配置例子 -->
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcHttpAppender">
    <glcApiUrl>http://127.0.0.1:8080/glc/add</glcApiUrl>
    <glcApiKey>X-GLC-AUTH:glogcenter</glcApiKey>
    <layout>
        <pattern><![CDATA[ %d %c %t %p %m %n]]></pattern>
    </layout>
</appender>

TODO

  • 还好多

更新履历

初版0.1.0latest

  • 使用golang实现,就是快
  • 借助goleveldb做数据保存及查询辅助
  • 真心省内存资源
  • 日志接收吞食量大
  • 支持全文检索,支持中文分词
  • 支持多关键词查询交集
  • 支持docker容器化部署
  • 提供java项目日志收集包
  • 服务接口/glc/add添加日志
  • 服务接口/glc/search查询日志