当前位置: 首页 > news >正文

部署postgresql_exporter监控pgsql

  • 部署exporter
  • 配置监控job
  • 配置告警规则

一键部署脚本

#!/bin/bash# 定义变量
PG_HOST="xx.ap-southeast-1.rds.amazonaws.com"
PG_PORT="5432"
PG_PASSWORD="bagayalu321"
PG_USER="monitor_user"
EXPORTER_VERSION="0.16.0"  # PostgreSQL exporter版本# 安装PostgreSQL客户端
echo "正在安装PostgreSQL客户端..."
apt-get update
apt-get install -y postgresql-client# 测试连接到PostgreSQL服务器
echo "测试PostgreSQL连接..."
PGPASSWORD=$PG_PASSWORD psql -h $PG_HOST -p $PG_PORT -U $PG_USER -c "SELECT version();"# 创建授权用户(这部分您已经完成,但为完整性保留)
cat > /tmp/create_user.sql << EOF
CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD';
GRANT pg_monitor TO $PG_USER;
GRANT SELECT ON pg_stat_database TO $PG_USER;
EOFecho "注意:用户创建部分仅供参考,您已经完成此步骤"# 下载并安装Prometheus PostgreSQL exporter
echo "安装Prometheus PostgreSQL exporter..."# 创建用户
useradd --no-create-home --shell /bin/false postgres_exporter# 下载Prometheus PostgreSQL exporter
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v$EXPORTER_VERSION/postgres_exporter-$EXPORTER_VERSION.linux-amd64.tar.gz
tar -xzf postgres_exporter-$EXPORTER_VERSION.linux-amd64.tar.gz
cp postgres_exporter-$EXPORTER_VERSION.linux-amd64/postgres_exporter /usr/local/bin/
chown postgres_exporter:postgres_exporter /usr/local/bin/postgres_exporter# 创建配置
mkdir -p /etc/postgres_exporter
cat > /etc/postgres_exporter/postgres_exporter.env << EOF
DATA_SOURCE_NAME="postgresql://$PG_USER:$PG_PASSWORD@$PG_HOST:$PG_PORT/postgres?sslmode=disable"
EOFchown -R postgres_exporter:postgres_exporter /etc/postgres_exporter# 创建systemd服务
cat > /etc/systemd/system/postgres_exporter.service << EOF
[Unit]
Description=Prometheus PostgreSQL Exporter
Wants=network-online.target
After=network-online.target[Service]
User=postgres_exporter
Group=postgres_exporter
Type=simple
EnvironmentFile=/etc/postgres_exporter/postgres_exporter.env
ExecStart=/usr/local/bin/postgres_exporter
Restart=always[Install]
WantedBy=multi-user.target
EOF# 启动服务
systemctl daemon-reload
systemctl enable postgres_exporter
systemctl start postgres_exporter
systemctl status postgres_exporter# 清理下载文件
rm -rf postgres_exporter-$EXPORTER_VERSION.linux-amd64*echo "PostgreSQL配置和PostgreSQL exporter安装完成!"
echo "Exporter端口: 9187"
echo "请确保防火墙允许访问此端口"

配置job

  - job_name: 'xx-xx-pgsql'static_configs:- targets: ['xxxx:9187']relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instancereplacement: xx-xx-pgsql-aws

配置最基础的探活告警

# pgsql_rule.yml 
groups:
- name: PostgreSQLStatsAlertrules:# PostgreSQL 实例宕机- alert: PostgreSQL database is downexpr: pg_up == 0for: 1mlabels:severity: criticalservice: postgresqlannotations:description: "Instance {{ $labels.instance }} PostgreSQL is down"summary: "PostgreSQL database is down. This requires immediate action!"
http://www.lryc.cn/news/538447.html

相关文章:

  • Mac本地部署deepseek
  • huggingface+下载deepseek8b lamda+本地部署 笔记
  • 中上211硕对嵌入式AI感兴趣,如何有效规划学习路径?
  • Jedis 客户端 用于java连接redis服务
  • 车载诊断数据库 --- 通用性诊断数据库ODX
  • docker 基础命令使用(ubuntu)
  • IDEA集成DeepSeek
  • Unity 接入Luabn记录图解
  • 【MySQL】我在广州学Mysql 系列——Mysql 日志管理详解
  • 【线段树 二分查找】P3939 数颜色|普及+
  • 2011年下半年软件设计师考试上午题真题的详细知识点分类整理(附真题及答案解析)
  • tmagic-editor,腾讯开源的基于 Vue3 的页面可视化编辑器
  • K8s学习总结
  • 正则表达式(Regular expresssion)
  • Python的那些事第二十一篇:Python Web开发的“秘密武器”Flask
  • MySQL的聚簇索引与非聚簇索引
  • vscode的一些实用操作
  • C++11 thread
  • rabbitmq五种模式的总结——附java-se实现(详细)
  • Qt中基于开源库QRencode生成二维码(附工程源码链接)
  • Java数据结构---链表
  • mongodb是怎么分库分表的
  • C++自研游戏引擎-碰撞检测组件-八叉树AABB检测算法实现
  • spring boot对接clerk 实现用户信息获取
  • 一种动态地址的查询
  • 周雨彤:用角色与生活,诠释审美的艺术
  • 使用jks给空apk包签名
  • 500. 键盘行 771. 宝石与石头 简单 find接口的使用
  • 仙剑世界手游新手攻略 仙剑世界能用云手机玩吗
  • [题解]2024CCPC重庆站-小 C 的神秘图形