轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
prometheuscommunity/postgres-exporter
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

postgres-exporter Docker 镜像下载 - 轩辕镜像

postgres-exporter 镜像详细信息和使用指南

postgres-exporter 镜像标签列表和版本信息

postgres-exporter 镜像拉取命令和加速下载

postgres-exporter 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

postgres-exporter
prometheuscommunity/postgres-exporter

postgres-exporter 镜像详细信息

postgres-exporter 镜像标签列表

postgres-exporter 镜像使用说明

postgres-exporter 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Prometheus社区维护的PostgreSQL数据库指标导出器,用于收集PostgreSQL性能指标并暴露给Prometheus监控系统。
18 收藏0 次下载activeprometheuscommunity镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

postgres-exporter 镜像详细说明

postgres-exporter 使用指南

postgres-exporter 配置说明

postgres-exporter 官方文档

PostgreSQL Server Exporter

镜像概述和主要用途

PostgreSQL Server Exporter是一个Prometheus exporter,用于收集PostgreSQL服务器的指标。它能够从PostgreSQL数据库实例中提取各种性能和状态指标,并以Prometheus可抓取的格式暴露这些指标,便于监控和告警。

CI测试过的PostgreSQL版本:13、14、15、16、17。

核心功能和特性

  • 收集多种PostgreSQL性能指标,包括数据库统计、连接数、复制状态、锁信息等
  • 支持通过环境变量或配置文件配置数据库连接
  • 多目标支持(BETA),可从单个exporter实例监控多个PostgreSQL实例
  • 可配置的指标收集器,支持启用/禁用特定指标集
  • 支持TLS和基本身份验证保护指标端点
  • 容器化部署,使用非root用户运行,增强安全性

使用场景和适用范围

  • PostgreSQL数据库服务器的性能监控
  • 数据库健康状态检查和告警
  • 性能瓶颈分析和容量规划
  • 多数据库实例集中监控
  • 云环境或容器化环境中的PostgreSQL监控

详细的使用方法和配置说明

快速开始

该软件包提供Docker镜像:

# 启动示例数据库
docker run --net=host -it --rm -e POSTGRES_PASSWORD=password postgres

# 连接到数据库
docker run \
  --net=host \
  -e DATA_SOURCE_URI="localhost:5432/postgres?sslmode=disable" \
  -e DATA_SOURCE_USER=postgres \
  -e DATA_SOURCE_PASS=password \
  quay.io/prometheuscommunity/postgres-exporter

测试指标暴露:

curl "http://localhost:9187/metrics"

Prometheus配置示例:

scrape_configs:
  - job_name: postgres
    static_configs:
      - targets: ["127.0.0.1:9187"]  # 如果在独立网络中运行容器,请将IP替换为docker容器的主机名

建议使用DATA_SOURCE_PASS_FILE配合挂载文件来存储密码,避免将密码存储在环境变量中。容器进程使用uid/gid 65534运行(对文件权限很重要)。

多目标支持(BETA)

此功能处于测试阶段,未来版本可能会有变化。欢迎提供反馈。

该exporter支持多目标模式。这允许运行单个exporter实例来监控多个PostgreSQL目标。此功能是可选的,适用于无法将exporter作为sidecar安装的场景,例如SaaS托管服务。

要使用多目标功能,向端点/probe?target=foo:5432发送HTTP请求,其中target设置为要抓取指标的PostgreSQL实例的DSN。

为避免在URL中包含用户名和密码等敏感信息,通过配置文件的auth_modules部分支持预配置的身份验证模块。通过指定?auth_module=fooHTTP参数,可以在/probe端点使用DSN的auth_modules。

Prometheus配置示例:

scrape_configs:
  - job_name: 'postgres'
    static_configs:
      - targets:
        - server1:5432
        - server2:5432
    metrics_path: /probe
    params:
      auth_module: [foo]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9116  # postgres exporter的实际主机名:端口

配置文件

配置文件控制exporter的行为。可以使用--config.file命令行标志设置,默认为postgres_exporter.yml。

auth_modules

此部分定义用于多目标端点的预设身份验证和连接参数。auth_modules是模块映射,键是可在/probe端点中使用的标识符。目前仅支持userpass类型。

示例:

auth_modules:
  foo1:  # 可设置为任何名称
    type: userpass
    userpass:
      username: first
      password: firstpass
    options:
      # 选项将成为DSN的key=value参数
      sslmode: disable

构建和运行

git clone [***]
cd postgres_exporter
make build
./postgres_exporter <flags>

构建Docker镜像:

make promu
promu crossbuild -p linux/amd64 -p linux/armv7 -p linux/arm64 -p linux/ppc64le
make docker

这将构建名为prometheuscommunity/postgres_exporter:${branch}的Docker镜像。

命令行标志

标志描述
help显示上下文相关帮助(也可尝试--help-long和--help-man)
[no-]collector.database启用database收集器(默认:启用)
[no-]collector.database_wraparound启用database_wraparound收集器(默认:禁用)
[no-]collector.locks启用locks收集器(默认:启用)
[no-]collector.long_running_transactions启用long_running_transactions收集器(默认:禁用)
[no-]collector.postmaster启用postmaster收集器(默认:禁用)
[no-]collector.process_idle启用process_idle收集器(默认:禁用)
[no-]collector.replication启用replication收集器(默认:启用)
[no-]collector.replication_slot启用replication_slot收集器(默认:启用)
[no-]collector.stat_activity_autovacuum启用stat_activity_autovacuum收集器(默认:禁用)
[no-]collector.stat_bgwriter启用stat_bgwriter收集器(默认:启用)
[no-]collector.stat_database启用stat_database收集器(默认:启用)
[no-]collector.stat_progress_vacuum启用stat_progress_vacuum收集器(默认:启用)
[no-]collector.stat_statements启用stat_statements收集器(默认:禁用)
[no-]collector.stat_statements.include_query启用选择语句查询和queryId(默认:禁用)
--collector.stat_statements.query_length语句文本的最大长度,默认120
[no-]collector.stat_user_tables启用stat_user_tables收集器(默认:启用)
[no-]collector.stat_wal_receiver启用stat_wal_receiver收集器(默认:禁用)
[no-]collector.statio_user_indexes启用statio_user_indexes收集器(默认:禁用)
[no-]collector.statio_user_tables启用statio_user_tables收集器(默认:启用)
[no-]collector.wal启用wal收集器(默认:启用)
[no-]collector.xlog_location启用xlog_location收集器(默认:禁用)
config.file设置配置文件路径,默认为postgres_exporter.yml
web.systemd-socket使用systemd套接字激活监听器代替端口监听器(仅限Linux),默认false
web.listen-addressWeb界面和遥测的监听地址,默认:9187
web.config.file用于TLS和/或基本身份验证的配置文件
web.telemetry-path暴露指标的路径,默认/metrics
disable-default-metrics仅使用--extend.query-path提供的指标,默认false
disable-settings-metrics不抓取pg_settings,默认false
auto-discover-databases (DEPRECATED)是否动态发现服务器上的数据库,默认false
extend.query-path (DEPRECATED)包含自定义查询的YAML文件路径
dumpmaps不运行,打印指标映射的内部表示,调试自定义查询文件时有用
constantLabels (DEPRECATED)所有指标中设置的标签,label=value对的列表,用逗号分隔
version显示应用程序版本
exclude-databases (DEPRECATED)启用autoDiscoverDatabases时要排除的数据库列表
include-databases (DEPRECATED)启用autoDiscoverDatabases时仅包含的数据库列表
log.level设置日志级别:debug、info、warn、error之一
log.format设置日志格式:logfmt、json之一

环境变量

以下环境变量用于配置exporter:

环境变量描述
DATA_SOURCE_NAME默认的传统格式,接受URI形式和key=value形式的参数,URI可包含连接的用户名和密码
DATA_SOURCE_URIDATA_SOURCE_NAME的替代方案,仅接受不含用户名和密码的主机名,例如my_pg_hostname或my_pg_hostname:5432/postgres?sslmode=disable
DATA_SOURCE_URI_FILE与上述相同,但从文件读取URI
DATA_SOURCE_USER使用DATA_SOURCE_URI时,用于指定用户名
DATA_SOURCE_USER_FILE与上述相同,但从文件读取用户名
DATA_SOURCE_PASS使用DATA_SOURCE_URI时,用于指定连接密码
DATA_SOURCE_PASS_FILE与上述相同,但从文件读取密码
PG_EXPORTER_WEB_TELEMETRY_PATH暴露指标的路径,默认/metrics
PG_EXPORTER_DISABLE_DEFAULT_METRICS仅使用queries.yaml提供的指标,值为true或false,默认false
PG_EXPORTER_DISABLE_SETTINGS_METRICS不抓取pg_settings,值为true或false,默认false
PG_EXPORTER_AUTO_DISCOVER_DATABASES (DEPRECATED)是否动态发现服务器上的数据库,值为true或false,默认false
PG_EXPORTER_EXTEND_QUERY_PATH包含自定义查询的YAML文件路径
PG_EXPORTER_CONSTANT_LABELS (DEPRECATED)所有指标中设置的标签,label=value对的列表,用逗号分隔
PG_EXPORTER_EXCLUDE_DATABASES (DEPRECATED)启用autoDiscoverDatabases时要排除的数据库逗号分隔列表,默认为空字符串
PG_EXPORTER_INCLUDE_DATABASES (DEPRECATED)启用autoDiscoverDatabases时仅包含的数据库逗号分隔列表,默认为空字符串,表示允许所有
PG_EXPORTER_METRIC_PREFIXpostgres-exporter导出的每个默认指标使用的前缀,默认为pg

以PG_开头的环境变量设置的配置,如果给定了相应的CLI标志,将被CLI标志覆盖。

设置PostgreSQL服务器的数据源名称

PostgreSQL服务器的数据源名称必须通过DATA_SOURCE_NAME环境变量设置。

对于在默认Debian/Ubuntu安装上本地运行,以下命令将起作用(可相应地转换为init脚本):

sudo -u postgres DATA_SOURCE_NAME="user=postgres host=/var/run/postgresql/ sslmode=disable" postgres_exporter

此外,可以设置源列表以从一个exporter设置中抓取不同的实例。只需定义一个逗号分隔的字符串:

sudo -u postgres DATA_SOURCE_NAME="port=5432,port=6432" postgres_exporter

有关格式化连接字符串的其他方式,请参见github.com/lib/pq模块。

以非超级用户身份运行

要能够以非超级用户身份从PostgreSQL服务器版本>=10的pg_stat*视图收集指标,可以将pg_monitor或pg_read_all_stats内置角色授予该用户。如果需要监控较旧的PostgreSQL服务器,必须以超级用户身份创建函数和视图,并单独为这些用户分配权限。

-- 要使用IF语句,因此能够在尝试创建用户之前检查用户是否存在,
-- 我们需要切换到过程SQL(PL/pgSQL)而不是标准SQL。
-- 更多信息:[***]
-- 为了保持与<9.0的兼容性,不使用DO块;而是创建并删除一个函数。
CREATE OR REPLACE FUNCTION __tmp_create_user() returns void as $$
BEGIN
  IF NOT EXISTS (
          SELECT                       -- 为此,SELECT列表可以为空
          FROM   pg_catalog.pg_user
          WHERE  usename = 'postgres_exporter') THEN
    CREATE USER postgres_exporter;
  END IF;
END;
$$ language plpgsql;

SELECT __tmp_create_user();
DROP FUNCTION __tmp_create_user();

ALTER USER postgres_exporter WITH PASSWORD 'password';
ALTER USER postgres_exporter SET SEARCH_PATH TO postgres_exporter,pg_catalog;

-- 如果以非超级用户部署(例如在AWS RDS中),取消下面的GRANT行注释并将<MASTER_USER>替换为您的root用户。
-- GRANT postgres_exporter TO <MASTER_USER>;

GRANT CONNECT ON DATABASE postgres TO postgres_exporter;

如果使用PostgreSQL版本>=10,运行以下命令:

GRANT pg_monitor to postgres_exporter;

仅当使用早于10的PostgreSQL版本时,运行以下SQL命令。在PostgreSQL中,视图以创建它们的用户的权限运行,因此它们可以充当安全屏障。需要创建函数来与非超级用户共享此数据。仅创建视图会遗漏最重要的数据位。

CREATE SCHEMA IF NOT EXISTS postgres_exporter;
GRANT USAGE ON SCHEMA postgres_exporter TO postgres_exporter;

CREATE OR REPLACE FUNCTION get_pg_stat_activity() RETURNS SETOF pg_stat_activity AS
$$ SELECT * FROM pg_catalog.pg_stat_activity; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;

CREATE OR REPLACE VIEW postgres_exporter.pg_stat_activity
AS
  SELECT * from get_pg_stat_activity();

GRANT SELECT ON postgres_exporter.pg_stat_activity TO postgres_exporter;

CREATE OR REPLACE FUNCTION get_pg_stat_replication() RETURNS SETOF pg_stat_replication AS
$$ SELECT * FROM pg_catalog.pg_stat_replication; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;

CREATE OR REPLACE VIEW postgres_exporter.pg_stat_replication
AS
  SELECT * FROM get_pg_stat_replication();

GRANT SELECT ON postgres_exporter.pg_stat_replication TO postgres_exporter;

CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE OR REPLACE FUNCTION get_pg_stat_statements() RETURNS SETOF pg_stat_statements AS
$$ SELECT * FROM public.pg_stat_statements; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;

CREATE OR REPLACE VIEW postgres_exporter.pg_stat_statements
AS
  SELECT * FROM get_pg_stat_statements();

GRANT SELECT ON postgres_exporter.pg_stat_statements TO postgres_exporter;

注意
请记住在连接字符串中使用postgres数据库名称:

DATA_SOURCE_NAME=postgresql://postgres_exporter:password@localhost:5432/postgres?sslmode=disable

Docker部署方案示例

使用docker run部署

基本部署:

docker run -d \
  --name postgres-exporter \
  -p 9187:9187 \
  -e DATA_SOURCE_URI="postgres:5432/postgres?sslmode=disable" \
  -e DATA_SOURCE_USER=postgres_exporter \
  -e DATA_SOURCE_PASS=secure_password \
  quay.io/prometheuscommunity/postgres-exporter

使用密码文件部署:

# 创建密码文件
echo "secure_password" > /path/to/passfile
chmod 600 /path/to/passfile

# 运行容器,挂载密码文件
docker run -d \
  --name postgres-exporter \
  -p 9187:9187 \
  -e DATA_SOURCE_URI="postgres:543
查看更多 postgres-exporter 相关镜像 →
bitnami/postgres-exporter logo
bitnami/postgres-exporter
by VMware
认证
Bitnami提供的安全镜像,用于部署postgres-exporter,可将PostgreSQL数据库指标导出至监控系统,具备安全加固特性。
1950M+ pulls
上次更新:2 天前
bitnamilegacy/postgres-exporter logo
bitnamilegacy/postgres-exporter
by bitnamilegacy
旧版Bitnami镜像(已停止更新)
50K+ pulls
上次更新:2 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.