k8s 下通过Prometheus监控postgresql数据库

本文档详细介绍了如何在Kubernetes环境下通过Prometheus监控PostgreSQL数据库,包括创建监控账号、配置k8s的yaml文件如postgres_exporter.yaml和prometheus.yaml,以及验证监控数据的正确性。此外,还讲述了如何在Grafana中配置面板和数据源,以展示监控数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

k8s 下通过Prometheus监控postgresql数据库,通过grafan展现

1. postgresql创建一个监控账号

postgres_exporter插件官网

非超级用户身份从视图收集指标,>= 10,您可以向用户授予或内置角色

-- To use IF statements, hence to be able to check if the user exists before
-- attempting creation, we need to switch to procedural SQL (PL/pgSQL)
-- instead of standard SQL.
-- More: https://www.postgresql.org/docs/9.3/plpgsql-overview.html
-- To preserve compatibility with <9.0, DO blocks are not used; instead,
-- a function is created and dropped.
CREATE OR REPLACE FUNCTION __tmp_create_user() returns void as $$
BEGIN
  IF NOT EXISTS (
          SELECT                       -- SELECT list can stay empty for this
          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 'XXXXX';
ALTER USER postgres_exporter SET SEARCH_PATH TO postgres_exporter,pg_catalog;

-- If deploying as non-superuser (for example in AWS RDS), uncomment the GRANT
-- line below and replace <MASTER_USER> with your root user.
-- GRANT postgres_exporter TO <MASTER_USER>;

GRANT CONNECT ON DATABASE postgres TO postgres_exporter;

2. k8s下yaml文件

1). postgres_exporter.yaml

创建一个Prometheus的 exporter


                
Kubernetes (k8s) 环境中安装 PostgreSQL 出口器 (PostgreSQL Exporter) 的目的是为了监控并收集 PostgreSQL 数据库的性能指标,然后将这些指标发送到 Prometheus 这样的监控系统,以便于用户更好地理解和管理他们的数据库集群。 以下是安装 PostgreSQL Exporter 的基本步骤: 1. **添加镜像仓库**: 首先,你需要从 PostgreSQL Exporter 的官方 GitHub 发布页面下载 Docker 镜像,或者直接通过 `docker pull` 使用官方的镜像仓库,如 `quay.io/prometheus/postgresql-exporter`。 ```bash docker pull quay.io/prometheus/postgresql-exporter ``` 2. **创建 Deployment**: 使用 Kubernetes 的 YAML 文件(比如 `postgresql-exporter-deployment.yaml`),定义一个新的 Deployment 对象来运行 exporter。这包括了镜像、副本数、资源请求等配置。 ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: postgresql-exporter spec: replicas: 1 selector: matchLabels: app: postgresql-exporter template: metadata: labels: app: postgresql-exporter spec: containers: - name: postgresql-exporter image: quay.io/prometheus/postgresql-exporter:vlatest ports: - containerPort: 9187 ``` 3. **应用部署**: 将 YAML 文件应用于 Kubernetes 集群: ```bash kubectl apply -f postgresql-exporter-deployment.yaml ``` 4. **检查状态**: 使用 `kubectl get pods` 检查 exporter 是否已经成功部署,并且处于 Running 状态。 5. **配置服务发现**: 如果你的 PostgreSQL 服务暴露在 Kubernetes 中的 Service 上,你需要确保 exporter 能够访问到它。可以通过 Service 名称或者外部 IP 来配置 exporter 的 `-service` 参数。 6. **验证数据采集**: 在 Prometheus 端确认是否已经收到了 PostgreSQL 相关的数据点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值