«

VM 监控指南

做云计算平台,VM 级监控必不可少,监控的指标包括 CPU、内存、磁盘、网络、load值等。

Prometheus + Grafana 就能很方便的用来监控服务器,只需要额外添加 node_exporter 这个组件,同样也是 Prometheus 旗下的。

本文假设你已经有搭建过 Prometheus + Grafana 的经验(没有的话请参考:《etcd 监控指南》),来介绍如何快速搭建 VM 监控,不复杂,总共分三步。

一、安装 node_exporter

监控系列,第一步都是要能暴露数据, node_exporter 就是干这件事。

node_exporter 就是用来专门收集 *NIX 内核的系统级数据(意思就是不支持Windows……),Go 语言实现,编译成二进制后,开箱即用。

当前最新的版本是 0.16.0,但发现和我找到的 Grafana 模板不匹配,于是往换到了 0.14.0。最新的不一定好用,够用就好,有余力再考虑切换新版 :)

你需要在对应的 VM(node) 上,下载 node_exporter (直接从官网下载,然后解压运行,看日志。

# 1. download
$ wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz

# 2. decompress 
$ tar -zxvf node_exporter-0.14.0.linux-amd64.tar.gz
$ cd node_exporter-0.14.0.linux-amd64 

# 3. run
$ nohup ./node_exporter --web.listen-address=":9100" --web.telemetry-path="/metrics" >> node_exporter.log  2>&1 &

# 4. log
$ tailf node_exporter.log

日志没异常,最后输出这句,说明运行成功:

time="2018-06-01T9:42:32+08:00" level=info msg="Listening on :9100" source="node_exporter.go:186"  

在本地和执行机上都调试下 metrics 接口:

# vm上
curl http://127.0.0.1:9100/metrics

# 执行机上
curl http://{VM_IP}:9100/metrics  

都有正常输出,说明 node_exporter 安装成功了。

二、配置Prometheus

如果你参照 监控系列 的文章做过其它监控的部署,相信你已经对 Prometheus 的配置不陌生了,我们只需在 Prometheus 最后,添加如下配置:

  - job_name: 'om-core1'
    static_configs:
    - targets: ['10.250.104.183:9100']
      labels:
        instance: om-core1
  - job_name: 'om-core2'
    static_configs:
    - targets: ['10.250.105.180:9100']
      labels:
        instance: om-core2  

顾名思义,jobname和instance就是你vm的命名,targets是vm上nodeexport暴露的IP+Port,可以配置多台VM。

注意缩进,同时yaml配置都只能用空格缩进。

接下来重启 Prometheus:

ps -fe | grep prometheus  
# 找到 Prometheus的进程id,kill之
kill -9 {pid}  
# 再启动
nohup /data/prometheus/2.2.1/prometheus \  
    --config.file /data/prometheus/prometheus-config.yaml \
    --web.listen-address "0.0.0.0:9090" \
    --storage.tsdb.path "/data/prometheus/prometheus.data" >> /data/prometheus/prometheus.log  2>&1 &

查看日志,确保没有报错。接着在浏览器中访问targets:

http://${执行机IP}:9090/targets  

如果新加的 node 都是UP状态,表示配置成功。

三、配置Grafana

到这步其实只需导入 Grafana 模板即可,官网 就有很多现成的模板可用,如下链接:

https://grafana.com/dashboards?dataSource=prometheus&collector=nodeExporter&search=node%20exporter

左边做搜索,Data Source 选择 Prometheus,Collector 选择 nodeExporter,搜索框中输入 node exporter,回车搜索。右边会弹出很多模板,一般下载最多的就比较靠谱了,多试试找到你喜欢的。

我这里推荐两个模板:一个可以用来对比多个 VM 监控,一个用来监控单 VM 1. Node Exporter Server Metrics:
- 官网地址 2. Node exporter single server:
- 官网地址

如果导入没问题,将看到监控图表界面。

恭喜你,VM 监控搭建成功!Have fun!

分享