prometheus+grafana+alertmanager 安装配置
服务器监控告警系统搭建,通过 exporter 获取节点信息到 prometheus。prometheus 配置规则,使 garfana 和 alertmanager 能够接受到数据,分别展示数据和发送告警
参数
VM :192.168.99.78
端口 | 服务 |
---|---|
9100 | node_exporter |
3000 | grafana |
9090 | prometheus |
9115 | blackbox_exporter |
安装
grafa 安装
- docker 安装
1docker run -d -p 3000:3000 \
2--name=grafana \
3-v grafana-storage:/var/lib/grafana \
4grafana/grafana:8.3.3
prometheus 安装
- 下载
1wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz
2tar -zxvf prometheus-2.32.1.linux-amd64.tar.gz
3cd prometheus-2.32.1.linux-amd64
4mkdir -p file_sd
5mkdir -p rules
- 运行 prometheus
1killall prometheus
2nohup ./prometheus --config.file=prometheus.yml &
3# 查看运行状况
4tail -f nohup.out
node_exporter 安装
- docker-compose 安装
1version: "3"
2services:
3 node-exporter:
4 image: prom/node-exporter:v1.3.1
5 container_name: node-exporter
6 restart: always
7 ports:
8 - "9100:9100"
1docker-compose up -d
- 二进制安装
1wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
2tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
3cd node_exporter-1.3.1.linux-amd64
4nohup ./node_exporter &
blackbox_exporter
- 二进制安装
1wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.19.0/blackbox_exporter-0.19.0.linux-amd64.tar.gz
2tar -zxvf blackbox_exporter-0.19.0.linux-amd64.tar.gz
3cd blackbox_exporter-0.19.0.linux-amd64
4nohup ./blackbox_exporter &
Alertmanager
- 二进制安装
1wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
2tar -zxvf alertmanager-0.23.0.linux-amd64.tar.gz
3cd alertmanager-0.23.0.linux-amd64
4nohup ./alertmanager &
- docker-compose 安装
1version: "3"
2services:
3 alertmanager:
4 image: "prom/alertmanager:v0.22.2"
5 volumes:
6 - "/etc/localtime:/etc/localtime"
7 - "./alertmanager.yml:/etc/alertmanager/alertmanager.yml"
8 ports:
9 - "9093:9093"
10 restart: "always"
11 container_name: "alertmanager"
prometheus.yml 配置
1global:
2 scrape_interval: 15s # By default, scrape targets every 15 seconds.
3
4 # Attach these labels to any time series or alerts when communicating with
5 # external systems (federation, remote storage, Alertmanager).
6 external_labels:
7 monitor: "codelab-monitor"
8
9# Alertmanager configuration
10# alerting:
11# alertmanagers:
12# - static_configs:
13# - targets:
14# - 192.168.99.78:9093
15
16# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
17# rule_files:
18# - "./rules/blackbox.yaml"
19# - "./rules/node-exporter.yaml"
20
21# A scrape configuration containing exactly one endpoint to scrape:
22# Here it's Prometheus itself.
23scrape_configs:
24 # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
25 - job_name: "prometheus"
26 # Override the global default and scrape targets from this job every 5 seconds.
27 scrape_interval: 5s
28 static_configs:
29 - targets: ["localhost:9090"]
30
31 - job_name: "node-exporter"
32 file_sd_configs:
33 - files:
34 - "./file_sd/node-exporter.yaml"
35 refresh_interval: 5s
36
37 - job_name: "blackbox"
38 metrics_path: /probe
39 scrape_interval: 30s
40 scrape_timeout: 30s
41 params:
42 module: [http_2xx] # Look for a HTTP 200 response.
43 file_sd_configs:
44 - files:
45 - "./file_sd/blackbox.yaml"
46 refresh_interval: 5s
47 relabel_configs:
48 - source_labels: [__address__]
49 target_label: __param_target
50 - source_labels: [__param_target]
51 target_label: instance
52 - target_label: __address__
53 replacement: 192.168.99.78:9115
node-exporter.yaml
1- targets: ["192.168.99.78:9100"]
2 labels:
3 instance: <实例名称>
4- targets: ["<IP>:9100"]
5 labels:
6 instance: 实例名称
blackbox.yaml
1- targets:
2 - https://www.jobcher.com
3 - https://<域名>