从监控的角度看业务系统该如何介入 AMO 平台,主要有三个角色:业务开发、AMO平台管理员以及AMO 平台用户,涉及的具体内容如下:
- 业务开发,集成koca-metrics和koca-tracing SDK,并提供一个健康检查接口
- koca-metrics 通过一个 HTTP 接口暴露系统监控指标,默认集成的包括有:JVM、KOCA 服务调用等指标,业务层指标同样可以根据需求扩展以同样的端点暴露出指标
- koca-tracing 记录调用链路,写入链路日志
- 健康检查接口 KOCA 应用可以使用
/actuator/health
,或者根据业务需要自定义接口
- 平台管理员,需要根据服务分类进行相关的配置,如日志采集、指标监控、健康检查、日志格式转换、监控仪表、告警规则等配置
- 平台用户,通过日志查询、链路查询、指标仪表以及告警信息等发现、排查和解决问题
开发侧 SDK 集成和功能使用不需要太多介绍,都可以参考对应文档,接下来主要介绍平台配置管理,在此前需要理解 AMO 对基础资源的定义,参考 基础设置 文档,有了这样的资源定义后 AMO 监控及运维相关的配置结构如下图。首先,在服务分类层有基础配置,基础配置根据组件不同定义了组件相关的配置信息;其次,在基础配置中必定有需要在服务、实例层进行自定义扩展的参数,针对这类配置先在服务分类进行定义,参数定义时可以配置为是否必选以及默认值,然后在服务、实例层根据需求进行配置;最后,配置生效的优先级为 实例 > 服务 > 服务分类默认值。
这是 AMO 平台配置结构的设计,回到各个监控组件的接入,就遵循这样的结构,每个组件有自己的一套基础配置以及扩展参数定义,接下来具体介绍每个组件的基础配置以及可扩展参数。
指标监控
首先被监控系统需要暴露指标,KOCA 应用参考 开发框架-服务监控-koca-metrics 文档,业务等需要自定义的指标参考 指标规范 文档。
指标监控配置:
- 基础配置:
- 导航:指标监控 → 配置管理
- 配置项:
- 指标监控:监控端口、监控路径以及是否代理主机
- 健康检查:检查方式、检查端口、检查路径
- 扩展参数:
-
metricPort
监控端口 -
metricPath
监控路径 -
probePort
健康检查端口 -
probePath
健康检查路径
-
-
注意基础配置中指标监控和健康检查都是支持对条配置的,此时如果用扩展参数进行服务/实例层的自定义会全部替换,使用中需要注意
- 一般指标监控和健康检查都只通过一个端点即可
以上配置的是指标的采集,指标的展示首先针对 KOCA 应用 AMO 平台提供了与 koca-metrics 有配套的仪表,可以开箱即用,如果需要自定义或者有业务指标需要定制仪表,需要使用 Grafana 进行设计,完成后将 JSON 数据导入到 AMO 平台,相关文档参考 指标仪表配置
日志监控
日志接入首先要在目标服务器上部署 koca-agent 及 filebeat 服务,有两种部署方式
- 使用 Ansible 部署,仅部署 koca-agent 和 Filebeat 服务
- 手动部署参考 KOCA Agent 和 Filebeat
日志监控配置:
- 基础配置:
- 导航:日志监控 → 配置管理
- 配置项:
- 日志路径:由于日志文件位置在不同服务/实例会有差异,所以此处配置的路径可以是绝对路径或者相对路径
- 使用相对路径可以在服务/实例的扩展参数中配置日志根目录
- 日志路径:由于日志文件位置在不同服务/实例会有差异,所以此处配置的路径可以是绝对路径或者相对路径
- 注意:日志监控配置包括链路日志的采集配置,如果是链路日志,在配置项中勾选链路日志
- 扩展参数:
-
logDir
日志采集路径,为日志根目录,与基础配置中的日志路径共同定义了日志文件的完整路径
-
以 KCBP 日志为例,日志采集的配置如下:
{
"paths": [
"\\bin\\log\\user\\*\\*.log"
],
"multiline": {
"pattern": "^\\["
},
"encoding": "GBK",
"fields": {
"log.type": "service"
}
}
其中 paths
配置的目录为相对目录,如果在扩展参数中配置的 logDir=c:\kcbp
,那么日志采集的完整路径为 c:\kcbp\bin\log\user\*\*.log
日志转换
日志转换由 Logstash 完成,详情参考 Logstash-Filter 配置 文档
链路监控
首选被监控系统需要集成链路监控-koca-tracing SDK,将链路日志输出到日志文件,链路日志的上报统一走日志采集流程,如果需要对链路日志进行转换同样参考 Logstash-Filter 配置 文档