首页 > 其他分享 >[prometheus]监控postgres

[prometheus]监控postgres

时间:2024-12-17 23:42:59浏览次数:4  
标签:exporter postgres script app prometheus 监控 dir name

前言

相关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/bash


export 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/null
    if [ $? -eq 0 ]; then
        echo "${script_dir}/${app_name} is running"
        return 0
    else
        echo "${script_dir}/${app_name} is not running"
        return 1
    fi
}

start_app() {
    is_running
    if [ $? -eq 0 ]; then
        return 0
    fi
    echo "starting ${script_dir}/${app_name}"
    nohup ${script_dir}/${app_name} \
        --collector.postmaster \
        --collector.stat_statements >  ${script_dir}/app.log 2>&1 &
}

stop_app() {
    is_running
    if [ $? -eq 1 ]; then
        return 0
    fi
    echo "stopping ${script_dir}/${app_name}"
    kill $(ps -ef | grep -v grep | grep "${script_dir}/${app_name}" | awk '{print $2}')
}

restart_app() {
    stop_app
    sleep 1
    start_app
}


main() {
    if [ ! -f "${script_dir}/${app_name}" ]; then
        echo "${script_dir}/${app_name} not found"
    fi
    local action=$1
    if [ x"$action" == "x" ]; then
        local action="start"
    fi
    case "$action" in
        start)
            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跑基准测试。

标签:exporter,postgres,script,app,prometheus,监控,dir,name
From: https://www.cnblogs.com/XY-Heruo/p/18613664

相关文章

  • 项目解决方案:同城多地店铺通过监控云租用平台,实现对店铺视频资源的统一观看和管理
    目录一.需求确认1.1项目背景1.1.1行业背景与市场需求1.1.2现存问题和挑战1.2具体需求阐述1.2.1流畅观看视频需求1.2.2视频资源整合需求1.2.3权限管理需求1.2.4手机可看视频需求二.方案实现难点2.1账号集中管理2.2权限分配管理2.3多客户端同步观看三.建设目标总览......
  • 推动国内信创数据库发展,考取信创PostgreSQL认证
      国家这几年在大搞信创产业建设,比如芯片领域、操作系统领域、服务器等,信创数据库对国内IT企业也具有重要影响,国内推动信创数据库的发展势在必行。    为什么要推动信创数据库发展:    1.市场规模增长:随着国家对信创产业的持续推动,国产数据库市场规模正在快速增长。......
  • 非煤矿山算法智慧矿山一体机行人不行车违章识别算法如何实时监控与分析井下交通状况?
    在矿山安全管理中,确保井下交通的顺畅与安全是至关重要的。随着人工智能和深度学习技术的进步,行人不行车违章识别AI分析算法已经成为提升矿山安全管理水平的重要工具。这种算法能够实时监控和分析井下行人和车辆的行驶情况,有效预防和减少违章行为和事故的发生。本文将详细介绍这一A......
  • 私有化视频平台EasyCVR视频监控器上出现红木纹状干扰的原因与解决方法
    在现代安防监控系统中,视频信号的稳定性和清晰度至关重要。然而,在实际应用中,监控系统常常会受到各种干扰,导致图像质量下降,甚至完全无法观看。这些干扰可能由多种原因引起,包括视频传输线缆的问题、电源污染以及周围环境的电磁干扰等。了解这些干扰的来源并掌握相应的解决方案,对于维......
  • ISUP协议视频平台EasyCVR全方位监控:角度、光线与设置的优化策略
    在现代社会,监控摄像机已成为我们日常生活中不可或缺的一部分,它们不仅在城市安全系统中扮演着重要角色,也在个人和企业安全防护中发挥着关键作用。随着技术的进步,监控摄像机的功能越来越强大,但要发挥其最大效能,正确的安装和配置至关重要。监控摄像机的安装位置和角度直接影响到监控......
  • 要在 C# 6.0 中连接 PostgreSQL 数据库
    要在C#6.0中连接PostgreSQL数据库,你可以使用Npgsql库。Npgsql是一个开源的.NET数据提供程序,专门用于与PostgreSQL数据库进行交互。以下是详细步骤和示例代码,帮助你在C#6.0项目中连接和操作PostgreSQL数据库。步骤1:安装Npgsql包首先,你需要在你的C#项......
  • JVM监控和性能分析工具
    JVM监控的重要性与目标重要性性能优化基础:JVM(Java虚拟机)是Java程序运行的基础环境,其性能直接影响Java应用的运行效率。通过监控JVM,可以了解内存使用情况、垃圾回收频率等关键指标,为性能优化提供数据支持。例如,一个Web应用如果频繁出现卡顿,可能是由于JVM内存不足或者垃圾回收......
  • 微服务之监控与保护
    微服务监控的重要性与目标重要性故障快速定位:在微服务架构中,服务数量众多且相互依赖,当出现故障时,很难直接判断问题所在。通过监控系统,可以收集各个微服务的运行数据,如请求响应时间、错误率等。一旦某个微服务出现异常,能够根据监控数据快速定位是服务自身的代码问题、依赖的......
  • 街面环卫算法视频分析服务器浅析智能视频监控在智慧城市的应用与趋向
    在数字化浪潮的推动下,智慧城市的建设已成为全球范围内城市发展的重要趋势。智慧城市不仅仅是技术的集合,它更是一个系统工程,涉及到城市管理的各个方面,旨在通过高科技手段提升城市的运行效率和居民的生活质量。其中,智能视频监控技术作为智慧城市建设的关键组成部分,正逐渐渗透到城市......
  • 算法网关视频分析网关无线视频监控技术如何以智能化手段提升抗干扰与数据安全效果
    在当今这个信息化快速发展的时代,无线技术的应用已经渗透到我们生活的方方面面,尤其是在视频监控领域,无线传输技术正以其独特的优势,改变着传统的监控系统部署方式。本文将探讨无线视频监控业务的发展情况、面临的挑战以及如何通过技术手段提高系统的抗干扰能力和数据安全性。随着......