prometheus使用 docker_sd_config 监控docker集群
时间: 2023-08-20 12:17:59 浏览: 236
prometheus监控平台
要使用 `docker_sd_config` 监控 Docker 集群,需要在 Prometheus 的配置文件中设置相应的服务发现规则。以下是一个示例配置文件,用于监控运行在 Docker 集群中的 Node.js 应用程序:
```yaml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'nodejs-app'
metrics_path: '/metrics'
file_sd_configs:
- files:
- /etc/prometheus/targets.json
refresh_interval: 5m
relabel_configs:
- source_labels: [__meta_docker_container_label_com_docker_swarm_service_name]
regex: '(.+)'
target_label: job
replacement: '$1'
- source_labels: [__meta_docker_container_label_com_docker_swarm_task_id]
regex: '(.+)'
target_label: instance
replacement: '$1'
- source_labels: [__address__, __meta_docker_container_label_com_docker_swarm_task_id]
regex: '([^:]+)(?::\d+)?'
target_label: __address__
replacement: '$1:3000'
- source_labels: [__meta_docker_container_label_com_docker_swarm_service_name]
regex: '(.+)'
target_label: service
replacement: '$1'
```
在上面的配置文件中,`job_name` 是 Prometheus 的作业名称,`metrics_path` 是应用程序的指标路径。`file_sd_configs` 是文件服务发现配置,指定了用于存储应用程序地址信息的 JSON 文件路径。`relabel_configs` 是标签重写配置,用于将 Docker 元数据转换为 Prometheus 标签。
注意,上面的示例配置文件假设 Node.js 应用程序运行在容器的 3000 端口上。如果你的应用程序运行在不同的端口上,请相应地更改标签重写配置。
阅读全文