若要监控服务器CPU、内存、磁盘、I/O等信息,需要node_exporter,作用是收集机器系统数据。
安装 node_exporter
1
2$ git clone https://github.com/prometheus/node_exporter.git
$ mv node_exporter-0.18.1.linux-amd64 /usr/local/prometheus/node_exporter创建Systemd服务
1
2
3
4
5
6
7
8
9
10
11
12$ vim /etc/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target启动Node exporter
1
$ systemctl start node_exporter
验证Node exporter是否启动成功
1
2
3
4
5
6
7
8
9
10
11$ systemctl status node_exporter
● node_exporter.service - node_exporter
Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2019-07-17 15:10:26 CST; 10s ago
Main PID: 13085 (node_exporter)
Tasks: 3
Memory: 1.1M
CPU: 5ms
CGroup: /system.slice/node_exporter.service
└─13085 /usr/local/prometheus/node_exporter/node_exporter修改prometheus.yml,加入下面的监控目标:
Node Exporter默认的抓取地址为http://IP:9100/metrics1
2
3
4
5
6
7$ vim /usr/local/prometheus/prometheus.yml
- job_name: 'linux'
static_configs:
- targets: ['localhost:9100']
labels:
instance: node1
prometheus.yml中一共定义了两个监控:一个是监控prometheus自身服务,另一个是监控Linux服务器。这里给个完整的示例:
1 | - job_name: 'prometheus' |
重启Prometheus
1
$ systemctl restart prometheus
在Prometheus Web查看监控的目标
- 访问Prometheus Web,在Status->Targets页面下,我们可以看到我们配置的两个Target,它们的State为UP。
- 使用Prometheus Web来验证Node Exporter的数据已经被正确的采集。
- 查看当前主机的CPU负载情况
常用指令
- systemctl daemon-reload
- systemctl start node_exporter
- systemctl stop node_exporter