安装Prometheus
创建prometheus用户
useradd -M -s /usr/sbin/nologin prometheus
下载二进制文件压缩包
wget https://github.com/prometheus/prometheus/releases/download/v2.45.4/prometheus-2.45.4.linux-amd64.tar.gz
解压安装包内容至/opt/prometheus/prometheus
tar -xvf ./prometheus-2.45.4.linux-amd64.tar.gz -C /opt/prometheus
mv /opt/prometheus/prometheus-2.45.4.linux-amd64 /opt/prometheus/prometheus
更改/opt/prometheus以及其内容的属主和属组
chown prometheus:prometheus -R /opt/prometheus
创建prometheus服务
创建文件
vim /etc/systemd/system/prometheus.service
插入如下内容后保存退出
[Unit]
Description=Prometheus Service
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
Restart=on-failure
Execstart=/opt/prometheus/prometheus/prometheus --config.file=/opt/prometheus/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/prometheus/data --storage.tsdb.retention.time=60d --web.enable-lifecycle
[Install]
WantedBy=multi-user.target
启动服务
systemctl start prometheus
安装alertmanager
下载二进制文件压缩包
wget https://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz
解压安装包内容至/opt/prometheus/alertmanager
tar -xvf ./alertmanager-0.27.0.linux-amd64.tar.gz -C /opt/prometheus
mv /opt/prometheus/alertmanager-0.27.0.linux-amd64 /opt/prometheus/alertmanager
更改/opt/prometheus以及其内容的属主和属组
chown prometheus:prometheus -R /opt/prometheus
创建prometheus服务
创建文件
vim /etc/systemd/system/alertmanager.service
插入如下内容后保存退出
[Unit]
Description=Alert Manager
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/opt/prometheus/alertmanager/alertmanager --config.file=/opt/prometheus/alertmanager/alertmanager.yml --storage.path=/opt/prometheus/alertmanager/data
Restart=always
[Install]
WantedBy=multi-user.target
启动服务
systemctl start alertmanager
整合alertmanager和prometheus
修改prometheus配置
打开prometheus配置文件
vim /opt/prometheus/prometheus/prometheus.yml
加入如下内容
alerting:
alertmanagers:
- static_configs:
- targets:
# 根据实际填写alertmanager的地址
- localhost:9093
rule_files:
# 根据实际名修改文件名
- "alert.yml"
增加触发器配置文件
新建文件
vim /opt/prometheus/prometheus/alert.yml
添加内容
groups:
- name: Prometheus alert
rules:
# 对任何实例超过30s无法联系的情况发出警报
- alert: 服务告警
expr: up == 0
for: 30s
labels:
severity: critical
annotations:
instance: "{{ $labels.instance }}"
description: "{{ $labels.job }} 服务已关闭"
检查配置文件
/opt/prometheus/prometheus/promtool check config /opt/prometheus/prometheus/prometheus.yml
重启服务
systemctl restart prometheus
安装Grafana
sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_10.4.1_amd64.deb
sudo dpkg -i grafana-enterprise_10.4.1_amd64.deb
安装node_exporter
下载二进制文件压缩包
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
解压安装包内容至/opt/prometheus/node_exporter
tar -xvf ./node_exporter-1.7.0.linux-amd64.tar.gz -C /opt/prometheus
mv /opt/prometheus/node_exporter-1.7.0.linux-amd64 /opt/prometheus/node_exporter
更改/opt/prometheus以及其内容的属主和属组
chown prometheus:prometheus -R /opt/prometheus
创建node_exporter服务
创建文件
vim /etc/systemd/system/node_exporter.service
插入如下内容后保存退出
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
User=prometheus
Group=prometheus
ExecStart=/opt/prometheus/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动服务
systemctl start node_exporter
配置prometheus自动拉取node_exporter数据
打开prometheus配置文件
vim /opt/prometheus/prometheus/prometheus.yml
追加内容
- job_name: 'node-exporter'
scrape_interval: 15s
static_configs:
- targets: ['localhost:9100']
labels:
instance: node-exporter服务器01
grafana添加prometheus数据源
进入grafana的web图形界面,登录
默认账号:admin, 默认密码:admin
- 新增
prometheus数据源
保存即可
grafana添加node_exporter仪表盘
在新页面中,找到node_exporter,进入详情页,点击按钮复制ID
返回grafana,在输入框中粘贴,然后点击Load按钮
Name可自行修改,然后数据源选择刚刚创建的prometheus
最后点击Import即可