Windows上搭建PostgreSQL监控神器:Grafana+Prometheus+Postgres_Exporter保姆级干货教程
❓想要实时掌握 PostgreSQL 数据库的运行状态想知道复制延迟、锁等待这些核心指标这里是Moshow的「CSDN https://zhengkai.blog.csdn.net/」这篇文章带你从零开始在 Windows 上搭建一套企业级的监控系统。 一、我们要搭建什么Prometheus负责采集和存储 PostgreSQL 的性能数据Grafana负责将数据以漂亮的图表展示出来postgres_exporter一个“翻译官”负责从 PostgreSQL 中提取指标并提供给 Prometheus最终效果你可以通过浏览器直观地看到 PostgreSQL 的 QPS、连接数、复制延迟、锁等待等关键指标并支持历史数据查询和告警。 二、环境准备操作系统Windows 10 / Windows Server 2016 及以上数据库已安装 PostgreSQL 9.6 及以上版本本文以 PostgreSQL 16 为例网络确保防火墙放通必要的端口见文末 三、安装 PrometheusPrometheus 是一个独立的可执行文件不需要安装下载解压即可。下载访问选择windows-amd64版本例如prometheus-最新版本号.windows-amd64.tar.gz。解压将压缩包解压到你想存放的目录比如D:\prometheus。解压后会看到prometheus.exe和prometheus.yml等文件。修改配置用记事本打开prometheus.yml找到scrape_configs部分在末尾添加下面内容用于后续抓取 postgres_exporter 的数据scrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] # ⬇️新增 PostgreSQL 监控任务占位等配置好 exporter 后启用 - job_name: postgresql static_configs: - targets: [localhost:9187]启动 Prometheus双击prometheus.exe会弹出一个命令行窗口看到Server is ready to receive web requests即表示启动成功。⚠️注意这个窗口关闭后 Prometheus 就会停止生产环境建议将其注册为 Windows 服务可使用 NSSM 工具。验证打开浏览器访问http://localhost:9090看到 Prometheus 的 Web UI 即为正常。 四、安装 GrafanaGrafana 提供 Windows 安装包一路下一步即可。下载访问选择Windows版本下载.msi安装包(或者绿色压缩包.tar.gz)。安装双击.msi文件按向导完成安装。安装后 Grafana 会自动以 Windows 服务形式在后台运行。 | 如果是下载.zip压缩包 则解压后打开即可。如果是绿色版则在bin里面找到grafana-server.exe双击打开访问 Grafana打开浏览器访问http://localhost:3000默认用户名/密码为admin/admin。登录后系统会要求你修改密码。添加 Prometheus 数据源️ 五、配置 postgres_exporter这是连接 PostgreSQL 和 Prometheus 的桥梁。下载访问下载postgres_exporter-最新版本号.windows-amd64.tar.gz。解压将文件解压到D:\postgres_exporter。创建数据库监控用户使用 pgAdmin 或 DBeaver连接到 PostgreSQL执行以下 SQL 创建专用用户(懒人做法直接用你的postgres super user生产环境不建议)CREATE USER postgres_exporter WITH PASSWORD moshow123; GRANT CONNECT ON DATABASE postgres TO postgres_exporter; GRANT pg_monitor TO postgres_exporter;关于pg_monitor权限是否足够可以参考这个~ 如果您的 PostgreSQL 版本低于 10需手动授予相关视图权限但建议升级至 10 以上。设置连接信息并启动打开命令提示符cmd执行cd D:\Software\monitoring\postgres_exporter-0.19.0.windows-amd64 set DATA_SOURCE_NAMEpostgresql://postgres_exporter:moshow123localhost:5432/postgres?sslmodedisable postgres_exporter.exe --web.listen-address:9187看到日志输出Starting Server即为成功。此时可以访问http://localhost:9187/metrics查看采集到的指标。验证 Prometheus 是否抓取回到 Prometheus Web UI点击Status→Targets找到postgresql任务状态应为UP。如果状态为 DOWN检查防火墙是否放行了 9187 端口。 六、导入 Grafana 仪表盘现在数据已经打通我们直接使用社区优秀的仪表盘模板无需自己画图。找一个合适的仪表盘推荐使用 ID 9628这个专为 postgres_exporter 设计包含复制延迟、锁监控等面板。可以到https://grafana.com/grafana/dashboards/?searchpostgres 慢慢挑选导入仪表盘查看效果仪表盘会立即显示当前数据库的各项指标。如果之前没有数据可以等几分钟后再看。收藏Dashboard如果你忘了点收藏他可能就消失了你的去Recently Viewed Dashboards里面找到他给他点个收藏一下顺便也给我点个点个吧。欣赏Dashboard七、压测先通过psql连接到目标数据库建一张简单的表用于写入CREATE TABLE random_writes ( id SERIAL PRIMARY KEY, value TEXT, created_at TIMESTAMP DEFAULT now() );测试随机生成1w条数据DO $ DECLARE i INT; -- 声明变量放在 BEGIN 之前 BEGIN FOR i IN 1..10000 LOOP INSERT INTO random_writes (value) VALUES (md5(random()::text)); PERFORM pg_sleep(0.01); -- 可选延迟 END LOOP; END $;八、总结通过以上步骤你已经拥有了一套完整的 PostgreSQL 监控系统✅ Prometheus 负责数据存储✅ Grafana 负责可视化✅ postgres_exporter 负责采集数据库指标现在你可以随时查看数据库的健康状况无论是复制延迟、死锁还是慢查询都一目了然。如果你还想监控更多的数据库只需在 prometheus.yml 中增加新的 targets 即可。-------------------------------------- Powered by Moshow 郑锴- 愿“圣码”护体bug退散 ------------------------------------- 公众号 「软件开发大百科」 CSDN https://zhengkai.blog.csdn.net GitHub https://github.com/moshowgame
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2452751.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!