跳到主要内容

日志收集架构

需求:商品服务可能有一个实例实例支撑,订单服务可以能有两个或多个实例支撑。需要按照服务拆分将日志聚集到对应服务的日志中。 比如:订单服务有两个实例,需要将两个实例的日志聚集到一份订单日志中。

日志收集架构图 rizhi.png

日志收集技术流程图

rizhi.png

ES日志收集库设计

Index 的名称为 log-index-{yyyy-MM-dd} (日志索引) Field:

字段名字段类型字段描述
appNamestring服务名。
instancestring实例UUID。
timeStampstring记录日志日期。格式:yyyy-MM-dd HH:mm:ss.SSS
msgstring日志详细

日志分析API

1、读取服务名列表

路径:

URL{manager-domain}/servers
methodGET

参数: 无

返回值: 正确

[
{
"name":"buyer-api"
},
{
"name":"manager-api"
}
]

2、读取实例UUID

因为每次重新启动实例,会重新生成UUID。读取实例UUID时,只读取正在使用状态的UUID。

rizhi-uuid.jpg

路径:

URL{manager-domain}/servers/{name}/instances
methodGET

参数: 无

返回值: 正确

[
{
"uuid":"asdasd-asdasd"
},
{
"uuid":"asdasd-asdasd"
}
]

3、读取日志

路径:

URL{manager-domain}/servers/{name}/instances/{uuid}/logs
methodGET

参数:

参数类型描述
timeString日期(yyyy-MM-dd)

返回值

{
"data":["一行完整日志*****","一行完整日志******"],
"pageNo": 1,
"pageSize": 100,
"dataTotal": 2
}

4、下载日志

路径:

URL{manager-domain}/servers/{name}/instances/{uuid}/logs/dowloader
methodGET

参数:

参数类型描述
timeString日期(yyyy-MM-dd)

返回值:

下载日志文件