This commit is contained in:
gotoeasy 2022-09-22 12:59:08 +08:00
parent 289f94dbfa
commit 424738ba8e
3 changed files with 35 additions and 6 deletions

View File

@ -25,6 +25,7 @@
- [x] 提供`java`项目日志收集包,`java`项目闭环支持
- [x] 支持从`RabbitMQ`收取日志信息,满足更多闭环需求
- [x] 内置提供简洁的`VUE`实现的日志查询管理界面
- [x] 支持多服务集群模式部署,确保服务及数据保存的冗余性
<div align=center>
<img src="https://gotoeasy.github.io/screenshots/glogcenter/glogcenter.png"/>
@ -32,7 +33,7 @@
<br>
## `docker`运行
## `docker`单机部署模式简易示例
```
// 简单示例
docker run -d -p 8080:8080 gotoeasy/glc
@ -41,6 +42,19 @@ docker run -d -p 8080:8080 gotoeasy/glc
docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc
```
## `docker`集群部署模式简易示例
```
// 以下3台集群配置实现上是无主模式接收到日志时会自动转发到其他服务
// 但鉴于日志的时序性较强建议仅取其1作为发送日志数据的主服务入口
// 服务1
docker run -d -p 8091:8080 -e GLC_SLAVE_HOSTS=http://127.0.0.1:8092;http://127.0.0.1:8093 -e GLC_SLAVE_TRANSFER=true gotoeasy/glc:0.7.0
// 服务2
docker run -d -p 8092:8080 -e GLC_SLAVE_HOSTS=http://127.0.0.1:8091;http://127.0.0.1:8093 -e GLC_SLAVE_TRANSFER=true gotoeasy/glc:0.7.0
// 服务3
docker run -d -p 8093:8080 -e GLC_SLAVE_HOSTS=http://127.0.0.1:8091:http://127.0.0.1:8092 -e GLC_SLAVE_TRANSFER=true gotoeasy/glc:0.7.0
```
## `docker`启动环境变量
- [x] `GLC_STORE_NAME_AUTO_ADD_DATE`日志仓是否自动按日存储,默认`true`
@ -54,6 +68,8 @@ docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc
- [x] `GLC_ENABLE_AMQP_CONSUME`是否开启`rabbitMq`消费者接收日志,默认`false`
- [x] `GLC_AMQP_ADDR`消息队列`rabbitMq`连接地址,例:`amqp://user:password@ip:port/`,默认空白
- [x] `GLC_AMQP_JSON_FORMAT`消息队列`rabbitMq`消息文本是否为`json`格式,默认`true`
- [x] `GLC_SLAVE_HOSTS`待转发的服务地址,多个时`;`分隔,默认空白
- [x] `GLC_SLAVE_TRANSFER`是否开启转发日志到其他GLC服务默认false
## 命令行启动参数(适用`0.6.*`及以上版本)
- [x] 支持命令行参数`-v`查看版本
@ -72,13 +88,13 @@ docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc
## 使用`logback`的`java`项目,支持日志收集
## 使用`logback`的`java`项目,支持日志收集确保主次版本和GLC版本一致
```xml
<!-- pom坐标 -->
<dependency>
<groupId>top.gotoeasy</groupId>
<artifactId>glc-logback-appender</artifactId>
<version>0.6.0</version>
<version>0.7.0</version>
</dependency>
```
@ -115,8 +131,16 @@ docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc
- [ ] 界面优化
- [ ] 多语言
- [ ] 分词优化
- [ ] 海量日志数据支持
- [ ] 日志审计
### 版本`0.7.0`
- [x] 增加日志转发功能,支持多服务集群模式部署,确保服务及数据保存的冗余性
- [x] 增加转发地址配置项`GLC_SLAVE_HOSTS`,多地址时可`;`分隔
- [x] 增加转发开关配置项`GLC_SLAVE_TRANSFER`默认是false不开启
### 版本`0.6.0`
- [x] 升级使用Go1.19

View File

@ -8,6 +8,7 @@ import (
"glc/ldb"
"glc/ldb/storage/logdata"
"glc/onexit"
"glc/www/controller"
"log"
"sync"
)
@ -73,6 +74,10 @@ func fnAmqpJsonLogHandle(jsonLog string, err error) bool {
engine := ldb.NewDefaultEngine()
engine.AddTextLog(md.Date, md.Text, md.System)
if conf.IsEnableSlaveTransfer() {
controller.TransferGlc(md.ToJson()) // 转发其他GLC服务
}
return true
}

View File

@ -30,7 +30,7 @@ func JsonLogAddController(req *gweb.HttpRequest) *gweb.HttpResult {
}
if conf.IsEnableSlaveTransfer() {
transferGlc(md) // 转发其他GLC服务
TransferGlc(md.ToJson()) // 转发其他GLC服务
}
engine := ldb.NewDefaultEngine()
@ -62,10 +62,10 @@ func JsonLogTransferAddController(req *gweb.HttpRequest) *gweb.HttpResult {
}
// 转发其他GLC服务
func transferGlc(md *logdata.LogDataModel) {
func TransferGlc(jsonlog string) {
hosts := conf.GetSlaveHosts()
for i := 0; i < len(hosts); i++ {
go httpPostJson(hosts[i]+conf.GetContextPath()+"/v1/log/transferAdd", md.ToJson())
go httpPostJson(hosts[i]+conf.GetContextPath()+"/v1/log/transferAdd", jsonlog)
}
}