Prometheus 部署配置

Prometheus + Grafana

基于docker-compose部署Prometheus + Grafana

安装数据收集器 node-exporter

安装 node-exporter

1
2
3
4
5
cd /opt
sudo wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz
sudo tar zxf node_exporter-1.4.0.linux-amd64.tar.gz
sudo mv node_exporter-1.4.0.linux-amd64 node_exporter
sudo mv node_exporter /usr/local/

运行如下命令测试 node-exporter 收集器启动情况,正常情况下会输出服务端口。

1
/usr/local/node_exporter/node_exporter

添加到系统服务

sudo vim /etc/systemd/system/node_exporter.service
添加如下内容

1
2
3
4
5
6
7
8
[Unit]
Description=mysqld_exporter
After=network.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target

加载并重启服务

1
2
3
4
5
6
7
8
# 加载配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl restart node_exporter.service
# 查看服务状态
sudo systemctl status node_exporter.service
# 配置开机启动
sudo systemctl enable node_exporter.service

查看数据收集情况

重新起一个终端,查看数据收集情况。也可以在浏览器中查看。

1
curl http://127.0.0.1:9100/metrics

docker-compse部署

配置

docker-compose.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
version: "3"
services:
prometheus:
image: prom/prometheus
container_name: prometheus
user: root
restart: always
ports:
- "9090:9090"
volumes:
- ./conf/prometheus:/etc/prometheus
- ./data/prometheus/prometheus_db:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
networks:
- net-prometheus

grafana:
image: grafana/grafana
container_name: grafana
user: root
restart: always
ports:
- "53000:3000"
volumes:
#- ./conf/grafana:/etc/grafana
- ./data/prometheus/grafana_data:/var/lib/grafana
depends_on:
- prometheus
networks:
- net-prometheus

pushgateway:
image: prom/pushgateway
container_name: pushgateway

user: root
restart: always
ports:
- "9091:9091"
volumes:
- ./data/prometheus/pushgateway_data:/var/lib/pushgateway
networks:
- net-prometheus

alertmanager:
image: prom/alertmanager
hostname: alertmanager
container_name: alertmanager

user: root
restart: always
ports:
- "9093:9093"
volumes:
- ./conf/alertmanager:/etc/alertmanager
- ./data/prometheus/alertmanager_data:/var/lib/alertmanager
networks:
- net-prometheus

networks:
net-prometheus:

启动

1
docker-compose up -d

prometheus配置文件

prometheus.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 全局配置
global:
# 抓取间隔,每5秒抓取一次指标
scrape_interval: 5s
# 评估规则的频率,每5秒评估一次
evaluation_interval: 5s

external_labels:
monitor: "dashboard"

# 警报配置
alerting:
alertmanagers:
# 定义 Alertmanager 实例
- static_configs:
- targets:
- "192.168.0.100:9093"

# 规则文件路径
rule_files:
- /etc/prometheus/rules/*.rules

# 采集配置
scrape_configs:
# 采集 Prometheus 自身指标
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["172.19.0.2:9090"] # Prometheus 实例地址

# 采集 AWS 指标
- job_name: "server"
static_configs:
- targets: ["server_IP_1:9100"] # 替换为实际的实例 IP

参考文章:
https://developer.aliyun.com/article/1158325


Prometheus 部署配置
http://example.com/2024/06/10/Prometheus-部署配置/
作者
Sanli Ma
发布于
2024年6月10日
许可协议