ongres/prometheus-postgres-exporterPostgreSQL Prometheus Exporter OCI镜像是一个遵循OCI(开放容器倡议)标准的容器化工具,旨在从PostgreSQL数据库实例中采集关键指标(如连接数、查询性能、锁状态、资源使用率等),并将其转换为Prometheus监控系统可识别的格式,通过HTTP端点暴露供Prometheus抓取。该镜像轻量、易配置,可无缝集成到基于Prometheus的监控体系中,适用于各类PostgreSQL部署环境(包括物理机、虚拟机及容器化环境)。
/metrics HTTP端点,返回符合Prometheus文本格式的指标数据,支持Prometheus自动发现和抓取。postgresql://user:password@host:port/dbname)配置,兼容多种认证方式(密码、SSL等)。通过docker run命令快速启动 exporter,核心配置通过环境变量传递:
bashdocker run -d \ --name postgres-exporter \ -p 9187:9187 \ # 默认监听端口9187 -e DATA_SOURCE_NAME="postgresql://user:password@postgres-host:5432/dbname?sslmode=disable" \ # PostgreSQL连接串 -e LISTEN_PORT=9187 \ # 监听端口(可选,默认9187) -e LISTEN_ADDRESS="0.0.0.0" \ # 监听地址(可选,默认0.0.0.0) prometheuscommunity/postgres-exporter:latest
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
DATA_SOURCE_NAME | PostgreSQL连接串,格式:postgresql://user:password@host:port/dbname?option=value | 无(必填) |
LISTEN_ADDRESS | 服务监听地址 | 0.0.0.0 |
LISTEN_PORT | 服务监听端口 | 9187 |
PG_EXPORTER_CONFIG_FILE | 自定义配置文件路径(若使用文件配置,需挂载配置文件至容器内路径) | 无 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
在容器化应用中,可通过docker-compose.yml集成 exporter 与 PostgreSQL:
yamlversion: '3.8' services: postgres: image: postgres:14 environment: POSTGRES_USER: dbuser POSTGRES_PASSWORD: dbpass POSTGRES_DB: appdb ports: - "5432:5432" postgres-exporter: image: prometheuscommunity/postgres-exporter:latest ports: - "9187:9187" environment: DATA_SOURCE_NAME: "postgresql://dbuser:dbpass@postgres:5432/appdb?sslmode=disable" depends_on: - postgres
对于复杂指标采集需求(如自定义指标、过滤特定指标等),可通过配置文件定义采集规则。配置文件为YAML格式,示例:
yaml# postgres_exporter.yml refresh_interval: 5s # 指标采集间隔 metrics: - name: pg_custom_query_seconds help: "Duration of custom query execution" type: gauge query: "SELECT EXTRACT(EPOCH FROM NOW() - query_start) AS duration FROM pg_stat_activity WHERE state = 'active'" columns: - name: duration usage: "value"
启动容器时挂载配置文件:
bashdocker run -d \ --name postgres-exporter \ -p 9187:9187 \ -e DATA_SOURCE_NAME="postgresql://user:password@postgres-host:5432/dbname?sslmode=disable" \ -e PG_EXPORTER_CONFIG_FILE="/etc/postgres-exporter/postgres_exporter.yml" \ -v ./postgres_exporter.yml:/etc/postgres-exporter/postgres_exporter.yml \ prometheuscommunity/postgres-exporter:latest
启动后,通过访问 http://<exporter-ip>:9187/metrics 验证指标是否正常暴露,响应应包含以 pg_ 为前缀的Prometheus指标(如 pg_stat_database_numbackends、pg_locks_count 等)。
pg_monitor角色),以访问pg_stat_*等系统视图。sslmode=require),避免明文传输凭据。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务