Prometheus之监控Linux主机

配置Node Exporter

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

文章插图
 




    推荐阅读