Bootstrap

grafana+prometheus+node_exporter搭建服务器监控

说明

本文主要介绍使用prometheus+grafana+node_exporter实现linux系统的监控。下面针对这三个组件进行具体的说明

node_exporter

node_exporter是采集器,负责将采集的数据存储到prometheus数据库,然后grafana取promethues数据库的数据进行展示。

prometheus

prometheus是一套开源的监控与报警与时间序列数据库的组合。

grafana

grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。

搭建步骤

prometheus&grafana搭建执行查看,此处主要介绍node_exporter的搭建

下载并启动node_exporter

# 根据自己的系统环境修改*位置的内容,可以访问https://github.com/prometheus/node_exporter/releases查看适合的版本
wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter

由于1.0.0以上版本要求TLS
在这里插入图片描述

启用TLS

在node_exporter同级目录下执行

openssl genrsa -out node_exporter.key 2048
# 此处ip需要修改为对应服务器IP,否则将报错
openssl req -new -key node_exporter.key -subj "/CN=10.0.0.244" -out node_exporter.csr
# 此处ip需要修改为对应服务器IP,否则将报错
echo subjectAltName = IP:10.0.0.244 > extfile.cnf

openssl x509 -req -days 3650 -in node_exporter.csr -signkey node_exporter.key -extfile extfile.cnf -out node_exporter.crt

记住node_exporter.csr文件路径,后面需要用

# 查看证书是否写入subject
openssl x509 -in ./node_exporter.crt -noout -text

在这里插入图片描述

再次启动node_exporter

# 创建配置文件
vim config.yaml

配置文件内容

tls_server_config:
  cert_file: node_exporter.crt
  key_file: node_exporter.key
# 启动时指定配置文件
./node_exporter --web.config=config.yaml

在这里插入图片描述

验证是否启动成功

linux中访问

# 注意:此处只能使用ip,localhost无法显示正常
curl -k https://10.0.0.244:9100/metrics

或者浏览器中访问https://10.0.0.244:9100/metrics

在这里插入图片描述

拷贝node_exporter.crt文件到prometheus配置文件目录下

cp <node_exporter.crt源地址> <prometheus配置文件地址> 

node_exporter关联prometheus

打开prometheus配置文件,添加以下内容,注意格式

  - job_name: 'node_exporter'
    scheme: https
    tls_config:
      ca_file: node_exporter.crt
    static_configs:
    - targets: ['10.0.0.244:9100']

验证promethes配置是否正确

浏览器访问 <prometheus ip:port>/targets

在这里插入图片描述

grafana添加node_exporter看板

在这里插入图片描述

输入11074 -> 点击Load -> VictoriaMetrics选择Prometheus -> 点击Import
在这里插入图片描述

在这里插入图片描述

将node_exporter设为守护进程且开机自启

[root@monitor ~]# vi /etc/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
# 此处改为node_exporter全路径及配置文件全路径
ExecStart=/usr/local/bin/node_exporter --web.config=config.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@monitor ~]# systemctl daemon-reload && systemctl restart node_exporter && systemctl enable node_exporter
# 查看node_exporter状态
[root@monitor ~]# systemctl status node_exporter

在这里插入图片描述

;