配置Node Exporter
- 安装Node Exporter
我们依然选用Ubuntu 18.04作为监控目标
root@prometheous# mkdir node-exporter;cd node-exporter
root@prometheous:~/node-exporter# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.0/node_exporter-1.0.0.linux-amd64.tar.gz
root@prometheous:~/node-exporter# tar xfz node_exporter-1.0.0.linux-amd64.tar.gz
root@prometheous:~/node-exporter# cp node_exporter-1.0.0.linux-amd64/node_exporter /usr/local/bin
root@prometheous:~/node-exporter# node_exporter --version
node_exporter, version 1.0.0 (branch: HEAD, revision: b9c96706a7425383902b6143d097cf6d7cfd1960)
build user: root@3e55cc20ccc0
build date: 20200526-06:01:48
go version: go1.14.3
- 配置textfile收集器
有时想给主机增加一些自定义的指标,比如物理位置和用途等,我们需要暴露一些自定义的指标,这是textfile收集器将起到作用。
这里我们定义了主机的角色和DataCenter的名称,你也可以根据自己的需求设定如添加Rack等信息
root@prometheous:~/node-exporter# mkdir textfile
root@prometheous:~/node-exporter# echo 'metadata{role="Nginx",datacenter="labstage"} 1' | tee .textfile/metadata.prom
- 配置systemd收集器
systemd收集器记录了systemd中的服务和系统状态,默认收集所有内容。如果只想收集部分关键的业务,我们可以添加白名单。
可以运行下面的命令查看systemd下的服务:
root@prometheous:~/node-exporter# systemctl --type=service --state=running
- 运行Node Export服务
我们为textfile收集器指定目录以便查找指标,然后启用了systemd收集器并使用白名单过滤待监控的服务
root@prometheous:~/node-exporter# node_exporter --collector.textfile.directory ./textfile/ --collector.systemd.unit-whitelist="(ssh|taniumclient)"
抓取 Node Exporter
为了抓取Node Exporter我们需要修改Prometheus配置文件
- 过滤收集器
Node Expoerter可以返回很多指标,除了在node exporter上限制运行哪些收集器外,我们还可以在Prometheus上通过添加特定收集器列表来实现,这对无法控制正在抓取的主机配置非常有用。
可以过滤的内容参考如下链接:
https://github.com/prometheus/node_exporter
- 创建抓取job
要获取新数据,需要为prometheus.yml添加另外一个新的job,结合过滤收集器,新的配置文件如下:
root@prometheous:/etc/prometheous#cat prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'linux_node'
static_configs:
- targets: ['10.110.204.54:9090']
params:labels:
group: 'production'
collect[]:
- cpu
- meminfo
- diskstats
- netdev
- netstat
- filesystem
- systemd
重新加载prometheus.yml文件
root@prometheous:~/prometheous# prometheus --config.file /etc/prometheous/prometheus.yml &
使用PromQL
PromQL是Prometheus自带的查询语言,有三种数据类型
- 即时向量:数据采样的时间序列
- 范围向量:包含特定时间范围内的数据的一组时间序列
- 标量:具体的值
我们可以通过在浏览器上的Excute按钮旁边输入相关的内容进行查询,可以参考下面链接
https://prometheus.io/docs/prometheus/latest/querying/basics/
下图中我们通过其labels即{group="production"}的查询结果