Prometheus+grafana+alertmanager告警平台搭建

目录

    • 一:基本组件理解
    • 二:告警平台架构图
    • 三:prometheus部署
      • 3.1: 创建用户
      • 3.2: 下载安装包
      • 3.3:解压
      • 3.4:设置prometheus.yml
      • 3.5:将prometheus设置为系统服务
      • 3.6:启动prometheus服务
    • 四:node_exporter部署
      • 4.1:下载安装包:
      • 4.2:解压
      • 4.3: 将node_exporter设置为系统服务
      • 4.4: 启动node_exporter服务
    • 五:grafana部署
      • 5.1 下载安装包
      • 5.2 设置开机启动
      • 5.3 访问grafana
      • 5.4 添加数据源
      • 5.5.Grafana 添加dashboard模板
    • 六:prometheus告警机制
      • 6.1 配置告警规则
        • 6.2.1: 修改Prometheus配置文件
        • 6.2.2:设置告警规则
        • 6.2.3:生产环境告警规则
    • 七:alertmanager部署
      • 7.1:安装包下载
      • 7.2:安装
      • 7.3: 设置为系统服务
      • 7.4: alertmanager配置详解
      • 7.5:配置Prometheus和Alertmanager通信
      • 7.4: 启动服务
      • 7.5:Alertmanager 邮件报警
      • 7.6:Alertmanager 钉钉报警
    • 八:部署blackbox_exporter
      • 8.1: 应用场景
      • 8.2:blackbox_exporter安装
      • 8.4:设置为系统服务
      • 8.5:配置Grafana展示数据

一:基本组件理解

node_exporter:采集节点的cpu,内存,磁盘等基本信息

prometheus: 收集node_exporter,redis_exporter等数据。

Grafana:  从prometheus,mysql,es中拿到采集的数据进行图形展示。

alertmanager: 报警管理器。可以与钉钉结合将报警发给钉钉机器人。

 

流程:
prometheus采集数据并编写告警规则,告警规则发给alertmanager 之后,alertmanager 作进一步作告警处理。并将告警消息转发给钉钉机器人。

二:告警平台架构图

Prometheus+grafana+alertmanager告警平台搭建_第1张图片

三:prometheus部署

3.1: 创建用户

useradd -M -s /sbin/nologin prometheus -g prometheus

3.2: 下载安装包

wget https://github.com/prometheus/prometheus/releases/download/v2.22.2/prometheus-2.22.2.linux-amd64.tar.gz

3.3:解压

tar zxf prometheus-2.22.2.linux-amd64.tar.gz 
mv prometheus-2.22.2.linux-amd64 /usr/local/prometheus
cd /usr/local/prometheus
mkdir  relus data target

3.4:设置prometheus.yml

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['172.24.65.155:9090']
  # 设置自动发现监控主机
  - job_name: 'hosts-status'
    file_sd_configs:
    - files:
      - "/usr/local/prometheus/target/host_status.json"
      refresh_interval: 6s

[root@localhost prometheus]# cat target/host_status.json
[
{
   
        "targets": ["172.24.65.107:9100"],
        "labels": {
   
                        "job": "hosts-status",
                        "service": "master107"
                }
},
{
   
        "targets": ["172.24.65.108:9100"],
        "labels": {
   
                        "job": "hosts-status",
                        "service": "master108"
                }
}
]

3.5:将prometheus设置为系统服务

[root@localhost prometheus]# cat /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus-server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle --storage.tsdb.path=/usr/local/prometheus/data --storage.tsdb.retention.time=7d --web.max-connections=512 --web.read-timeout=3m --query.max-concurrency=25 --query.t

你可能感兴趣的:(prometheus)