前言

本文来自Prometheus官网手册 和 Prometheus简介

说明

Prometheus通过命令行和配置文件进行配置,命令行配置不能修改的系统参数(例如存储位置,要保留在磁盘和内存中的数据量等),但配置文件定义了与抓取作业及其实例相关的所有内容,以及哪些规则文件的加载。

Prometheus可以在运行时重新加载其配置。 如果新配置格式不正确,则更改将不会应用。 通过向Prometheus进程发送SIGHUP或向/-/reload端点发送HTTP POST请求(启用--web.enable-lifecycle)来触发配置重载,这还将重新加载所有已配置的规则文件。

一、配置文件

使用--config.file参数指定要加载的配置文件。该文件以YAML格式编写,由下面描述的方案定义。 括号表示参数是可选的。 对于非列表参数,该值设置为指定的默认值。

通用占位符定义如下:

  1. <boolean>:一个可以取值为true或false的布尔值
  2. <duration>:与正则表达式匹配的持续时间[-] +(ms | [smhdwy])
  3. <labelname>:与正则表达式匹配的字符串[a-zA-Z _] [a-zA-Z0- _] *
  4. <labelvalue>:一串unicode字符
  5. <filename>:当前工作目录中的有效路径
  6. <host>:由主机名或IP后跟可选端口号组成的有效字符串
  7. <path>:有效的URL路径
  8. <scheme>:一个可以取值http或https的字符串
  9. <string>:常规字符串
  10. <secret>:一个秘密的常规字符串,例如密码
  11. <tmpl_string>:在使用前进行模板扩展的字符串

其他占位符是单独指定的。可以在此处找到有效的示例文件

全局配置指定在所有其他配置上下文中有效的参数。 它们还可用作其他配置节的默认值。

  1. global:
  2. # 默认情况下抓取目标的频率.
  3. [ scrape_interval: <duration> | default = 1m ]
  4.  
  5. # 抓取超时时间.
  6. [ scrape_timeout: <duration> | default = 10s ]
  7.  
  8. # 评估规则的频率.
  9. [ evaluation_interval: <duration> | default = 1m ]
  10.  
  11. # 与外部系统通信时添加到任何时间序列或警报的标签(联合,远程存储,Alertma# nager).即添加到拉取的数据并存到数据库中
  12. external_labels:
  13. [ <labelname>: <labelvalue> ... ]
  14.  
  15. # 规则文件指定了一个globs列表.
  16. # 从所有匹配的文件中读取规则和警报.
  17. rule_files:
  18. [ - <filepath_glob> ... ]
  19.  
  20. # 抓取配置列表.
  21. scrape_configs:
  22. [ - <scrape_config> ... ]
  23.  
  24. # 警报指定与Alertmanager相关的设置.
  25. alerting:
  26. alert_relabel_configs:
  27. [ - <relabel_config> ... ]
  28. alertmanagers:
  29. [ - <alertmanager_config> ... ]
  30.  
  31. # 与远程写入功能相关的设置.
  32. remote_write:
  33. [ - <remote_write> ... ]
  34.  
  35. # 与远程读取功能相关的设置.
  36. remote_read:
  37. [ - <remote_read> ... ]

1.1 <scrape_config>

<scrape_config>指定一组描述如何抓取的目标和参数。 一般一个scrape指定单个作业。目标可以通过<static_configs>参数静态配置,也可以使用其中一种支持的服务发现机制动态发现。此外,<relabel_configs>允许在抓取之前对任何目标及其标签进行高级修改。

  1. # 默认分配给已抓取指标的job名称。
  2. job_name: <job_name>
  3.  
  4. # 从job中抓取目标的频率.
  5. [ scrape_interval: <duration> | default = <global_config.scrape_interval> ]
  6.  
  7. # 抓取此job时,每次抓取超时时间.
  8. [ scrape_timeout: <duration> | default = <global_config.scrape_timeout> ]
  9.  
  10. # 从目标获取指标的HTTP资源路径.
  11. [ metrics_path: <path> | default = /metrics ]
  12.  
  13. # honor_labels控制Prometheus如何处理已经存在于已抓取数据中的标签与Prometheus将附加服务器端的标签之间的冲突("job"和"instance"标签,手动配置的目标标签以及服务发现实现生成的标签)。
  14. # 如果honor_labels设置为"true",则通过保留已抓取数据的标签值并忽略冲突的服务器端标签来解决标签冲突。
  15. # 如果honor_labels设置为"false",则通过将已抓取数据中的冲突标签重命名为"exported_ <original-label>"(例如"exported_instance","exported_job")然后附加服务器端标签来解决标签冲突。 这对于联合等用例很有用,其中应保留目标中指定的所有标签。
  16. # 请注意,任何全局配置的"external_labels"都不受此设置的影响。 在与外部系统通信时,它们始终仅在时间序列尚未具有给定标签时应用,否则将被忽略。
  17. [ honor_labels: <boolean> | default = false ]
  18.  
  19. # 配置用于请求的协议方案.
  20. [ scheme: <scheme> | default = http ]
  21.  
  22. # 可选的HTTP URL参数.
  23. params:
  24. [ <string>: [<string>, ...] ]
  25.  
  26. # 使用配置的用户名和密码在每个scrape请求上设置`Authorization`标头。 password和password_file是互斥的。
  27. basic_auth:
  28. [ username: <string> ]
  29. [ password: <secret> ]
  30. [ password_file: <string> ]
  31.  
  32. # 使用配置的承载令牌在每个scrape请求上设置`Authorization`标头。 它`bearer_token_file`和是互斥的。
  33. [ bearer_token: <secret> ]
  34.  
  35. # 使用配置的承载令牌在每个scrape请求上设置`Authorization`标头。 它`bearer_token`和是互斥的。
  36. [ bearer_token_file: /path/to/bearer/token/file ]
  37.  
  38. # 配置scrape请求的TLS设置.
  39. tls_config:
  40. [ <tls_config> ]
  41.  
  42. # 可选的代理URL.
  43. [ proxy_url: <string> ]
  44.  
  45. # Azure服务发现配置列表.
  46. azure_sd_configs:
  47. [ - <azure_sd_config> ... ]
  48.  
  49. # Consul服务发现配置列表.
  50. consul_sd_configs:
  51. [ - <consul_sd_config> ... ]
  52.  
  53. # DNS服务发现配置列表。
  54. dns_sd_configs:
  55. [ - <dns_sd_config> ... ]
  56.  
  57. # EC2服务发现配置列表。
  58. ec2_sd_configs:
  59. [ - <ec2_sd_config> ... ]
  60.  
  61. # OpenStack服务发现配置列表。
  62. openstack_sd_configs:
  63. [ - <openstack_sd_config> ... ]
  64.  
  65. # 文件服务发现配置列表。
  66. file_sd_configs:
  67. [ - <file_sd_config> ... ]
  68.  
  69. # GCE服务发现配置列表。
  70. gce_sd_configs:
  71. [ - <gce_sd_config> ... ]
  72.  
  73. # Kubernetes服务发现配置列表。
  74. kubernetes_sd_configs:
  75. [ - <kubernetes_sd_config> ... ]
  76.  
  77. # Marathon服务发现配置列表。
  78. marathon_sd_configs:
  79. [ - <marathon_sd_config> ... ]
  80.  
  81. # AirBnB的神经服务发现配置列表。
  82. nerve_sd_configs:
  83. [ - <nerve_sd_config> ... ]
  84.  
  85. # Zookeeper Serverset服务发现配置列表。
  86. serverset_sd_configs:
  87. [ - <serverset_sd_config> ... ]
  88.  
  89. # Triton服务发现配置列表。
  90. triton_sd_configs:
  91. [ - <triton_sd_config> ... ]
  92.  
  93. # 此job的标记静态配置目标列表。
  94. static_configs:
  95. [ - <static_config> ... ]
  96.  
  97. # 目标重新标记配置列表。
  98. relabel_configs:
  99. [ - <relabel_config> ... ]
  100.  
  101. # 度量标准重新配置列表。
  102. metric_relabel_configs:
  103. [ - <relabel_config> ... ]
  104.  
  105. # 对每个将被接受的样本数量的每次抓取限制。
  106. # 如果在度量重新标记后存在超过此数量的样本,则整个抓取将被视为失败。 0表示没有限制。
  107. [ sample_limit: <int> | default = ]

其中<job_name>在所有scrape配置中必须是唯一的。

1.2 <tls_config>

tls_config允许配置TLS连接。

  1. # 用于验证API服务器证书的CA证书。
  2. [ ca_file: <filename> ]
  3.  
  4. # 用于服务器的客户端证书身份验证的证书和密钥文件。
  5. [ cert_file: <filename> ]
  6. [ key_file: <filename> ]
  7.  
  8. # ServerName扩展名,用于指示服务器的名称。
  9. # https://tools.ietf.org/html/rfc4366#section-3.1
  10. [ server_name: <string> ]
  11.  
  12. # 禁用服务器证书的验证。
  13. [ insecure_skip_verify: <boolean> ]

1.3 <azure_sd_config>

1.4 <consul_sd_config>

配置允许从Consul的Catalog API检索抓取目标(自动获取),重新标记期间,以下meta标签可用于目标:

  • __meta_consul_address:目标地址
  • __meta_consul_dc:目标的数据中心名称
  • __meta_consul_tagged_address_ <key>:每个节点标记的目标地址的键值
  • __meta_consul_metadata_ <key>:目标的每个节点元数据键值
  • __meta_consul_node:为目标定义的节点名称
  • __meta_consul_service_address:目标服务器的服务地址
  • __meta_consul_service_id:目标的服务ID
  • __meta_consul_service_metadata_ <key>:目标的每个服务元数据键值
  • __meta_consul_service_port:目标服务器的服务端口
  • __meta_consul_service:目标所属的服务的名称
  • __meta_consul_tags:由标签分隔符连接的目标的标签列表
  1. # 根据文档要求定义consul api信息
  2. [ server: <host> | default = "localhost:8500" ]
  3. [ token: <secret> ]
  4. [ datacenter: <string> ]
  5. [ scheme: <string> | default = "http" ]
  6. [ username: <string> ]
  7. [ password: <secret> ]
  8.  
  9. tls_config:
  10. [ <tls_config> ]
  11.  
  12. # 检索目标的服务列表,默认所有服务器
  13. services:
  14. [ - <string> ]
  15.  
  16. # See https://www.consul.io/api/catalog.html#list-nodes-for-service to know more about the possible filters that can be used.
  17.  
  18. #标签的可选列表,用于过滤给定服务的节点。 服务必须包含列表中的所有标签。
  19. tags:
  20. [ - <string> ]
  21.  
  22. # 节点元数据,用于过滤给定服务的节点。
  23. [ node_meta:
  24. [ <name>: <value> ... ] ]
  25.  
  26. # Consul标签通过其连接到标签标签中的字符串
  27. [ tag_separator: <string> | default = , ]
  28.  
  29. # Allow stale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul.
  30. [ allow_stale: <bool> ]
  31.  
  32. # 刷新提供的名称之后的时间,在大型设置中,增加此值可能是个好主意,因为目录会一直更改。
  33. [ refresh_interval: <duration> | default = 30s ]

注意:用于抓取目标的IP地址和端口被组装为<__ meta_consul_address>:<__ meta_consul_service_port>。 但是,在某些Consul设置中,相关地址在__meta_consul_service_address中。 在这种情况下,您可以使用重新标记功能来替换特殊的__address__标签。

重新标记阶段是基于任意标签为服务筛选服务或节点的首选且功能更强大的方法。 对于拥有数千项服务的用户,直接使用Consul API可能会更高效,该API具有基本的过滤节点支持(当前通过节点元数据和单个标签)。

1.5 <dns_sd_config>

基于DNS的服务发现配置允许指定一组DNS域名,这些域名会定期查询以发现目标列表。 要联系的DNS服务器从/etc/resolv.conf中读取。

此服务发现方法仅支持基本的DNS A,AAAA和SRV记录查询,但不支持RFC6763中指定的高级DNS-SD方法。在重新标记阶段,元标签__meta_dns_name在每个目标上可用,并设置为生成已发现目标的记录名称。

  1. # 要查询的DNS域名列表。
  2. names:
  3. [ - <domain_name> ]
  4.  
  5. # 要执行的DNS查询的类型。
  6. [ type: <query_type> | default = 'SRV' ]
  7.  
  8. # 查询类型不是SRV时使用的端口号。
  9. [ port: <number>]
  10.  
  11. # 提供名称后刷新的时间。
  12. [ refresh_interval: <duration> | default = 30s ]

其中<domain_name>是有效的DNS域名。 其中<query_type>是SRV,A或AAAA。

1.6 <openstack_sd_config>

1.7 <file_sd_config>

1.8 <dns_sd_config>

1.9 <gce_sd_config>

2.0 <kubernetes_sd_config>

2.1 <marathon_sd_config>

2.2 <nerve_sd_config>

2.3 <serverset_sd_config>

2.4 <triton_sd_config>

2.5 <static_config>

static_config允许指定目标列表和它们的公共标签集,这是在scrape配置中指定静态目标的规范方法。

  1. # 静态配置指定的目标。
  2. targets:
  3. [ - '<host>' ]
  4.  
  5. # 分配给从目标中已抓取的所有指标的标签。
  6. labels:
  7. [ <labelname>: <labelvalue> ... ]

2.6 <relabel_config>

重新标记是一种强大的工具,可以在抓取目标之前动态重写目标的标签集。 每个抓取配置可以配置多个重新标记步骤。 它们按照它们在配置文件中的出现顺序应用于每个目标的标签集。

最初,除了配置的每目标标签之外,目标的作业标签设置为相应的scrape配置的job_name值。 __address__标签设置为目标的<host>:<port>地址。 重新标记后,如果在重新标记期间未设置实例标签,则实例标签默认设置为__address__的值。 __scheme____metrics_path__标签分别设置为目标的方案和度量标准路径。 __param_ <name>标签设置为名为<name>的第一个传递的URL参数的值。

在重新标记阶段,可以使用带有__meta_前缀的附加标签。 它们由提供目标的服务发现机制设置,并在不同机制之间变化。

在目标重新标记完成后,将从标签集中删除以__开头的标签。如果重新标记步骤仅需临时存储标签值(作为后续重新标记步骤的输入),请使用__tmp标签名称前缀。 保证Prometheus本身不会使用此前缀。

  1. # 源标签从现有标签中选择值。 它们的内容使用已配置的分隔符进行连接,并与已配置的正则表达式进行匹配,以进行替换,保留和删除操作。
  2. [ source_labels: '[' <labelname> [, ...] ']' ]
  3.  
  4. # 分隔符放置在连接的源标签值之间。
  5. [ separator: <string> | default = ; ]
  6.  
  7. # 在替换操作中将结果值写入的标签。
  8. # 替换操作是强制性的。 正则表达式捕获组可用。
  9. [ target_label: <labelname> ]
  10.  
  11. # 与提取的值匹配的正则表达式。
  12. [ regex: <regex> | default = (.*) ]
  13.  
  14. # 采用源标签值的散列的模数。
  15. [ modulus: <uint64> ]
  16.  
  17. # 如果正则表达式匹配,则执行正则表达式替换的替换值。 正则表达式捕获组可用。
  18. [ replacement: <string> | default = $ ]
  19.  
  20. # 基于正则表达式匹配执行的操作。
  21. [ action: <relabel_action> | default = replace ]

<regex>是任何有效的RE2正则表达式。 它是replacekeepdroplabelmaplabeldroplabelkeep操作所必需的。 正则表达式固定在两端。 要取消锚定正则表达式,请使用。* <regex>.*

<relabel_action>确定要采取的重新签名行动:

  • replace:将regex与连接的source_labels匹配。 然后,将target_label设置为replacement,将匹配组引用(${1}${2},...)替换为其值。 如果正则表达式不匹配,则不进行替换。
  • keep:删除regex与连接的source_labels不匹配的目标。
  • drop:删除regex与连接的source_labels匹配的目标。
  • hashmod:将target_label设置为连接的source_labels的哈希模数。
  • labelmap:将regex与所有标签名称匹配。 然后将匹配标签的值复制到替换时给出的标签名称,替换为匹配组引用(${1}{2},...)替换为其值。
  • labeldrop:将regex与所有标签名称匹配。匹配的任何标签都将从标签集中删除。
  • labelkeep:将regex与所有标签名称匹配。任何不匹配的标签都将从标签集中删除。

必须小心使用labeldroplabelkeep,以确保在删除标签后仍然对指标进行唯一标记。

2.7 <metric_relabel_configs>

度量重新标记应用于样本,作为摄取前的最后一步。 它具有与目标重新标记相同的配置格式和操作。 度量标准重新标记不适用于自动生成的时间序列,例如up

一个用途是将黑名单时间序列列入黑名单,这些时间序列太昂贵而无法摄取。

2.8 <alert_relabel_configs>

警报重新标记在发送到Alertmanager之前应用于警报。 它具有与目标重新标记相同的配置格式和操作。 外部标签后应用警报重新标记。这样做的一个用途是确保具有不同外部标签的HA对Prometheus服务器发送相同的警报。

2.9 <alertmanager_config>

alertmanager_config部分指定Prometheus服务器向其发送警报的Alertmanager实例。 它还提供参数以配置如何与这些Alertmanagers进行通信。

Alertmanagers可以通过static_configs参数静态配置,也可以使用其中一种支持的服务发现机制动态发现。此外,relabel_configs允许从发现的实体中选择Alertmanagers,并对使用的API路径提供高级修改,该路径通过__alerts_path__标签公开。

  1. # 推送警报时按目标Alertmanager超时。
  2. [ timeout: <duration> | default = 10s ]
  3.  
  4. # 将推送HTTP路径警报的前缀。
  5. [ path_prefix: <path> | default = / ]
  6.  
  7. # 配置用于请求的协议方案。
  8. [ scheme: <scheme> | default = http ]
  9.  
  10. # 使用配置的用户名和密码在每个请求上设置`Authorization`标头。 password和password_file是互斥的。
  11. basic_auth:
  12. [ username: <string> ]
  13. [ password: <string> ]
  14. [ password_file: <string> ]
  15.  
  16. # 使用配置的承载令牌在每个请求上设置“Authorization”标头。 它与`bearer_token_file`互斥。
  17. [ bearer_token: <string> ]
  18.  
  19. # 使用配置的承载令牌在每个请求上设置“Authorization”标头。 它与`bearer_token`互斥。
  20. [ bearer_token_file: /path/to/bearer/token/file ]
  21.  
  22. # 配置scrape请求的TLS设置。
  23. tls_config:
  24. [ <tls_config> ]
  25.  
  26. # 可选的代理URL。
  27. [ proxy_url: <string> ]
  28.  
  29. # Azure服务发现配置列表。
  30. azure_sd_configs:
  31. [ - <azure_sd_config> ... ]
  32.  
  33. # Consul服务发现配置列表。
  34. consul_sd_configs:
  35. [ - <consul_sd_config> ... ]
  36.  
  37. # DNS服务发现配置列表。
  38. dns_sd_configs:
  39. [ - <dns_sd_config> ... ]
  40.  
  41. # ECS服务发现配置列表。
  42. ec2_sd_configs:
  43. [ - <ec2_sd_config> ... ]
  44.  
  45. # 文件服务发现配置列表。
  46. file_sd_configs:
  47. [ - <file_sd_config> ... ]
  48.  
  49. # GCE服务发现配置列表。
  50. gce_sd_configs:
  51. [ - <gce_sd_config> ... ]
  52.  
  53. # K8S服务发现配置列表。
  54. kubernetes_sd_configs:
  55. [ - <kubernetes_sd_config> ... ]
  56.  
  57. # Marathon服务发现配置列表。
  58. marathon_sd_configs:
  59. [ - <marathon_sd_config> ... ]
  60.  
  61. # AirBnB's Nerve 服务发现配置列表。
  62. nerve_sd_configs:
  63. [ - <nerve_sd_config> ... ]
  64.  
  65. # Zookepper服务发现配置列表。
  66. serverset_sd_configs:
  67. [ - <serverset_sd_config> ... ]
  68.  
  69. # Triton服务发现配置列表。
  70. triton_sd_configs:
  71. [ - <triton_sd_config> ... ]
  72.  
  73. # 标记为静态配置的Alertmanagers列表。
  74. static_configs:
  75. [ - <static_config> ... ]
  76.  
  77. # Alertmanager重新配置列表。
  78. relabel_configs:
  79. [ - <relabel_config> ... ]

3.0 <remote_write>

write_relabel_configs是在将样本发送到远程端点之前应用于样本的重新标记。 在外部标签之后应用写入重新标记。 这可用于限制发送的样本。

  1. # 要发送样本的端点的URL.
  2. url: <string>
  3.  
  4. # 对远程写端点的请求超时。
  5. [ remote_timeout: <duration> | default = 30s ]
  6.  
  7. # 远程写入重新标记配置列表。
  8. write_relabel_configs:
  9. [ - <relabel_config> ... ]
  10.  
  11. # 使用配置的用户名和密码在每个远程写请求上设置`Authorization`标头.password和password_file是互斥的。
  12. basic_auth:
  13. [ username: <string> ]
  14. [ password: <string> ]
  15. [ password_file: <string> ]
  16.  
  17. # 使用配置的承载令牌在每个远程写请求上设置`Authorization`头。 它与`bearer_token_file`互斥。
  18. [ bearer_token: <string> ]
  19.  
  20. # 使用配置的承载令牌在每个远程写请求上设置`Authorization`头。 它与`bearer_token`互斥。
  21. [ bearer_token_file: /path/to/bearer/token/file ]
  22.  
  23. # 配置远程写入请求的TLS设置。
  24. tls_config:
  25. [ <tls_config> ]
  26.  
  27. # 可选的代理URL。
  28. [ proxy_url: <string> ]
  29.  
  30. # 配置用于写入远程存储的队列。
  31. queue_config:
  32. # 在我们开始删除之前每个分片缓冲的样本数。
  33. [ capacity: <int> | default = ]
  34. # 最大分片数,即并发数。
  35. [ max_shards: <int> | default = ]
  36. # 最小分片数,即并发数。
  37. [ min_shards: <int> | default = ]
  38. # 每次发送的最大样本数。
  39. [ max_samples_per_send: <int> | default = ]
  40. # 样本在缓冲区中等待的最长时间。
  41. [ batch_send_deadline: <duration> | default = 5s ]
  42. # 在可恢复错误上重试批处理的最大次数。
  43. [ max_retries: <int> | default = ]
  44. # 初始重试延迟。 每次重试都会加倍。
  45. [ min_backoff: <duration> | default = 30ms ]
  46. # 最大重试延迟。
  47. [ max_backoff: <duration> | default = 100ms ]

有一个与此功能集成的列表。

3.1 <remote_read>

  1. # 要发送样本的端点的URL.
  2. url: <string>
  3.  
  4. # 可选的匹配器列表,必须存在于选择器中以查询远程读取端点。
  5. required_matchers:
  6. [ <labelname>: <labelvalue> ... ]
  7.  
  8. # 对远程读取端点的请求超时。
  9. [ remote_timeout: <duration> | default = 1m ]
  10.  
  11. # 本地存储应该有完整的数据。
  12. [ read_recent: <boolean> | default = false ]
  13.  
  14. # 使用配置的用户名和密码在每个远程写请求上设置`Authorization`标头.password和password_file是互斥的。
  15. basic_auth:
  16. [ username: <string> ]
  17. [ password: <string> ]
  18. [ password_file: <string> ]
  19.  
  20. # 使用配置的承载令牌在每个远程写请求上设置`Authorization`头。 它与`bearer_toke_filen`互斥。
  21. [ bearer_token: <string> ]
  22.  
  23. # 使用配置的承载令牌在每个远程写请求上设置`Authorization`头。 它与`bearer_token`互斥。
  24. [ bearer_token_file: /path/to/bearer/token/file ]
  25.  
  26. # 配置远程写入请求的TLS设置。
  27. tls_config:
  28. [ <tls_config> ]
  29.  
  30. # 可选的代理URL。
  31. [ proxy_url: <string> ]

有一个与此功能集成的列表。

二、配置模板

  1. # my global config
  2. global:
  3. scrape_interval: 15s
  4. evaluation_interval: 30s
  5. # scrape_timeout is set to the global default (10s).
  6.  
  7. external_labels:
  8. monitor: codelab
  9. foo: bar
  10.  
  11. rule_files:
  12. - "first.rules"
  13. - "my/*.rules"
  14.  
  15. remote_write:
  16. - url: http://remote1/push
  17. write_relabel_configs:
  18. - source_labels: [__name__]
  19. regex: expensive.*
  20. action: drop
  21. - url: http://remote2/push
  22.  
  23. remote_read:
  24. - url: http://remote1/read
  25. read_recent: true
  26. - url: http://remote3/read
  27. read_recent: false
  28. required_matchers:
  29. job: special
  30.  
  31. scrape_configs:
  32. - job_name: prometheus
  33.  
  34. honor_labels: true
  35. # scrape_interval is defined by the configured global (15s).
  36. # scrape_timeout is defined by the global default (10s).
  37.  
  38. # metrics_path defaults to '/metrics'
  39. # scheme defaults to 'http'.
  40.  
  41. file_sd_configs:
  42. - files:
  43. - foo/*.slow.json
  44. - foo/*.slow.yml
  45. - single/file.yml
  46. refresh_interval: 10m
  47. - files:
  48. - bar/*.yaml
  49.  
  50. static_configs:
  51. - targets: ['localhost:9090', 'localhost:9191']
  52. labels:
  53. my: label
  54. your: label
  55.  
  56. relabel_configs:
  57. - source_labels: [job, __meta_dns_name]
  58. regex: (.*)some-[regex]
  59. target_label: job
  60. replacement: foo-${1}
  61. # action defaults to 'replace'
  62. - source_labels: [abc]
  63. target_label: cde
  64. - replacement: static
  65. target_label: abc
  66. - regex:
  67. replacement: static
  68. target_label: abc
  69.  
  70. bearer_token_file: valid_token_file
  71.  
  72. - job_name: service-x
  73.  
  74. basic_auth:
  75. username: admin_name
  76. password: "multiline\nmysecret\ntest"
  77.  
  78. scrape_interval: 50s
  79. scrape_timeout: 5s
  80.  
  81. sample_limit: 1000
  82.  
  83. metrics_path: /my_path
  84. scheme: https
  85.  
  86. dns_sd_configs:
  87. - refresh_interval: 15s
  88. names:
  89. - first.dns.address.domain.com
  90. - second.dns.address.domain.com
  91. - names:
  92. - first.dns.address.domain.com
  93. # refresh_interval defaults to 30s.
  94.  
  95. relabel_configs:
  96. - source_labels: [job]
  97. regex: (.*)some-[regex]
  98. action: drop
  99. - source_labels: [__address__]
  100. modulus: 8
  101. target_label: __tmp_hash
  102. action: hashmod
  103. - source_labels: [__tmp_hash]
  104. regex: 1
  105. action: keep
  106. - action: labelmap
  107. regex: 1
  108. - action: labeldrop
  109. regex: d
  110. - action: labelkeep
  111. regex: k
  112.  
  113. metric_relabel_configs:
  114. - source_labels: [__name__]
  115. regex: expensive_metric.*
  116. action: drop
  117.  
  118. - job_name: service-y
  119.  
  120. consul_sd_configs:
  121. - server: 'localhost:1234'
  122. token: mysecret
  123. services: ['nginx', 'cache', 'mysql']
  124. tag: "canary"
  125. node_meta:
  126. rack: "123"
  127. allow_stale: true
  128. scheme: https
  129. tls_config:
  130. ca_file: valid_ca_file
  131. cert_file: valid_cert_file
  132. key_file: valid_key_file
  133. insecure_skip_verify: false
  134.  
  135. relabel_configs:
  136. - source_labels: [__meta_sd_consul_tags]
  137. separator: ','
  138. regex: label:([^=]+)=([^,]+)
  139. target_label: ${1}
  140. replacement: ${2}
  141.  
  142. - job_name: service-z
  143.  
  144. tls_config:
  145. cert_file: valid_cert_file
  146. key_file: valid_key_file
  147.  
  148. bearer_token: mysecret
  149.  
  150. - job_name: service-kubernetes
  151.  
  152. kubernetes_sd_configs:
  153. - role: endpoints
  154. api_server: 'https://localhost:1234'
  155.  
  156. basic_auth:
  157. username: 'myusername'
  158. password: 'mysecret'
  159.  
  160. - job_name: service-kubernetes-namespaces
  161.  
  162. kubernetes_sd_configs:
  163. - role: endpoints
  164. api_server: 'https://localhost:1234'
  165. namespaces:
  166. names:
  167. - default
  168.  
  169. - job_name: service-marathon
  170. marathon_sd_configs:
  171. - servers:
  172. - 'https://marathon.example.com:443'
  173.  
  174. auth_token: "mysecret"
  175. tls_config:
  176. cert_file: valid_cert_file
  177. key_file: valid_key_file
  178.  
  179. - job_name: service-ec2
  180. ec2_sd_configs:
  181. - region: us-east-1
  182. access_key: access
  183. secret_key: mysecret
  184. profile: profile
  185. filters:
  186. - name: tag:environment
  187. values:
  188. - prod
  189.  
  190. - name: tag:service
  191. values:
  192. - web
  193. - db
  194.  
  195. - job_name: service-azure
  196. azure_sd_configs:
  197. - environment: AzurePublicCloud
  198. authentication_method: OAuth
  199. subscription_id: 11AAAA11-A11A-111A-A111-1111A1111A11
  200. tenant_id: BBBB222B-B2B2-2B22-B222-2BB2222BB2B2
  201. client_id: 333333CC-3C33-3333-CCC3-33C3CCCCC33C
  202. client_secret: mysecret
  203. port: 9100
  204.  
  205. - job_name: service-nerve
  206. nerve_sd_configs:
  207. - servers:
  208. - localhost
  209. paths:
  210. - /monitoring
  211.  
  212. - job_name: 0123service-xxx
  213. metrics_path: /metrics
  214. static_configs:
  215. - targets:
  216. - localhost:9090
  217.  
  218. - job_name: 測試
  219. metrics_path: /metrics
  220. static_configs:
  221. - targets:
  222. - localhost:9090
  223.  
  224. - job_name: service-triton
  225. triton_sd_configs:
  226. - account: 'testAccount'
  227. dns_suffix: 'triton.example.com'
  228. endpoint: 'triton.example.com'
  229. port: 9163
  230. refresh_interval: 1m
  231. version: 1
  232. tls_config:
  233. cert_file: testdata/valid_cert_file
  234. key_file: testdata/valid_key_file
  235.  
  236. - job_name: service-openstack
  237. openstack_sd_configs:
  238. - role: instance
  239. region: RegionOne
  240. port: 80
  241. refresh_interval: 1m
  242. tls_config:
  243. ca_file: valid_ca_file
  244. cert_file: valid_cert_file
  245. key_file: valid_key_file
  246.  
  247. alerting:
  248. alertmanagers:
  249. - scheme: https
  250. static_configs:
  251. - targets:
  252. - "1.2.3.4:9093"
  253. - "1.2.3.5:9093"
  254. - "1.2.3.6:9093"

Prometheus学习系列(四)之Prometheus 配置说明的更多相关文章

  1. prometheus学习系列四: Prometheus详述

    数据模型 Prometheus 是将所有数据存为时序数据. 每个时序数据是由指标名称和可选的键值对(称之为标签)唯一标识. 度量类型 counter: 单调递增的计数器,如果标识已经服务的请求数量可以 ...

  2. prometheus学习系列十一: Prometheus和AlertManager的高可用

    前面的系列中, prometheus和alertmanager都是单机部署的,会有单机宕机导致系统不可用情况发生.本文主要介绍下prometheus和alertmanager的高可用方案. 服务的高可 ...

  3. prometheus学习系列十一: Prometheus 安全

    prometheus安全 我们这里说的安全主要是基本认证和https2种, 目前这2种安全在prometheus中都没有的, 需要借助第三方软件实现, 这里以nginx为例. 基本认证 配置基本认证 ...

  4. prometheus学习系列十一: Prometheus pushgateway的使用

    由于网络问题或者安全问题,可能我们的数据无法直接暴露出一个entrypoint 给prometheus采集. 这个时候可能就需要一个pushgateway来作为中间者完成中转工作.  promethe ...

  5. prometheus学习系列九: Prometheus AlertManager使用

    在Prometheus的报警系统中,是分为2个部分的, 规则是配置是在prometheus中的, prometheus组件完成报警推送给alertmanager的, alertmanager然后管理这 ...

  6. prometheus学习系列五: Prometheus配置文件

    在prometheus监控系统,prometheus的职责是采集,查询和存储和推送报警到alertmanager.本文主要介绍下prometheus的配置文件. 全局配置文件简介 默认配置文件 [ro ...

  7. prometheus学习系列十一: Prometheus exporter详解

    exporter详解 前面的系列中,我们在主机上面安装了node_exporter程序,该程序对外暴露一个用于获取当前监控样本数据的http的访问地址, 这个的一个程序成为exporter,Expor ...

  8. prometheus学习系列十一: Prometheus 采集器的编写

    在前面的文章已经写了官方的几个exporter的使用了. 在实际使用环境中,我们可能需要收集一些自定义的数据, 这个时候我们一般是需要自己编写采集器的. 快速入门编写一个入门的demo 编写代码 fr ...

  9. prometheus学习系列十一: Prometheus 报警规则配置

    prometheus监控系统的的报警规则是在prometheus这个组件完成配置的. prometheus支持2种类型的规则,记录规则和报警规则, 记录规则主要是为了简写报警规则和提高规则复用的, 报 ...

  10. prometheus学习系列十: Prometheus AlertManager配置文件说明

    alertmanager配置文件说明 alertmanager是通过命令行标记和配置文件配置的,命令行标记配置不可变的系统参数,配置文件定义抑制规则.通知路由和通知接收器.可以通过官方提供的routi ...

随机推荐

  1. windows下安装python numpy+scipy+matlotlib+scikit-learn等流行库

    (1)请不要直接使用   pip install scikit-learn pip install Numpy pip install Scipy pip install Matplotlib 命令安 ...

  2. OBS带你玩转图片

    [摘要] 图片处理特性(Image Processing)是对象存储服务(Object Storage Service,OBS)为用户提供稳定.安全.高效.易用.低成本的图片处理服务,包括:图片剪切. ...

  3. python BeautifulSoup4 获取 script 节点问题

    在爬取12306站点名时发现,BeautifulSoup检索不到station_version的节点 因为script标签在</html>之外,如果用‘lxml’解析器会忽略这一部分,而使 ...

  4. Could not resolve dependencies for project, Failed to read artifact descriptor for

    一个可能的原因是由于你的网络从局域网(比如实验室网)切换到了代理网络(比如校园公共网). 方法一:重新切换到非代理网络 办法二:repository 或 dependency 名称不对,比如新repo ...

  5. XML与JSON解析

    [XML简介] XML在线校验工具: http://tool.oschina.net/codeformat/xml 可扩展标记语言(EXtensible Markup Language) 一种标记语言 ...

  6. Linux中sed基础

    sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern spac ...

  7. Python发送邮件以及对其封装

    对Python发送邮件进行封装 Python发送邮件分为四步 连接到smtp服务器 登陆smtp服务器 准备邮件 发送邮件 导入所需要的包 import smtplib from email.mime ...

  8. 理解Vue中的nextTick

    参考博客:https://www.jianshu.com/p/a7550c0e164f

  9. 2019年Spring Boot面试都问了什么?快看看这22道面试题!

    Spring Boot 面试题 1.什么是 Spring Boot? 2.Spring Boot 有哪些优点? 3.什么是 JavaConfig? 4.如何重新加载 Spring Boot 上的更改, ...

  10. 什么是RMI?

    RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.2中实现的,它大大增强了Java开发分布式应用的能力.Java作为一种风靡一时的网络开发语言,其巨大的威 ...