关于运维:ConsulManager应用场景1如何优雅的基于Consul自动同步ECS主机监控

29次阅读

共计 1698 个字符,预计需要花费 5 分钟才能阅读完成。

【ConsulManager 介绍】

Consul 字段设计说明

  • 服务首次启动时会创立一个随机秘钥,寄存到 consul_kv 的/ConsulManager/assets/secret/skey,该秘钥用于对登录 Token,各云厂商账号 AKSK 的加解密应用。
  • 云厂商的每个账号下的 ECS 实例信息:会存储到 Consul 的对应 Services 下的实例中,ECS 的实例 ID 会作为 ServiceID。
  • 云厂商的每个账号下的 AKSK 和分组信息:寄存到 consul_kv 的 /ConsulManager/assets 下各个云厂商的目录下的 aksk(加密存储) 和group目录。
  • 分组字段:是采集云厂商用于资源分组的字段,阿里云:资源组,华为云:企业我的项目,腾讯云:所属我的项目。请在创立云主机时设置好属组。
  • 新增的各个云厂商的 ECS 同步工作:会寄存到 consul_kv 的 /ConsulManager/jobs 下,服务启动的时候会加载这些工作。
  • 每次同步工作的执行后果: 会存储到 consul_kv 的 /ConsulManager/record/jobs 的各个云厂商目录下。
  • 新增云厂商的数据源之后会主动同步一次分组信息,ECS 信息则会在设置的工夫距离之后才会同步,能够手动点击同步按钮同步一次。
  • Linux 默认监控 node_exporter 的 9100 端口,Windows 默认监控 windows_exporter 的 9128 端口。

配置阐明

1. 新增同步源
  • 在 Web 页面点击 ECS 云主机监控 / 接入数据源,点击 新增同步源,输出各字段:
  • 账户 可随便填写,用来辨别云厂商不同云账户的标识,反对中文,例如用主账户的名称。
  • 填写的 AKSK 须要有获取 ECS 的权限以及各云厂商分组信息的权限。(留神:腾讯云的分组信息因为在 ECS 中没有找到对应接口,是从 分布式数据库 TDSQL- 查问我的项目列表 (DCDB)的接口中获取的,AKSK 须要有对应权限。)
  • 抉择好对应的 ECS 所在区域(暂反对国内),以及分组与 ECS 的刷新距离,确认即可,分组信息会主动同步一次,ECS 信息则会在设置的工夫距离之后才会同步,能够手动点击同步按钮同步一次。

    2. 查看云主机列表
  • 能够点击 查看 按钮或者在 云主机列表 中查看同步后的 ECS 信息。(华为云暂未获取到 ECS 到期日信息)

    3. 配置 Prometheus
  • 点击 ECS 云主机监控 /Prometheus 配置,依据须要来生产各账号、零碎(均反对多选)的 Prometheus 配置信息,复制配置后,追加到prometheus.yml 的开端,重启 Prometheus 即可。

    4. 查看 Prometheus
  • 在 Prometheus 的 Web 页面中,点击Status-Targets,能看到新增的 Job 即示意数据同步到 Prometheus。

    5. 导入 Node Exporter Dashboard
  • 更新了主机监控的 grafana 看板,可匹配主动同步形式采集 ECS 信息字段的展现。
  • 优化了大量图表,应用新版表格重建,新增衰弱评分概念,并新增了整体资源耗费信息的一些图表。
  • 导入 ID:8919
  • 具体 URL:https://grafana.com/grafana/dashboards/8919

留神:

被动关机的 ECS,会在同步时候从 Consul 中革除,即会在 Prometheus 中去除(缩小有效的告警),从新开机后会减少回去。
各 ECS 的 Node_exporter 须要自行装置。
【最近 7 天 P99 资源使用率】图表须要在 Prometheus 减少记录规定(采集 1 小时后出数据):
- name: node_usage_record_rules
  interval: 1m
  rules:
  - record: cpu:usage:rate1m
    expr: (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance,vendor,account,group,name)) * 100
  - record: mem:usage:rate1m
    expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100

正文完
 0