日志收集架构
需求:商品服务可能有一个实例实例支撑,订单服务可以能有两个或多个实例支撑。需要按照服务拆分将日志聚集到对应服务的日志中。 比如:订单服务有两个实例,需要将两个实例的日志聚集到一份订单日志中。
日志收集架构图
日志收集技术流程图
ES日志收集库设计
Index 的名称为 log-index-{yyyy-MM-dd}
(日志索引)
Field:
字段名 | 字段类型 | 字段描述 |
---|---|---|
appName | string | 服务名。 |
instance | string | 实例UUID。 |
timeStamp | string | 记录日志日期。格式:yyyy-MM-dd HH:mm:ss.SSS |
msg | string | 日志详细 |
日志分析API
1、读取服务名列表
路径:
URL | {manager-domain}/servers |
---|---|
method | GET |
参数: 无
返回值: 正确
[
{
"name":"buyer-api"
},
{
"name":"manager-api"
}
]
2、读取实例UUID
因为每次重新启动实例,会重新生成UUID。读取实例UUID时,只读取正在使用状态的UUID。
路径:
URL | {manager-domain}/servers/{name}/instances |
---|---|
method | GET |
参数: 无
返回值: 正确
[
{
"uuid":"asdasd-asdasd"
},
{
"uuid":"asdasd-asdasd"
}
]
3、读取日志
路径:
URL | {manager-domain}/servers/{name}/instances/{uuid}/logs |
---|---|
method | GET |
参数:
参数 | 类型 | 描述 |
---|---|---|
time | String | 日期(yyyy-MM-dd) |
返回值
{
"data":["一行完整日志*****","一行完整日志******"],
"pageNo": 1,
"pageSize": 100,
"dataTotal": 2
}
4、下载日志
路径:
URL | {manager-domain}/servers/{name}/instances/{uuid}/logs/dowloader |
---|---|
method | GET |
参数:
参数 | 类型 | 描述 |
---|---|---|
time | String | 日期(yyyy-MM-dd) |
返回值:
下载日志文件