说明
本文主要介绍使用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