通过上面的介绍我们知道了一个完善的监控大概都需要什么功能,那么接下来我们就开始选合适的软件,这里就直接给结果了,这些是我们k8s里面线上用的一套,当然这些也可以适用于Docker。
node-exporter,node_exporter 就是抓取用于采集服务器节点的各种运行指标,目前 node_exporter 支持几乎所有常见的监控点,比如 conntrack,cpu,diskstats,filesystem,loadavg,meminfo,netstat 等。Prometheus Server 用于抓取指标、存储时间序列数据, 可以从满足 prometheus 格式要求的 /metrics 接口中获取所需数据并进行持久化存储。目前大部分采集软件都支持。如图所示,我们可以通过 node-exporter 可以获取主机数据,cAdvisor 获取主机上的镜像信息,prometheus 定时调用node-exporter,cAdvisor的 /metrics 接口获取数据并存储到磁盘,然后grafana展示的时候直接从 prometheus里面获取数据进行展示。我们还可以在premetheus alertmanager 配置相应的规则,当数据达到一定的阈值的时候触发预警策略。