[prometheus]监控postgres

news/2024/12/17 23:36:26/文章来源:https://www.cnblogs.com/XY-Heruo/p/18613664

前言

相关Repo: https://github.com/prometheus-community/postgres_exporter

本文使用的postgres_exporter的版本为 0.16.0,postgres的版本为15.7

步骤

  1. 在db中创建用户并授权。
create user exporter encrypted password '123456';
ALTER user exporter SET search_path TO pg_catalog, public;
GRANT CONNECT ON DATABASE postgres TO exporter;
GRANT pg_monitor to exporter;
-- 不确定是否需要做
-- GRANT USAGE ON SCHEMA pg_catalog TO exporter;
-- GRANT SELECT ON pg_stat_statements TO exporter;
  1. (可选,建议)安装 pg_stat_statements。具体操作可查询其它文档。安装完后可以切exporter用户执行SELECT * FROM pg_stat_statements LIMIT 1; 测试 exporter 用户能否正常访问 pg_stat_statements 的视图。
  2. 启动。编写了一个脚本来启动。更多 postgres_exporter 的启动参数可以参考./postgres_exporter --help
#!/bin/bashexport DATA_SOURCE_URI="localhost:5432/postgres?sslmode=disable"
export DATA_SOURCE_USER="exporter"
export DATA_SOURCE_PASS="123456"script_dir=$(cd $(dirname $0) && pwd)
app_name="postgres_exporter"is_running() {ps -ef | grep -v grep | grep "${script_dir}/${app_name}" > /dev/nullif [ $? -eq 0 ]; thenecho "${script_dir}/${app_name} is running"return 0elseecho "${script_dir}/${app_name} is not running"return 1fi
}start_app() {is_runningif [ $? -eq 0 ]; thenreturn 0fiecho "starting ${script_dir}/${app_name}"nohup ${script_dir}/${app_name} \--collector.postmaster \--collector.stat_statements >  ${script_dir}/app.log 2>&1 &
}stop_app() {is_runningif [ $? -eq 1 ]; thenreturn 0fiecho "stopping ${script_dir}/${app_name}"kill $(ps -ef | grep -v grep | grep "${script_dir}/${app_name}" | awk '{print $2}')
}restart_app() {stop_appsleep 1start_app
}main() {if [ ! -f "${script_dir}/${app_name}" ]; thenecho "${script_dir}/${app_name} not found"filocal action=$1if [ x"$action" == "x" ]; thenlocal action="start"ficase "$action" instart)start_app;;stop)stop_app;;restart)restart_app;;status)is_running;;*)echo "Usage:  {start|stop|restart|status}"exit 1;;esac
}main $@
  1. 编辑prometheus.yml,添加收集postgres_exporter。注意替换路径
# ...
scrape_configs:- job_name: "postgres"file_sd_configs:- files: ['/etc/prometheus/sd_configs/postgres/*.yaml']refresh_interval:  10s
  1. 编辑/etc/prometheus/sd_configs/postgres/pg.yaml
- targets: ['192.168.0.201:9187']labels:instance: 192.168.0.201
  1. 发送 hup 信号给 prometheus 或重启 prometheus
  2. grafana 导入 dashboard。在grafana官网找的ID为 9628 的dashboard
  3. (可选)没事干的话,可以跑个 pgbench,观察基准测试下的 pg metrics。不过再没事干也别拿生产在用的DB跑基准测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/854574.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验6 c语言结构体 枚举应用编程

task41 #include <stdio.h>2 #define N 103 4 typedef struct {5 char isbn[20]; // isbn号6 char name[80]; // 书名7 char author[80]; // 作者8 double sales_price; // 售价9 int sales_count; // 销售册数…

Miniconda安装python和r构建vscode-jupyter

引言:就个人而言,首先本人更喜欢手动配置自己需要的东西,不想带一些不需要的包,多少有些洁癖,其次本人更喜欢一体化的去管理一个项目,miniconda正是我现在寻找的一项选择。本文仅供记录和参考软件准备及安装 Miniconda的安装Visual Studio Code的安装Miniconda的安装pyth…

vue-实现导航固定

方式一 使用fixed固定定位缺点:滚动条不好控制必须添加margin-top进行内容和主题分离方式二:局部滚动给内容设置一个固定的高度并且设置overflow-y = hidden 高度就是视口的高度减去上面两个内容的高度解决方式一的缺点

主席树学习笔记

权值线段树 就是指线段树的叶子节点保存的是当前值的个数。 权值线段树一般支持以下三个操作:inserterase/removequery贴一个alphadalao的题解。主席树 主席树,也叫做可持久化线段树,准确来说,应该叫做可持久化权值线段树,因为其中的每一颗树都是一颗权值线段树。 经典例题…

公认为信竞天才的“王神”,因热爱而专注,因专注而优秀

公认为信竞天才的“王神”,因热爱而专注,因专注而优秀 竞赛圈获封“王神”的他, 身上有无数闪闪发光的标签:六年级获 CSP-J/S 竞赛双一等奖 初二获 NOIP 竞赛一等奖 初三获全国青少年信息学奥林匹克竞赛冬令营金牌 高一获全国青少年信息学奥林匹克竞赛冬令营金牌 高一获亚太…

dp优化小结

决策单调性优化dp 很早之前看李煜东蓝书的时候被吓到了,现在来补一下。前置芝士决策单调性前提:最优化dp。通俗地讲就是每个状态只能由一个最优地状态转移而来。 决策单调性:状态的最优转移点单调,形式化地说就是。 四边形不等式:有函数 \(w(x,y)\),令 \(a\le b \le c \l…

应用题4

这道题让我们根据所给的关键词序列构造大顶堆,那我们就要知道:堆是什么 大顶堆是什么相关知识点在书的P127-133页 在讲大顶堆之前,我们先谈谈堆是什么? 堆:⑴可以用一棵完全二叉树表示⑵非终端节点与其子节点内存储的数据有优先级关系 根据堆的第二条特性,我们将堆分为小…

NOIP2023 游记

写在前面 意料之外的结局。 已经过了一个多月了啊,本来没想写的,但不写又好像少了点什么,权当记录一下三年的 OI 生活吧。 开始回忆。Day -? 高三有推荐名额!赶紧去拉人。 CCF 说没交 480 的都不能去,寄。 Day 0 没什么特别的,中午大巴去杭师大仓前,三年 NOIP 都在这里…

小程序xcxCode逆向分析

数据爬取与xcxCode逆向分析 一、声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的。不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次…

轻量高效的知识图谱RAG系统:LightRAG

LightRAG是港大Data Lab提出一种基于知识图谱结构的RAG方案,相比GraphRAG具有更快更经济的特点。 架构1 索引阶段:对文档进行切分处理,提取其中的实体和边分别进行向量化处理,存放在向量知识库 2 检索阶段:对用于输入分别提取局部和全局关键词,分别用于检索向量知识库中的…

全平台局域网(内网)数据传输工具 LoadSend

前言 不同系统的电脑、手机,文件传输有没有简单一点的方法? 手机是iPhone,电脑是Windows,如何更快捷传输文件呢? 我们最常用和用得最多的文件传输工具可能就是微信以及 QQ 了吧! 其实,如果只是在局域网内,用微信这一类聊天工具来传输文件并不算特别合适,除了可能存在的…

重要思想之《享元模式》

实际就是缓冲思想,池化思想。 比如线程池、数据库连接池、还有JDK里面也有。Integer里面toString使用享元数据 final static char[] digits = {0 , 1 , 2 , 3 , 4 , 5 ,6 , 7 , 8 , 9 , a , b ,c , d , e , f , g , h ,i , j , k , l , m , n ,o , p , q , r , s , t ,u , v ,…