一、搭建Prometheus | Promethues+Grafana监控方案

18

【Promethues+Grafana监控方案】文章
一、搭建Prometheus
二、搭建告警通知
三、监控数据可视化

1. 写在前面

当我们爆肝出程序部署上线后,程序运行的状况,可能成为我们迫切需要关注的东西,比如 Java 的 QPS、JVM 内存情况,在者,服务器的 CPU、内存、磁盘使用情况,每次都通过 shell 手动查看,就太麻烦了,不方便。

今天就整理一套还不错的服务监控方案(Promethues + Grafana),使用 Docker 快速搭建,实现:

  1. 服务器 CPU、内存等指标使用率过高即时通过邮件/钉钉进行报警通知;

  2. 可视化监控服务器的运行指标,包括:CPU、内存、磁盘、IO等使用情况;

  3. 可视化监控 Spring Boot 程序的运行指标,包括内存、CPU使用情况;

  4. Spring Boot 程序离线后,即时通过钉钉进行报警通知;

涉及程序:

程序

描述

Prometheus

普罗米修斯主程序

AlertManager

普罗米修斯告警程序

PrometheusAlert

告警中心消息转发

Grafana

监控数据可视化展示程序

node_exporter

主机各项指标采集程序

下面以及后续的文章,都将用 Docker 进行搭建,假设你现在已经具备 Docker 的基础使用能力。

2. 搭建 Prometheus

2-1. 1. 准备

创建存放 Prometheus 数据文件的目录:

mkdir -p ~/docker/prometheus/data
chmod 777 ~/docker/prometheus/data
mkdir -p ~/docker/prometheus/rules

创建 Prometheus 配置文件:

vim ~/docker/prometheus/prometheus.yml

# 全局配置
global:
  scrape_interval: 15s # 每次数据收集的间隔
  evaluation_interval: 1m # 规则扫描时间间隔
  #scrape_timeout: 30s # 超时时间
 
# Alertmanager 告警程序配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      #- 127.0.0.1:9093
 
# 评估(告警)规则配置
rule_files:
  - "rules/*_rule.yml"
 
# 监控项配置
scrape_configs:

2-2. 2. 安装

执行安装命令:

sudo docker run -d \
    --name prometheus \
    -p 9090:9090 \
    -v ~/docker/prometheus/:/etc/prometheus/ \
    -v ~/docker/prometheus/data:/prometheus \
    prom/prometheus

2-3. 3. 访问

http://服务器IP:9090

3. 安装 node-exporter

上面,已经搭建好 Prometheus 程序,现在给服务器安装 node-exporter 来采集服务器的各项指标。

执行安装命令:

docker run -d --name node_exporter -p 9100:9100 prom/node-exporter

访问:http://服务器IP:9100/metrics

4. 让 Prometheus 监控服务器

服务器安装好 node-exporter 后,就可以将其加入到 Prometheus 中进行指标数据的采集与监控。

编辑 Prometheus 配置文件,在 scrape_configs 节点下增加如下配置:

vim ~/docker/prometheus/prometheus.yml

# 监控项配置
scrape_configs:
  # 服务器
  - job_name: 'host-exporter '
    static_configs:
    - targets: ['服务器IP:9100']

随后重启 Prometheus:docker restart prometheus

访问:http://服务器IP:9090/targets