从 prometheus_exporter 连接到数据库

Connecting to database from prometheus_exporter

为了在 prometheus 中收集 Postgres 指标,使用了 postgres_exporter。不使用容器化,一切都在本机完成。硬件指标通过作业收集在普罗米修斯中。要收集数据库指标,我需要将 prometheus_exporter 连接到数据库。告诉我如何配置与数据库的连接。 postgres_exporter 没有配置文件。 Ш 是否可以通过环境变量来做到这一点?

prometheus.yml:

scrape_configs:
     - job_name: postgresql
        static_configs:
          - targets: ['xx.xx.xx.xx:9187']
            labels:
              alias: postgres

Is it possible to do this via environment variables?

是的,这是可能的。以下是支持的变量列表:https://github.com/prometheus-community/postgres_exporter#environment-variables

How to configure the connection to the database

从控制台启动的简单示例:

DATA_SOURCE_NAME="user=postgres host=database.example.com" postgres_exporter

DATA_SOURCE_NAME="postgresql://user:password@host:port/dbname" postgres_exporter

如果您从分发包安装导出器,可能有一个 systemd 单元文件 运行 它作为一项服务:

# systemctl cat prometheus-postgres-exporter
# /lib/systemd/system/prometheus-postgres-exporter.service

[Unit]
Description=Prometheus PostgreSQL Exporter
Wants=network-online.target

[Service]
User=postgres
ExecStart=/usr/sbin/postgres-exporter $OPTIONS

# You can place environment variables in this file ⤋
EnvironmentFile=/etc/default/prometheus-postgres-exporter

[Install]
WantedBy=multi-user.target

DATA_SOURCE_NAME="postgresql://user:password@host:port/dbname?sslmode=disable" 最后 dbname 是必须的,以避免错误。 对于我的情况,我发现现在可以了。

DATA_SOURCE_NAME="postgresql://grafana:p@host:192.168.1.100/postgres?sslmode=disable"