ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Prometheus简介

2021-06-19 10:03:57  阅读:244  来源: 互联网

标签:-- 简介 prometheus 拉取 Prometheus 标签 configs


启动:
./prometheus --config.file=prometheus.yml
其它启动参数: --web.enable-lifecycle         启用 /reload接口(调用可以触发Prometheus配置和规则文件的重新加载) --web.max-connections=512       最大链接数 --web.read-timeout=5m               请求连接的最大等待时间, 防止太多的空闲链接,占用资源 --query.timeout=2m             查询超时时间 --query.max-concurrency=200   最大查询并发     Prometheus需要与许多其它组件集成:
  • Jobs/Exporters
部分系统直接以prometheus兼容的格式暴露数据,可以直接监控 部分系统则需通过不同的Exporter进行数据汇报,它们统一命名格式为:xx_exporter
  • Pushgateway
Prometheus采用pull模式,可能由于不在一个子网或防火墙导致无法直接拉取各target数据 可以通过client SDK或者Restful API将数据先推送到pushgateway汇总后,再由Prometheus统一收集 pushgateway可以持久化推送给它的所有监控数据 但prometheus拉取状态up只针对pushgateway,无法做到对每个节点有效。
  • 其它Prometheus Server
Prometheus Server可以从其它Prometheus Server拉取数据
  • Web UI
常用Grafana
  • Alertmanager
将相应的报警信息通过邮件或者短信的方式进行数据的一个告警。 启动时,使用--config.file参数指定一份配置文件 调用webhook程序的方法:
receivers:
- name: 'paas.web.hook'
  webhook_configs:
  - url: 'http://132.252.37.10:9156/alert'
route:
  group_interval: 5m
  group_wait: 30s
  receiver: paas.web.hook
  repeat_interval: 3h
  --config.file参数指定的prometheus.yml配置文件写法:
  • 全局配置
global:
  scrape_interval:     xxx  # 设置采集数据的时间间隔,默认是1分钟
  evaluation_interval: xxx  # 评估一次rule的时间间隔,默认是1分钟
  scrape_timeout:      xxx  # 拉取一个target的超时时间。
  evaluation_interval: xxx  # 额外的属性,会添加到拉取的数据并存到数据库中
  • Alertmanager配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - alertmanager:9093
alert_relabel_configs:动态修改 alert 属性的规则配置。 alertmanagers:用于动态发现alertmanager的配置。
  • scrape_configs
主要用于配置拉取数据节点 同一个job下可能包含很多相同类型的instance,每一个都是一个独立的数据源(target)称之为实例(instance)。
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
    - targets: ['192.168.48.130:9090'] 
job_name:任务名称 honor_labels:prometheus在采集数据的同时,会自动在时序的基础上添加job和instance的标签,作为数据源(target)的标识,以便区分。如果其中任一标签已经在此前采集的数据中存在,那么将会根据 honor_labels设置选项来决定新标签。当设置为 true,以拉取数据为准;否则以服务配置为准 params:数据拉取访问时带的请求参数 scrape_interval、scrape_timeout:会覆盖全局配置 metrics_path:拉取节点的metric路径,默认为/metrics scheme:拉取数据访问协议,如果是https,可能还需要配置证书等 sample_limit:存储的数据标签个数限制,如果超过限制,该数据将被忽略,不入存储;默认值为0,表示没有限制 tls_config:连接target使用的tls配置,包括ca_file、cert_file、key_file;或者可以通过设定insecure_skip_verify为false允许不安全的连接 relabel_configs:拉取数据重置标签配置,可以用来重置、过滤、删除标签         source_labels:源标签         target_labels:要替换的目标标签         separator:多个标签间的分隔符,默认为分号         regex:匹配源标签里的值         replacement:         modules:???         action:分为keep、replace、drop、labeldrop、labelkeep等 static_configs:直接写死targets地址 xxx__sd_configs:Prometheus在代码上就已经对Kubernetes、consul、dockerswarm、openstack等有了原生的支持,可以通过服务发现的形式来自动监控集群 以kubernetes_sd_configs为例:以role来定义,从k8s restful api检索目标,并保持与集群的同步状态。        支持的role包括:node、service、pod、endpoints、ingress        每种role取到的监控数据有不同标签,可以根据需要进行相应relabel操作,详见官方文档
  • remote_write和remote_read
  • 规则
Prometheus可以配置rules,然后定时查询数据,当条件触发的时候,会将alert推送到配置的alertmanager 可以先把规则写到独立的文件里,在把文件名写进来: rule_files:   # - "first_rules.yml"   # - "second_rules.yml" 规则文件写法:
groups:
  - name: sum
    rules:
    - record: job:up:sum
      expr: sum(up) by (job)
      lables:
        rulesName: record
每一个group包括若干条rule 每条rule包括:     alert:这一条告警的名字     expr:表达式     for:第一次告警触发后会等待若干时间     labels:向告警中添加标签     annotations:也是一系列标签,用于存放较长的信息   prometheus在localhost:9090/metrics暴露自身指标 同时在localhost:9090/graph提供了图形化接口,可以展示所有的Runtime&Build info、启动的命令行参数、配置文件、Rules、Targets、Service Discovery

标签:--,简介,prometheus,拉取,Prometheus,标签,configs
来源: https://www.cnblogs.com/yangyuliufeng/p/14902077.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有