# global是一些常规的全局配置,这里只列出了两个参数:
scrape_interval: 15s #每15s采集一次数据
evaluation_interval: 15s #每15s做一次告警检测
# rule_files指定加载的告警规则文件,告警规则放到下面来介绍。
# scrape_configs指定prometheus要监控的目标,这部分是最复杂的。
在scrape_config中每个监控目标是一个job,但job的类型有很多种。可以是最简单的static_config,即静态地指定每一个目标。
这里定义了一个job的名称:job_name: 'prometheus',然后定义监控节点:
static_configs:
- targets: ['localhost:9090']
这是prometheus本机的一个监控节点,可以继续扩展加入其它需要被监控的节点,例如:
- job_name: 'aliyun'
static_configs:
- targets: [‘server01:9100’,'IP:9100’,’nginxserver:9100','web006:9100’,'redis:9100','logserver:9100','redis1:9100']
可以看到targets可以并列写入多个节点,用逗号隔开,机器名+端口号,端口号主要是exporters的端口,在这里9100其实是node_exporter的默认端口。配置完成后,prometheus就可以通过配置文件识别监控的节点,持续开始采集数据,prometheus基础配置也就搭建好了。
https://blog.csdn.net/VIP099/article/details/105164980
# 全局配置
global:
scrape_interval: 15s # 多久 收集 一次数据
evaluation_interval: 30s # 多久评估一次 规则
scrape_timeout: 10s # 每次 收集数据的 超时时间
# 当Prometheus和外部系统(联邦, 远程存储, Alertmanager)通信的时候,添加标签到任意的时间序列或者报警
external_labels:
monitor: codelab
foo: bar
# 规则文件, 可以使用通配符
rule_files:
- "first.rules"
- "my/*.rules"
# 远程写入功能相关的设置
remote_write:
- url: http://remote1/push
write_relabel_configs:
- source_labels: [__name__]
regex: expensive.*
action: drop
- url: http://remote2/push
# 远程读取相关功能的设置
remote_read:
- url: http://remote1/read
read_recent: true
- url: http://remote3/read
read_recent: false
required_matchers:
job: special
# 收集数据 配置 列表
scrape_configs:
- job_name: prometheus # 必须配置, 自动附加的job labels, 必须唯一
honor_labels: true # 标签冲突, true 为以抓取的数据为准 并 忽略 服务器中的, false 为 通过重命名来解决冲突
# scrape_interval is defined by the configured global (15s).
# scrape_timeout is defined by the global default (10s).
metrics_path: '/metrics'
# scheme defaults to 'http'.
# 文件服务发现配置 列表
file_sd_configs:
- files: # 从这些文件中提取目标
- foo/*.slow.json
- foo/*.slow.yml
- single/file.yml
refresh_interval: 10m # 刷新文件的 时间间隔
- files:
- bar/*.yaml
# 使用job名作为label的 静态配置目录 的 列表
static_configs:
- targets: ['localhost:9090', 'localhost:9191']
labels:
my: label
your: label
# 目标节点 重新打标签 的配置 列表. 重新标记是一个功能强大的工具,可以在抓取目标之前动态重写目标的标签集。 可以配置多个,按照先后顺序应用
relabel_configs:
- source_labels: [job, __meta_dns_name] # 从现有的标签中选择源标签, 最后会被 替换, 保持, 丢弃
regex: (.*)some-[regex] # 正则表达式, 将会提取source_labels中匹配的值
target_label: job # 在替换动作中将结果值写入的标签.
replacement: foo-${1} # 如果正则表达匹配, 那么替换值. 可以使用正则表达中的 捕获组
# action defaults to 'replace'
- source_labels: [abc] # 将abc标签的内容复制到cde标签中
target_label: cde
- replacement: static
target_label: abc
- regex:
replacement: static
target_label: abc
bearer_token_file: valid_token_file # 可选的, bearer token 文件的信息
- job_name: service-x
# HTTP basic 认证信息
basic_auth:
username: admin_name
password: "multiline\nmysecret\ntest"
scrape_interval: 50s # 对于该job, 多久收集一次数据
scrape_timeout: 5s
sample_limit: 1000 # 每次 收集 样本数据的限制. 0 为不限制
metrics_path: /my_path # 从目标 获取数据的 HTTP 路径
scheme: https # 配置用于请求的协议方案
# DNS 服务发现 配置列表
dns_sd_configs:
- refresh_interval: 15s
names: # 要查询的DNS域名列表
- first.dns.address.domain.com
- second.dns.address.domain.com
- names:
- first.dns.address.domain.com
# refresh_interval defaults to 30s.
# 目标节点 重新打标签 的配置 列表
relabel_configs:
- source_labels: [job]
regex: (.*)some-[regex]
action: drop
- source_labels: [__address__]
modulus: 8
target_label: __tmp_hash
action: hashmod
- source_labels: [__tmp_hash]
regex: 1
action: keep
- action: labelmap
regex: 1
- action: labeldrop
regex: d
- action: labelkeep
regex: k
# metric 重新打标签的 配置列表
metric_relabel_configs:
- source_labels: [__name__]
regex: expensive_metric.*
action: drop
- job_name: service-y
# consul 服务发现 配置列表
consul_sd_configs:
- server: 'localhost:1234' # consul API 地址
token: mysecret
services: ['nginx', 'cache', 'mysql'] # 被检索目标的 服务 列表. 如果不定义那么 所有 服务 都会被 收集
scheme: https
tls_config:
ca_file: valid_ca_file
cert_file: valid_cert_file
key_file: valid_key_file
insecure_skip_verify: false
relabel_configs:
- source_labels: [__meta_sd_consul_tags]
separator: ','
regex: label:([^=]+)=([^,]+)
target_label: ${1}
replacement: ${2}
- job_name: service-z
# 收集 数据的 TLS 设置
tls_config:
cert_file: valid_cert_file
key_file: valid_key_file
bearer_token: mysecret
- job_name: service-kubernetes
# kubernetes 服务 发现 列表
kubernetes_sd_configs:
- role: endpoints # 必须写, 必须是endpoints, service, pod, node, 或者 ingress
api_server: 'https://localhost:1234'
basic_auth: # HTTP basic 认证信息
username: 'myusername'
password: 'mysecret'
- job_name: service-kubernetes-namespaces
kubernetes_sd_configs:
- role: endpoints # 应该被发现的 kubernetes 对象 实体
api_server: 'https://localhost:1234' # API Server的地址
namespaces: # 可选的命名空间发现, 如果省略 那么所有的命名空间都会被使用
names:
- default
- job_name: service-marathon
# Marathon 服务发现 列表
marathon_sd_configs:
- servers:
- 'https://marathon.example.com:443'
tls_config:
cert_file: valid_cert_file
key_file: valid_key_file
- job_name: service-ec2
ec2_sd_configs:
- region: us-east-1
access_key: access
secret_key: mysecret
profile: profile
- job_name: service-azure
azure_sd_configs:
- subscription_id: 11AAAA11-A11A-111A-A111-1111A1111A11
tenant_id: BBBB222B-B2B2-2B22-B222-2BB2222BB2B2
client_id: 333333CC-3C33-3333-CCC3-33C3CCCCC33C
client_secret: mysecret
port: 9100
- job_name: service-nerve
nerve_sd_configs:
- servers:
- localhost
paths:
- /monitoring
- job_name: 0123service-xxx
metrics_path: /metrics
static_configs:
- targets:
- localhost:9090
- job_name: 測試
metrics_path: /metrics
static_configs:
- targets:
- localhost:9090
- job_name: service-triton
triton_sd_configs:
- account: 'testAccount'
dns_suffix: 'triton.example.com'
endpoint: 'triton.example.com'
port: 9163
refresh_interval: 1m
version: 1
tls_config:
cert_file: testdata/valid_cert_file
key_file: testdata/valid_key_file
# Alertmanager相关的配置
alerting:
alertmanagers:
- scheme: https
static_configs:
- targets:
- "1.2.3.4:9093"
- "1.2.3.5:9093"
- "1.2.3.6:9093"
https://www.cnblogs.com/liujiliang/p/10080849.html
# global是一些常规的全局配置,这里只列出了两个参数:scrape_interval: 15s #每15s采集一次数据evaluation_interval: 15s #每15s做一次告警检测 # rule_files指定加载的告警规则文件,告警规则放到下面来介绍。 # scrape_configs指定prometheus要监控的目标,这部分是最复杂的。 在scrape_config中每个监控目标是一个job,但job的类型有很多种。可以是最简单的s.
基于static_configs进行服务发现
[root@k8s-harbor1
prometheus
]#vim
prometheus
.
yml
# Sample config for
Prometheus
.
global:
scrape_interval: 15s #将数据收集间隔时间设置为每15秒一次。默认为每1分钟一次。
evaluation_interval: 15s #规则扫描间隔时间,每15秒评估一次规则。默认为每1分钟一次。
# scrape_timeout is set
环境部署完成以后,我们就需要对产品进行稳定性监控。在知道怎么监控收集数据之前,我们需要知道
prometheus
的
配置文件
和核心功能首先我们从针对
prometheus
的全局文件进行说起,首先进入
prometheus
的存放的包的路径。以本文为例。
进入以后,通过ls命令是可以看到一个
prometheus
.
yml
的文件
然后打开
配置文件
,我们可以获取如下内容,重点内容注释详情如下红色标注部分,也可以参考官方文档中的
配置文件
说明:https://
prometheus
.io/docs/
prometheus
/lates
scrape_interval: 15s # 多久 收集 一次数据
evaluation_interval: 30s # 多久评估一次 规则
scrape_timeout: 10s # 每次 收集数据的 超时时间
# 当Promethe...
Prometheus
启动的时候,可以加载运行
参数
-config.file指定
配置文件
,默认为
prometheus
.
yml
。在
配置文件
中我们可以指定 global, alerting, rule_files, scrape_configs, remote_write, remote_read 等属性。
Prometheus
的
配置文件
是YAML格式。
Prometheus
的解压包里自带了一个默认的
配置文件
prometheus
.
yml
。让我们来看一下:
global:
scrape_....
在 `
prometheus
.
yml
` 中,可以使用一些技巧来简化 `targets` 配置的编写。
1. 使用 `relabel_configs` 对标签进行重命名和过滤,以便更方便地对 `targets` 进行选择。例如,可以使用以下配置将 `job` 标签的值从 `node` 更改为 `my-node-exporter`:
```yaml
relabel_configs:
- source_labels: [job]
target_label: job
regex: node
replacement: my-node-exporter
2. 使用 `file_sd_config` 和 `targets` 文件来动态生成 `targets` 配置。这可以是一个便利的方法,特别是当你的主机数量很大的时候。例如,可以创建一个名为 `targets.json` 的文件,如下所示:
```json
"targets": ["node1.example.com:9100"],
"labels": {
"job": "my-node-exporter",
"environment": "production"
"targets": ["node2.example.com:9100"],
"labels": {
"job": "my-node-exporter",
"environment": "test"
然后在 `
prometheus
.
yml
` 中添加以下配置:
```yaml
file_sd_configs:
- files:
- targets.json
这将自动将 `targets.json` 中的目标添加到 `targets` 中。
3. 使用 `relabel_configs` 和 `file_sd_config` 的组合,可以更灵活地过滤和重命名目标。例如,可以使用以下配置仅选择 `environment` 标签为 `production` 的目标:
```yaml
file_sd_configs:
- files:
- targets.json
relabel_configs:
- source_labels: [environment]
regex: production
action: keep
- action: drop
这将删除任何 `environment` 标签不为 `production` 的目标。
mac IDEA java 没有javap 安装 The operation couldn’t be completed. Unable to locate a Java Runtime.
30419