监控
监控采集软件及方案介绍
通过上面的介绍我们知道了一个完善的监控大概都需要什么功能,那么接下来我们就开始选合适的软件,这里就直接给结果了,这些是我们k8s里面线上用的一套,当然这些也可以适用于Docker。
- 主机监控: 可以选
node-exporter
,node_exporter 就是抓取用于采集服务器节点的各种运行指标,目前 node_exporter 支持几乎所有常见的监控点,比如 conntrack,cpu,diskstats,filesystem,loadavg,meminfo,netstat 等。
- 容器监控: 说到容器监控我们自然会想到 cAdvisor,上篇文章【DevOps-监控】 Docker可视化监控原理及采集方案,详细的介绍过 cAdvisor 可以提供对容器的实时监控和性能分析,包括CPU、内存、磁盘、网络等方面的指标。
- 指标数据持久化:
Prometheus Server
用于抓取指标、存储时间序列数据, 可以从满足 prometheus 格式要求的 /metrics 接口中获取所需数据并进行持久化存储。目前大部分采集软件都支持。
- 指标数据可视化展示: 这个肯定选grafana, grafana是与prometheus 配套的可视化监控软件,支持各种维度各种形状的可视化组件。
- 预警通知:预警通知,可以用premetheus的预警模块:alertmanager,它可以通过 Email、Wechat(Robot)、Dingtalk(webhook)等方式来接受警报通知。
如图所示,我们可以通过 node-exporter 可以获取主机数据,cAdvisor 获取主机上的镜像信息,prometheus 定时调用node-exporter,cAdvisor的 /metrics 接口获取数据并存储到磁盘,然后grafana展示的时候直接从 prometheus里面获取数据进行展示。我们还可以在premetheus alertmanager 配置相应的规则,当数据达到一定的阈值的时候触发预警策略。
Loading...