
三机房容灾方案

apmonitor 增加网关,接收 oneAgent 吐出的 metric beat 数据。
• 元数据库(mongodb)进行双读双写。
• 监控数据(tsdb)进行双读双写

发出两份写入请求,非同步写,写入结果独立,无关联逻辑。
参照上图,不论故障情况如何,只要AB两机房还有一个的产品层组件+一个存储组件存活,数据就能写进去。不论故障恢复情况如何,只要还要一个产品层组件存活,那么就能读到所有现存活存储组件中写入过的数据。
• apmonitor Metric 监控: 物理机OneAgent 标准日志或指标采集推送方案。
• xflush 业务自定义监控: 虚机采集业务日志自定义监控方案。
• ALS 日志服务: 物理机 OneAgent 日志推送方案。

监控系统元数据来源:
1) 通过调用云游、RMC内部金融云系统pull拉取的元数据。
2)Kube云原生数据,定时调用cluster云原生API拉取数据。
3)通过前端页面添加自定义应用、资源数据。
4)配置新增自定义拉取第三方指定API的数据。
1)自定义应用、应用归属资源元数据表结构
继续存储在原来的应用(apmonitor_metadata_app)、ECS资源元数据(apmonitor_metadata_ecs)表。
2)应用、资源表结构字段做扩展
3)Kube数据采集元数据新增表存储
{
"name": <string>,
"uid": <uuid>,
"ip": <ip>,
"cluster_name": <string>,
"labels": {
"workspace_id": <string>,
"tenant_id": <string>,
"minion_cluster_id": <string>,
"cell_id": <string>,
"zone_id": <string>,
"region_id": <string>,
...
},
}
{
"id": <uuid>,
"name": <string>,
"image": <string>,
"cluster_name": <string>,
"node_name": <string>,
"node_ip": <ip>
"pod": {
"name": <string>,
"uid": <uuid>,
"ip": <ip>,
"namespace": <string>
}
"labels": {
"workspace_id": <string>,
"tenant_id": <string>,
"app_id": <string>,
"app_name": <string>,
"app_service_id": <string>,
"minion_cluster_id": <string>,
"cell_id": <string>,
"zone_id": <string>,
"region_id": <string>,
...
},
"metrics": [
{
"type": <metric_type>,
"port": <port>,
"path": <string>,
"timeout": <timeout>,
"username": <string>,
"password": <string>,
"labels": {
"<string>": <string>
}
}
],
"logs": [
{
"type": <log_type>,
"paths": [<path>,],
"encoding": <encoding>,
"labels": {
"<string>": <string>
}
}
]
}
4)元数据配置表
新增元数据配置表,用于存储自定义应用、第三方元数据配置信息,表数据模型:
1)定时采集云游、RMC系统数据
这个部分数据继续原有的方案不变。
2)Kube云原生数据
定时采集Kube插件提供的API。
3)自定义应用
自定义应用
应用归属的资源类型:
4)第三方指定API拉取数据
(1)通过配置管理页面添加第三方采集API地址信息。
(2) 数据中的必选字段(字段名称可通过配置映射转换)
(3)通过Groovy动态代码支持多种格式解析。