pgCluu 的安装、使用与实践

news2024/12/23 5:10:55

文章目录

  • 前言
  • 一、什么是 pgCluu
  • 二、pgCluu的安装流程
    • 静态模式
    • 动态模式
  • 三、pgCluu的用法
    • pgCluu 用法
    • pgCluu_collectd 用法:
  • 四、pgCluu的实操分享
    • 实操示例一:
    • 实操示例二:


前言

PostgreSQL 的监控方法很多,数量越来越多的 PG 的监控再通过手工的方法来操作已经不切实际,所以应允而生的就是各种的工具。本期跟大家分享一个性能监控和审计的实用工具——pgCluu 。


一、什么是 pgCluu

pgCluu 是一个用于对 PostgreSQL 集群的性能进行全面审计的工具。

它分为两部分,一个用于使用 psql 和 sar 获取 PostgreSQL 服务器上的统计信息的 collector;以及一个 reports builder,用于生成所有 HTML 和图表输出

它的优点是开源免费,使用灵活,适合定期数据库信息分析,适合二次开发;缺点是非实时监控,不支持慢查询。


二、pgCluu的安装流程

pgCluu报告生成器基本操作默认输出静态html及图表,动态模式需配合Apache服务器。

静态模式

  1. 前置依赖

perl环境 perl -v查看当前是否有perl环境。

yum install perl-ExtUtils-MakeMaker
wget https://github.com/darold/pgcluu/archive/refs/heads/master.zip
unzip master.zip
cd pgcluu-master/
perl Makefile.PL
make
sudo make install
cp -f cgi-bin/pgcluu.cgi /var/www/cgi-bin/

动态模式

如需启用动态模式,需配置Web服务器官方样例提供 Apache的cgi 模式。

1. 前置依赖

yum install perl-CGI

2. apache 安装部署过程:

yum install httpd
systemctl enable httpd
service httpd start

3. 修改 /etc/httpd/conf/httpd.conf

LoadModule cgid_module modules/mod_cgid.so
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options ExecCGI
    Require all granted
    Allow from all
</Directory>
AddHandler cgi-script .cgi
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
//加入pgcluu相关配置,当前目录为项目根目录
sudo mkdir  /var/www/html/pgcluu/
sudo cp cgi-bin/pgcluu.cgi /var/www/cgi-bin/
sudo cp -rf cgi-bin/rsc/ /var/www/html/pgcluu/
sudo chown -R apache: /var/www/html/pgcluu/
 
 
//修改文件权限
/bin/chown -R postgres:apache /var/lib/pgcluu/data/
/bin/chmod -R u=rwX,g=rsX,o= /var/lib/pgcluu/data/
 
 
//创建定时任务
crontab -e
*/5 * * * * /usr/local/bin/pgcluu --cache /var/lib/pgcluu/data
 
 
// 修改pgcluu.cgi文件17行,将此行注释(否则会报错cgi-error)
// no warnings 'redundant';

三、pgCluu的用法

pgCluu 用法

用法:pgcluu [options] -o report_dir input_dir

input_dir:存放 pgcluu_collect d或 pgstats 和 sar 数据文件的目录。

注:sar 为 Linux 系统性能分析工具

pgstats 为由 pg_statistic 系统表扩展而来的系统视图,记录的是每个表每个字段的统计信息,用于 PostgreSQL 优化器做执行计划选择的时候提供参考。

可选项较多,这边只说明常用项:

在这里插入图片描述
更多可选项,可执行 pgcluu --help 查看。

  • 使用示范

1. 以存储的数据生成静态报告:

mkdir /tmp/report_db1/
pgcluu -o /tmp/report_db1/ /tmp/stat_db1/

2. 只想要指定数据库的报告,可使用以下方式:

pgcluu -o /tmp/report_db1/ /tmp/stat_db1/ --db-only "db1,db2,db3"

3. 从sar输出文件导出报告,可使用以下方式:

sar -p -A 10 60 > /root/my_sar_file.txt
pgcluu -o /tmp/report_sar/ -i /root/my_sar_file.txt

4. 从 pgstats 生成的 sa 二进制文件导出报告:

pgcluu -o /tmp/report_sar/ -i /var/log/sysstat/sa22

5. 报告以增量模式运行,可限制报告保留天数:

pgcluu -o /tmp/report_sar/ /tmp/stat_db1/ --retention 30

pgCluu_collectd 用法:

用法:pgcluu_collectd [options] output_dir

output_dir:pgcluu_collectd 存储统计信息的目录的完整路径

可选项较多,这边只说明常用项:

在这里插入图片描述
更多可选项,可执行 pgcluu_collectd --help 查看。

  • 使用示范

1.作为 postgres 用户在本地监控完整的 PostgreSQL 集群;

mkdir /tmp/stat_db1/
pgcluu_collectd -D -i 60 /tmp/stat_db1/

2. 排除指定时间段(22:30到第二天06:30)内的数据收集;

pgcluu_collectd -D -i 60 /tmp/stat_db1/ --exclude-time "22:30-06:30"

3. 从远程服务器收集数据:

pgcluu_collectd -D -i 60 /tmp/statdb1/ -h 10.0.0.1 -U postgres --disable-sar

经过以上-D后台监控数据库一段时间后,通过一下方式终止程序:

pgcluu_collectd -k

可以每日或每小时,统计轮换以增量模式运行收集器:

pgcluu_collectd -D -i 60 /tmp/stat_db1/ --rotate-daily
  • 在有大量活动的数据服务上,可使用:

–compress 选项的压缩模式

–rotate-hourly 强制每小时轮换数据文件

  • 如果磁盘空间有限,可使用:

–retention 存储天数限制,来限制统计文件的保留时间

收集完成后的统计数据如下图:

在这里插入图片描述

接下来,使用pgCluu根据数据生成报告。


四、pgCluu的实操分享

实操示例一:

使用 GaussDB 用户监控 10.3.70.206 数据库服务的指定数据库 Postgres,监控200秒,30秒获取一次数据。

Mkdir -p /tmp/stat_postgres/
pgcluu_collectd -E 200 -i 30 /tmp/stat_postgres/ -h 10.3.70.206 -U gaussdb -W Enmo@123 -p15432 -d postgres

效果如下,会生成一系列监控数据 csv 文件 ⬇

在这里插入图片描述

# 将监控数据转换为html格式输出到指定目录
pgcluu -o /tmp/stat_postgres/ /tmp/stat_postgres/

效果如下,会根据 pgcluu_collectd 生成的 csv 数据文件,将数据转换为 html 静态文件 ⬇

在这里插入图片描述
通过入口文件 index.html 进入,可以查看到一系列监控指标数据。

数据库统计数据 ⬇

在这里插入图片描述

上述方法是针对 PostgreSQL 中收集信息,也就是说我们可以建立一个监控服务器,然后收集是所有的PG的信息到一台机器,然后开始分析,做成全面自动化的方案,具体可依据个人的需求来操作。

实操示例二:

动态CGI模式监控 10.11.xxx.xx 机器的PostgreSQL ,5432端口,并开启ssh获取机器系统信息。


/usr/local/bin/pgcluu_collectd -D -i 30 -I /var/lib/pgcluu/data/  -h 10.11.xxx.xx -U postgres -W 123456 -p5432  --enable-ssh --ssh-user postgres --ssh-identity /var/lib/pgsql/.ssh/id_rsa /var/lib/pgcluu/data 
 
 
crontab -e
*/5 * * * * /usr/local/bin/pgcluu --cache /var/lib/pgcluu/data

最终效果如下 ⬇

在这里插入图片描述

  • 注意事项

采集远程系统信息,需配置 ssh 认证免密登录,且为 Postgres 用户,参数如下:

--enable-ssh --ssh-user postgres --ssh-identity /var/lib/pgsql/.ssh/id_rsa

注意 ssh-identity 传递的是 id_rsa ,不是 id_rsa.pub 。

最终效果如下 ⬇

在这里插入图片描述

以上就是本期的全部内容。我们很详细的跟大家讲解了 pgCluu 的安装过程,使用方法和实际应用,有机会可以尝试操作体验一次。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MFC输出普朗克常数

在量子力学中可以计算德布罗意波长&#xff0c;其公式如下&#xff1b; 德布罗意波长 h / (质量 * 速度&#xff09;&#xff1b; 其中h是普朗克常数&#xff1b; 先看一下普朗克常数&#xff1b;6.62 乘以10的负34次方&#xff1b; 输出一下此常数看一下&#xff1b; #de…

SpringCloud之Spring Cloud Config 分布式配置

Spring Cloud Config 分布式配置1. 分布式系统面临的配置文件问题2. Spring Cloud Config 分布式配置中心的概念3. Spring Cloud Config 分布式配置中心的作用4. Spring Cloud Config 分布式配置中心和 GitHub 整合5. 小案例Dalston.RELEASE Spring Cloud Config 为分布式系统…

Web3中文|Web3注定会成为元宇宙的一部分

“Web3”和“元宇宙”或许是2022年最热门的流行语了。在营销行话中、在广告中、在新闻报道中&#xff0c;Web3和元宇宙这两个概念总是被捆绑在一起。 但不得不说&#xff0c;二者经常被混为一谈是有原因的。因为它们都是定义模糊的新技术&#xff0c;都被认为是互联网的未来&a…

20230112在Ubuntu下看笔记本电脑电池的电量

20230112在Ubuntu下看笔记本电脑电池的电量 2023/1/12 17:24 ubuntu20.04 Xshell 7 (Build 0108) Copyright (c) 2020 NetSarang Computer, Inc. All rights reserved. Type help to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.168.186.228:22... Connecti…

知物由学 | 多级建模方法提升汉语语音识别效果,获ISCSLP大赛认可

导读&#xff1a;语音是人类信息沟通的重要途径&#xff0c;同时也是人机交互的重要桥梁&#xff0c;自动语音识别可以表述为通过计算机将人类语音信号转录为书面形式的文字输出的过程。本文分享了网易易盾提出的多级建模单元的端到端汉语语音识别方法及具体的落地实践。 1.语…

什么是虹科weeve边缘计算软件平台?

一、前言 随着越来越多的企业希望进入物联网领域&#xff0c;他们在构建和部署物联网项目时面临着前所未有的挑战。根据思科的一项调查表明&#xff0c;超过60&#xff05;的受访者承认他们严重低估了管理自己的物联网计划的复杂性。更令人震惊的是&#xff0c;同一调查还发现…

MongoDB副本集搭建和读写分离配置

MongoDB副本集&#xff08;Replication Set&#xff09;由一组mongod实例(进程)组成&#xff0c;包含一个Primary节点和多个Secondary节点.客户端数据写入Primary节点。Secondary节点从Primary节点同步数据。以保持副本集内所有成员存储相同的数据集。Primary节点故障时会自动选…

C++ 居然超过了 Python?

很难想象&#xff0c;从 1983 年被正式命名开始算起&#xff0c;已经走过整整四十年光阴的 C&#xff0c;居然力挫 C、Python&#xff0c;摘得了 TIOBE 2022 年度编程语言的桂冠。据 TIOBE 官网显示&#xff0c;在过去一年里&#xff0c;C 因为涨幅最大&#xff0c;为 4.62%&am…

论文投稿指南——中文核心期刊推荐(海洋学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

javaWeb大体了解

Web&#xff1a;全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站 JavaWeb&#xff1a; 是用 Java技术来解决相关web互联网领域的技术栈。 JavaWeb 技术栈 B/S 架构&#xff1a; Browser/Server&#xff0c;浏览器/服务器 架构模式&#xff0…

读书笔记-《ON JAVA 中文版》-摘要10[第十一章 内部类]

文章目录1. 创建内部类2. 链接外部类3. 使用 .this 和 .new4. 内部类与向上转型5. 内部类方法和作用域6. 匿名内部类7. 嵌套类7.1 嵌套类7.2 接口内部的类7.3 从多层嵌套类中访问外部类的成员8. 为什么需要内部类8.1 为什么需要内部类8.2 闭包与回调8.3 内部类与控制框架9. 继承…

智慧农业远程监控系统解决方案

我国是一个农业大国&#xff0c;农作物种植在全国范围内都非常广泛&#xff0c;农作物病虫害防治工作的好坏、及时与否对于农作物的产量、质量影响至关重要。因种植面积广&#xff0c;分布不均&#xff0c;农业工作人员不能够做到在灾害发生时及时出现在现场&#xff0c;所以农…

【Linux】理解缓冲区

文章目录一.引入二.认识缓冲区1.为什么2.刷新策略3.在哪里三、理解缓冲区一.引入 我们发现 printf 和 fwrite &#xff08;库函数&#xff09;都输出了2次&#xff0c;而 write 只输出了一次&#xff08;系统调用&#xff09;。为什么呢&#xff1f;肯定和fork有关&#xff01;…

C++职工管理系统,eof()函数,选择排序

目录 1.创建管理类 1.1头文件实现&#xff0c;在workerManager.h中设计管理类 1.2源文件实现&#xff0c;在workerManager.cpp中将构造和析构函数的空实现补全 2.菜单功能 2.1在管理类workerManager.h中添加菜单成员函数 2.2在管理类workerManager.cpp中写实现 3.退出功能 …

Pycharm基础安装教程:搭建python环境+安装pycharm

嗨害大家好鸭&#xff01;我是小熊猫~ 之前有的小伙伴总说小熊猫发的内容不够基础… 这次小熊猫就来给大家做一个简单的安装介绍吧~ 这里给大家准备了社区版pycharm2021.2 &#xff08;最新版部分库不稳定&#xff0c;不建议下载&#xff09; 第一次安装的小伙伴实在不会下载…

【JavaSE系列】第十节 —— 带你吃透抽象类

&#xff08;6&#xff09;当一个抽象类 继承一个抽象类的时候&#xff0c;可以不用来重写 当作父类的那个抽象类的抽象方法&#xff1a;提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、抽象类的概念 二、…

二叉苹果树 【树形dp(背包)】

来源&#xff1a;牛客网 题目链接&#xff1a;https://ac.nowcoder.com/acm/contest/25022/1006 题目描述 有一棵二叉苹果树&#xff0c;如果数字有分叉&#xff0c;一定是分两叉&#xff0c;即没有只有一个儿子的节点。这棵树共N个节点&#xff0c;标号1至N&#xff0c;树根编…

rollup.js配置环境变量

场景: 由于项目是通过svelte.js rollup.js框架搭建起来的, 并没有使用到cli脚手架, 没有办法配置不同环境的变量一. 使用cross-env添加环境变量安装cross-env&#xff0c;它可根据不同的系统设置环境变量npm install cross-env --save-dev在 package.json 中&#xff1a;"…

MongoDB索引

介绍 增加查询效率&#xff0c;不必每次都全表扫描单字段索引&#xff1a;在用户单个字段上创建升序/降序索引复合索引&#xff1a;在多个字段上添加索引&#xff1b;如{name:1, age:-1}&#xff0c;关注field顺序其他索引&#xff1a;地理空间索引&#xff0c;文本索引&#x…

浙大MBA复试经验和真题分享——知己知彼胜率更高

前段时间跟朋友吃饭的时候&#xff0c;问我在浙大读MBA是什么体验&#xff1f;其实说实话&#xff0c;当时选择浙大&#xff0c;主要还是为了学历&#xff0c;觉得自己一个普通的二本学历真的平平无奇&#xff0c;公司里面新进的员工虽然年纪轻&#xff0c;但学历却很有来头&am…