Bet*_*ics 4 metrics prometheus traefik
如果我想使用 Prometheus 捕获 Traefik 的指标,则只有在激活 insecure= true 时才有效。如果我设置 insecure=false 我会得到 404。也许有人有一个正确配置的示例。那么Traefik(V2.0 CLI)和prometheus.yml的配置。
traefik.yml 命令部分:
command:
- "--metrics=true"
- "--metrics.prometheus=true"
- "--metrics.prometheus.buckets=0.100000, 0.300000, 1.200000, 5.000000"
- "--metrics.prometheus.entrypoint='metrics'"
- "--metrics.prometheus.addEntryPointsLabels=true"
- "--metrics.prometheus.addServicesLabels=true"
- "--api=true"
- "--api.dashboard=true"
- "--log.level=INFO"
- "--providers.docker=true"
- "--providers.docker.swarmmode=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesResolvers.sec.acme.email=foo@bar.com"
- "--certificatesResolvers.sec.acme.storage=/letsencrypt/acme.json"
- "--certificatesResolvers.sec.acme.httpChallenge.entryPoint=web"
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
- "traefik.http.routers.api.rule=Host(`foo.bar`)"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.middlewares=myauth"
- "traefik.http.services.api.loadbalancer.server.port=8080"
- "traefik.http.routers.api.tls.certresolver=sec"
- "traefik.http.middlewares.myauth.basicauth.users=xxx"
Run Code Online (Sandbox Code Playgroud)
普罗米修斯.yml:
global:
scrape_interval: 10s
scrape_timeout: 10s
scrape_configs:
- job_name: 'pushgateway'
static_configs:
- targets: ['pushgateway:9091']
honor_labels: true
- job_name: 'traefik'
scheme: https
static_configs:
- targets: ['foo.bar']
basic_auth:
username: myusername
password: mypassword
Run Code Online (Sandbox Code Playgroud)
如果你在 docker 中,首先暴露 8082 端口。
并在启动 Traefik 时添加这些命令。
--metrics.prometheus=true
--metrics.prometheus.entryPoint=metrics
--entryPoints.metrics.address=:8082
Run Code Online (Sandbox Code Playgroud)
访问该指标domain:8082/metrics
如果您还添加以下标签,它将允许您访问 上的指标traefikmetrics.mydomain.com/metrics。您需要根据您的设置填写尖括号中的值。
traefik.http.routers.traefikmetrics.entrypoints: <http or https entrypoint>
traefik.http.routers.traefikmetrics.rule: Host(`traefikmetrics.mydomain.com`)
traefik.http.services.<traefik-service-name>.loadbalancer.server.port: 8082
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14643 次 |
| 最近记录: |