按照容器监控的内容,我们分为 docker+K8S 基础监控 和 容器内应用监控 两部分来分别实现。
1, docker+K8S 基础监控的实现:
由于 prometheus 对 docker 和 k8s 监控的天然集成,通过 cAdvisor 可以直接获取 docker 基础监控数据,通过 kube-state-metrics 可以直接获取 K8S 的资源对象和对应监控数据,因此我们在每个 K8S 集群上默认部署 prometheus 实现这部分监控采集,然后通过 Zabbix Http Agent 方式调用 prometheus API 来获取数据,接入 Zabbix Server 从而复用之前建设的功能,实现后续的告警阈值配置和数据接入集中监控平台。
2, 容器内应用监控的实现:
所有的应用监控我们都通过 Zabbix 实现,这里的“应用”可以是数据库、中间件、也可以是某个应用系统,我们通过在容器中增加环境变量 monitor_type 来定义,比如 monitor_type=mysql 就代表这个容器的“应用”是 mysql ,我们将对它进行 mysql 监控。
收起