ELKgoglogcenterGLC
国外仓库地址: https://github.com/gotoeasy/glogcenter
国内(仅同步): https://gitee.com/gotoeasy/glogcenter
特点
golanggogoleveldbVUEdockerjavajavagolanggolangRabbitMQ生产级应用
docker
# 简单示例 docker run -d -p 8080:8080 gotoeasy/glc # 外挂数据目录 docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc # 【简易用法】 # 启动成功后即可按 http://ip:port 访问 # 支持多关键词检索,比如输入【key1、key2、key3】检索出同时满足这3个关键词的结果 # 默认每次检索100条,滚动到底部时自动检索后面100条
docker
# 以下3台以集群方式启动,配置本节点地址及关联节点地址即可
# 采用“乐观集群”方式,简易选主(简单排序)+日志群发(忽略失败)+数据补偿(隔日同步历史数据)
# 服务1
docker run -d -p 8080:8080 -e GLC_CLUSTER_MODE=true -e GLC_SERVER_URL=http://172.27.59.51:8080 \
-e GLC_CLUSTER_URLS=http://172.27.59.51:8080;http://172.27.59.52:8080;http://172.27.59.53:8080 \
gotoeasy/glc
# 服务2
docker run -d -p 8080:8080 -e GLC_CLUSTER_MODE=true -e GLC_SERVER_URL=http://172.27.59.52:8080 \
-e GLC_CLUSTER_URLS=http://172.27.59.51:8080;http://172.27.59.52:8080;http://172.27.59.53:8080 \
gotoeasy/glc
# 服务3
docker run -d -p 8080:8080 -e GLC_CLUSTER_MODE=true -e GLC_SERVER_URL=http://172.27.59.53:8080 \
-e GLC_CLUSTER_URLS=http://172.27.59.51:8080;http://172.27.59.52:8080;http://172.27.59.53:8080 \
gotoeasy/glc
docker
GLC_STORE_NAME_AUTO_ADD_DATEtrueGLC_SAVE_DAYS0~1800180GLC_ENABLE_LOGINfalseGLC_USERNAMEglcGLC_PASSWORDGLogCenter100%666GLC_ENABLE_SECURITY_KEYfalseGLC_HEADER_SECURITY_KEYheaderX-GLC-AUTHGLC_SECURITY_KEYglogcenterGLC_ENABLE_CORSfalseGLC_PAGE_SIZE1001~1000GLC_ENABLE_AMQP_CONSUMErabbitMqfalseGLC_AMQP_ADDRrabbitMqamqp://user:password@ip:port/GLC_AMQP_JSON_FORMATrabbitMqjsontrueGLC_CLUSTER_MODEfalseGLC_SERVER_URLGLC_CLUSTER_URLS;GLC_LOG_LEVELdebug/info/warn/errorinfoGLC_GOMAXPROCSdocker
命令行启动参数
-v-dstoprestartdocker
接口
/glc/v1/log/addPOSTapplication/jsonsystem系统名date日期时间yyyy-MM-dd HH:mm:ss.SSStext日志servername主机名serverip主机IPloglevel日志级别traceid追踪IDclientip客户端IP
# 发送测试数据的参考脚本
# 注意时间格式要一致,否则按时间范围检索可能无法得到预想结果
curl -X POST -d '{"system":"demo", "date":"2023-01-01 01:02:03.456","text":"demo log text"}' \
-H "Content-Type:application/json" http://127.0.0.1:8080/glc/v1/log/add
logbackjava
<!-- pom坐标 -->
<dependency>
<groupId>top.gotoeasy</groupId>
<artifactId>glc-logback-appender</artifactId>
<version>0.11.1</version>
</dependency>
<!-- logback配置例子1,发送至 glogcenter -->
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcHttpJsonAppender">
<glcApiUrl>http://127.0.0.1:8080/glc/v1/log/add</glcApiUrl> <!-- 可通过环境变量 GLC_API_URL 设定 -->
<glcApiKey>X-GLC-AUTH:glogcenter</glcApiKey> <!-- 可通过环境变量 GLC_API_KEY 设定 -->
<system>demo</system> <!-- 可通过环境变量 GLC_SYSTEM 设定 -->
<layout>
<pattern><![CDATA[%m %n]]></pattern>
</layout>
</appender>
<!-- logback配置例子2,发送至 rabbitmq -->
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcAmqpAppender">
<amqpHost>127.0.0.1</amqpHost> <!-- 可通过环境变量 GLC_AMQP_HOST 设定 -->
<amqpPort>5672</amqpPort> <!-- 可通过环境变量 GLC_AMQP_PORT 设定 -->
<amqpUser>rabbitmqUsername</amqpUser> <!-- 可通过环境变量 GLC_AMQP_USER 设定 -->
<amqpPassword>rabbitmqPassword</amqpPassword> <!-- 可通过环境变量 GLC_AMQP_PASSWORD 设定 -->
<system>Demo</system> <!-- 可通过环境变量 GLC_SYSTEM 设定 -->
<layout>
<pattern><![CDATA[%m %n]]></pattern>
</layout>
</appender>
<!-- 一个简单的logback-spring.xml配置例子 -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<appender name="CONSOLE"
class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<encoder>
<pattern>%d-%c-%t-%5p: %m%n</pattern>
</encoder>
</appender>
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcHttpJsonAppender">
<glcApiUrl>http://127.0.0.1:8080/glc/v1/log/add</glcApiUrl>
<system>demo</system>
<layout>
<pattern><![CDATA[%m %n]]></pattern>
</layout>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
<appender-ref ref="GLC" />
</root>
</configuration>
golang
# 引入工具包 go get github.com/gotoeasy/glang # 按需设定环境变量 export GLC_API_URL='http://127.0.0.1:8080/glc/v1/log/add' export GLC_API_KEY='X-GLC-AUTH:glogcenter' export GLC_SYSTEM=demo export GLC_ENABLE=true export GLC_LOG_LEVEL=debug # 日志级别(trace/debug/info/warn/error/fatal)
// 方式1: 通过 cmn.Debug(...)、cmn.Info(...)等方式,打印日志的同时发送至日志中心
// 方式2: 通过 cmn.NewGLogCenterClient()创建客户端对象后使用
// 更多内容详见文档 https://pkg.go.dev/github.com/gotoeasy/glang
import "github.com/gotoeasy/glang/cmn"
func main() {
cmn.Info("启动WEB服务")
err := cmn.NewFasthttpServer().Start()
if err != nil {
cmn.Fatalln("启动失败", err)
}
}
更新履历
latest
- 日志审计
- 集群支持动态删减节点(或是页面管理删除)
0.11.1
Go1.21.0alpine3.18
0.11.0
GLC_ENABLE_CORSGLC_PAGE_SIZE1001~1000
0.10.2issue #160.10.1日志级别glc-logback-appender:0.10.1客户端IPTraceId0.10.0glc-logback-appender:0.10.00.9.00.8.80.8.70.8.60.8.50.8.4golang1.19.4alpine3.170.8.3GLC_GOMAXPROCSdocker0.8.20.8.1GLC_LOG_LEVELdebug/info/warn/errorinfo0.8.00.7.00.6.0-v-dstoprestartlogbackjarGLC_ENABLE=false0.5.0/glc/add/glc/searchmavenDockerAsia/Shanghai0.4.0mavenjavaRabbitMQRabbitMQRabbitMQ/glc/v1/log/addJSON0.3.0glc-logback-appender0.2.0logo/glc/addsystem分类0.1.0golanggoleveldbdockerjava/glc/add/glc/search