prometheus监控告警部署

为了方便,这里使用docker-compose进行部署。

1.prometheus部署

  • docker-compose编排文件:
version: '3.2'
services:
  prom01:
    image: prom/prometheus:v2.19.3
    container_name: prom01
    hostname: prom01
    restart: on-failure
    user: root #数据映射到主机上可能需要开启root权限
    command:
      - '--web.enable-lifecycle' #开启配置reload功能
      - '--config.file=/etc/prometheus/prometheus.yml' #指定配置文件
      - '--storage.tsdb.retention.time=30d' #数据保存时间
      - '--storage.tsdb.path=/prometheus/data' #指定数据保存位置
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
    volumes:
      - ./config:/etc/prometheus
      - ./data:/prometheus/data:rw
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    ports:
      - "9090:9090"

之前部署prometheus2.20.x以上版本好像出现过一个timeout问题,然后将版本回溯到2.19.3版本。

  • config/prometheus.yml配置文件
global:
  # 默认抓取周期,可用单位ms、smhdwy #设置每15s采集数据一次,默认1分钟
  scrape_interval: 30s
  # 告警规则的执行周期 # 每15秒计算一次规则。默认1分钟
  evaluation_interval: 30s
  # 默认抓取超时
  scrape_timeout: 10s

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:  # 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口
            - 'alertmanager:9093'

# rule配置,首次读取默认加载,之后根据evaluation_interval设定的周期加载
# 联邦的情况下,子节点可以不配置<alerting>和<rule_files>,在汇总中心配置即可,
# 也可以根据需求对过滤掉的子节点监控信息进行告警配置。
rule_files:
  - "./rules/*.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  - job_name: 'prometheus' # job_name默认写入timeseries的labels中,可以用于查询使用
    scrape_interval: 30s # 抓取周期,默认采用global配置
    static_configs: # 静态配置
      - targets: ['prometheus:9090'] # prometheus所要抓取数据的地址,即instance实例项

使用docker-compose -f docker-compose.yml up -d启动容器。

2.alertmanager部署

  • docker-compose编排文件
version: '3.2'
services:
  alert01:
    image: prom/alertmanager:v0.21.0
    container_name: alert01
    hostname: alert01
    user: root
    restart: on-failure
    command:
      - '--config.file=/etc/alertmanager/alertmanager.yml'
      - '--storage.path=/etc/alertmanager/data'
    volumes:
      - ./config/alertmanager.yml:/etc/alertmanager/alertmanager.yml
      - ./config/tmpl:/etc/alertmanager/config
      - ./data:/etc/alertmanager/data:rw
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    ports:
      - "9093:9093"
  • config/alertmanager.yml配置文件
global:
  # 持续5分钟没收到告警信息后认为问题已解决
  resolve_timeout: 5m
  # smtp config
  # 发件者邮箱
  smtp_from: 'xxx@163.com'
  # 发件者的SMTP地址 'smtp.qq.com:465'
  smtp_smarthost: 'smtp.163.com:25'
  smtp_auth_username: 'xxx@163.com'
  # 邮箱专用授权码
  smtp_auth_password: 'xxxxxx'
  # 关闭tls授权
  smtp_require_tls: false
templates:
  - '/etc/alertmanager/config/*.tmpl'
# route标记:告警如何发送分配
route:
  # 定义谁来通知报警
  receiver: dev-receiver
  # 分组等待的时间
  group_wait: 30s
  # 用于定义相同的Group之间发送告警通知的时间间隔,即在队列中排队的告警,每间隔5分钟就发送出去
  group_interval: 5m
  # 重复发送告警时间。默认4h,对于email配置中,此项不可以设置过低,否则将会由于邮件发送太多频繁,被smtp服务器拒绝
  repeat_interval: 12h
  # 根据哪个标签进行分组
  group_by: [alertname]
  # 路由分组
  routes:
    # 开发组
    - receiver: dev-receiver
      group_wait: 30s
      match:
        env: dev|test  # labels匹配

#    - receiver: database-pager
#      group_wait: 10s
#      match_re:
#        service: mysql|cassandra

receivers:
  - name: dev-receiver
#    email_configs:
#      - to: 'xxx@163.com'
#        send_resolved: true
#        headers: { Subject: '[dev] 报警邮件'}
    webhook_configs:
      # 钉钉机器人告警
      - url: http://dingding-webhook:8060/dingtalk/webhook_mention_users/send
        send_resolved: true
      # 企业微信机器人告警
      # - url: http://wechat-webhook:8060/dingtalk/webhook2/send
      #   send_resolved: true
    wechat_configs:
      - send_resolved: true # 告警恢复发送
        # 企业信息(我的企业-->CorpId[在底部])
        corp_id: 'xxx'
        # 接收组的id
        to_party: '2'
        # (企业微信-->自定应用-->AgentId)
        agent_id: 'xxx'
        # 企业微信(企业微信-->自定应用-->Secret)
        api_secret: 'xxx'
        # 发送消息模板的设定,模板中定义的define字段
        # message: '{{ template 'wechat.default.message' . }}'

使用docker-compose -f docker-compose.yml up -d启动容器。

3.grafana部署

  • docker-compose编排脚本
  grafana:
    image: grafana/grafana:7.1.0
    container_name: grafana
    hostname: grafana
    restart: on-failure
    user: root
    environment:
      - "GF_AUTH_ANONYMOUS_ENABLED=true"
      - "GF_SECURITY_ALLOW_EMBEDDING=true"
      - "GF_SECURITY_ADMIN_PASSWORD=admin"
      - "TZ=Asia/Shanghai"
    volumes:
      - ./data:/var/lib/grafana:rw
    ports:
      - "3000:3000"

使用docker-compose -f docker-compose.yml up -d启动容器。

4.配置

部署成功后,登录grafana页面,在数据源里面添加prometheus就可以查看收集的指标数据了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353