5分钟快速搭建Prometheus环境

docker-compose五分钟快速安装prometheus

本文介绍如何通过docker-compose快速安装prometheus。请先对照安装环境检查自己的环境是否具备,具体对照如下:
安装环境
Linux服务器(或VMware虚拟机)IP:192.168.1.110
操作系统:CentOS7
docker社区版: docker-ce 23.0.4
docker-compose: 1.16.1

安装步骤

我们将prometheus安装在/opt目录下,同时还需要安装配套的 grafana, alertmanager。
因此我们分别为它们三个创建自己的安装目录,如下:
1)创建目录
mkdir -p /opt/prometheus/{prometheus,grafana,altermanager}
2)创建配置文件
为alertmanager创建配置文件/opt/prometheus/alertmanager/config.yml

global:
  # 163邮件服务器
  smtp_smarthost: 'smtp.163.com:465'
  # 发送邮件邮箱
  smtp_from: 'soosky@163.com'
  # 发送邮件账号
  smtp_auth_username: '修改为你的邮件账号'
  # 发送邮件密码
  smtp_auth_password: '修改为你的邮箱密码'
  # 是否进行TLS验证
  smtp_require_tls: false

route:
  group_by: ['altertname']
  # 当收到告警时,等待group_wait配置的时间,看是否还有警告,如果有就一起发出去
  group_wait: 10s
  # 如果上次告警信息发送成功,此时又来一个新的告警数据,则需要等待group_interval时间才能发送
  group_interval: 10s
  # 如果上次告警信息发送成功,且问题没有解决,则等待repeat_interval时间再次发送告警数据
  repeat_interval: 10m
  # 全局报警组,这个参数是必选的
  receiver: email

receivers:
  - name: 'email'
    # 接收邮件邮箱
    email_configs:
      - to: '49186456@qq.com'

inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['altertname', 'dev', 'instance']

为grafana创建配置文件/opt/prometheus/grafana/config.monitoring

# grafana web控制台密码
GF_SECURITY_ADMIN_PASSWORD=password
# grafana是否允许注册
GF_USERS_ALLOW_SIGN_UP=false

为prometheus创建配置文件/opt/prometheus/prometheus/prometheus.yml

# 全局配置
global:
  scrape_interval: 15s # 搜刮间隔配置;默认60s
  evaluation_interval: 15s # 每15s评估一次规则;默认60s

# Prometheus发送告警信息给Alertmanager,Alertmanager的配置
alerting:
  alertmanagers:
  - static_configs:
    - targets: ['alertmanager:9093']

# 报警(触发器)配置
rule_files:
  - "alert.yml"

# 搜刮配置
scrape_configs:
  # 配置收集prometheus的数据
  - job_name: 'prometheus'
    # 覆盖全局默认值,每15s从该作业中刮取一次目标
    scrape_interval: 15s
    static_configs:
      - targets: ['localhost:9090']

  # 配置收集alertmanager的数据
  - job_name: 'alertmanager'
    scrape_interval: 15s
    static_configs:
      - targets: ['alertmanager:9093']

  # 配置收集docker的数据
  - job_name: 'cadvisor'
    scrape_interval: 15s
    static_configs:
      - targets: ['cadvisor:8080']
        labels:
          instance: 192.168.1.110 # Prometheus服务器

  # 配置收集linux的数据
  - job_name: 'node-exporter'
    scrape_interval: 15s
    static_configs:
      - targets: ['node_exporter:9100']
        labels:
          instance: 192.168.1.110 # Prometheus服务器

创建配置文件/opt/prometheus/prometheus/alert.yml

groups:
  - name: Prometheus alert
    rules: 服务告警
    # 对任何实体超过30s无法联系的情况发出警报
    - alert: # 服务告警
      expr: up == 0
      for: 30s
      labels:
        severity: critical
      annotations:
        summary: "服务器异常,实例:{{ $labels.instance }}"
        description: "{{ $labels.job }} 服务已关闭"

创建docker-compose的脚本文件/opt/prometheus/script/docker-compose.yml

version: '3.3'

volumes:
  prometheus_data: {}
  grafana_data: {}

networks:
  monitoring:
    driver: bridge

services:
  prometheus:
    image: prom/prometheus:v2.37.6
    container_name: prometheus
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ../prometheus/:/etc/prometheus
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml' # prometheus的配置文件
      - '--storage.tsdb.path=/prometheus' # prometheus数据存储目录
      - '--web.console.libraries=/usr/share/prometheus/console_libraries' # 控制台的库
      - '--web.console.templates=/usr/share/prometheus/consoles' # 控制台模板
      - '--web.enable-lifecycle' # 热加载配置
      #- '--web.enable-admin-api' # api配置
      - '--storage.tsdb.retention.time=7d' # 历史数据最大保留时间,默认15天
    networks:
      - monitoring
    links:
      - alertmanager
      - cadvisor
      - node_exporter
    expose:
      - '9090'
    ports:
      - '9090:9090'
    depends_on:
      - cadvisor

  alertmanager:
    image: prom/alertmanager:v0.25.0
    container_name: alertmanager
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ../alertmanager/:/etc/alertmanager
    command:
      - '--config.file=/etc/alertmanager/config.yml' # alertmanager的配置文件
      - '--storage.path=/alertmanager' # 数据存储目录
    networks:
      - monitoring
    expose:
      - '9093'
    ports:
      - 9093:9093

  # 监控容器
  cadvisor:
    image: google/cadvisor:v0.33.0
    container_name: cadvisor
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys/:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    networks:
      - monitoring
    expose:
      - '8080'

  # 监控 linux
  node_exporter:
    image: prom/node-exporter:v1.5.0
    container_name: node-exporter
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.sysfs=/host/sys'
      - '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc|rootfs/var/lib/docker)($$|/)'
    networks:
      - monitoring
    ports:
      - '9100:9100'

  grafana:
    image: grafana/grafana:9.4.3
    container_name: grafana
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - grafana_data:/var/lib/grafana
      - ../grafana/provisioning/:/etc/grafana/provisioning/
    env_file:
      - ../grafana/config.monitoring
    networks:
      - monitoring
    links:
      - prometheus
    ports:
      - 3000:3000
    depends_on:
      - prometheus

3)运行脚本
在 /opt/prometheus/script/目录下执行命令

docker-compose up -d

4)访问

  • prometheus
http://192.168.1.110:9090
  • grafana
# 账号:admin/password
http://192.168.1.110:3000
  • alertmanager
http://192.168.1.110:9093
  • node-exporter
http://192.168.1.110:9100/metrics

至此,通过docker-compose快速搭建完成了一个prometheus环境。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值