0 介绍
在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。
从上面的描述中可以看出Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。
这里为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。
1 下载
https://prometheus.io/download/
wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
2 解压安装
tar zxf node_exporter-1.0.1.linux-amd64.tar.gz
cd node_exporter-1.0.1.linux-amd64
mv node_exporter /usr/bin/
3 写进systemd服务中
vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -KILL $MAINPID
KillMode=control-group
Restart=on-failure
RestartSec=3s
[Install]
WantedBy=multi-user.target
4 启动
systemctl enable node_exporter
systemctl start node_exporter
systemctl stop node_exporter
systemctl reload node_exporter
5 端口9100
6 访问
访问http://106.14.47.46:9100/metrics,可以看到当前node exporter获取到的当前主机的所有监控数据,如下所示:
在当前页面中根据物理主机系统的不同,你还可能看到如下监控指标:
· nodeboot_time:系统启动时间
· node_cpu:系统CPU使用量
· node_disk:磁盘IO
· nodefilesystem:文件系统用量
· nodeload1:系统负载
· node_memeory:内存使用量
· nodenetwork:网络带宽
· nodetime:当前系统时间
· go:node exporter中go相关指标
· process_:node exporter自身进程相关运行指标
7 在prometheus.yml中配置
- job_name: 'node_export'
static_configs:
- targets:
- 127.0.0.1:9100