centos

centos上pgadmin监控与报警配置

小樊
43
2025-08-26 22:29:10
栏目: 智能运维

CentOS上pgAdmin监控与报警配置

一、基础监控配置

  1. 图形化监控

    • 通过pgAdmin的「Dashboard」页签查看实时指标:连接数、事务数、块读写等。
    • 直接访问pgAdmin界面(默认端口80),无需额外配置。
  2. 系统服务监控

    • 使用systemctl管理pgAdmin服务状态:
      sudo systemctl status pgadmin4  # 查看状态
      sudo systemctl start pgadmin4   # 启动服务
      sudo systemctl enable pgadmin4  # 开机自启
      

二、集成Prometheus+Grafana(高级监控)

  1. 安装组件

    # 安装Prometheus PostgreSQL Exporter
    sudo yum install prometheus-postgresql-exporter
    
    # 安装Grafana
    sudo yum install grafana
    
  2. 配置Prometheus
    编辑/etc/prometheus/prometheus.yml,添加PostgreSQL数据源:

    scrape_configs:
      - job_name: 'postgresql'
        static_configs:
          - targets: ['localhost:9187']  # Exporter默认端口
    
  3. Grafana可视化

    • 添加Prometheus数据源,在Grafana中创建仪表盘,选择PostgreSQL相关指标(如pg_stat_activitypg_stat_database)。

三、报警配置

  1. Grafana告警规则

    • 在Grafana中为监控指标(如连接数>100、事务延迟>500ms)设置告警规则,通过邮件、Slack等方式通知。
  2. 脚本告警(自定义)

    • 编写脚本定期检查关键指标(如空闲连接数),超阈值时发送报警:
      # 示例:监控空闲连接
      #!/bin/bash
      IDLE_COUNT=$(psql -U postgres -c "SELECT COUNT(*) FROM pg_stat_activity WHERE state='idle';")
      if [ "$IDLE_COUNT" -gt 50 ]; then
        echo "警告:空闲连接数超过50!" | mail -s "数据库告警" admin@example.com
      fi
      
    • 通过cron定时执行脚本:crontab -e添加* * * * * /path/to/script.sh

四、日志监控

  1. 启用数据库日志
    修改postgresql.conf

    logging_collector = on
    log_directory = '/var/log/postgresql'
    log_filename = 'postgresql-%Y-%m-%d.log'
    log_min_messages = 'warning'
    

    重启数据库生效。

  2. 日志分析工具

    • 使用pgBadger生成日志报告:
      sudo yum install pgbadger
      pgbadger /var/log/postgresql/*.log -o /tmp/report.html
      ```。
      
      

0
看了该问题的人还看了