PostgreSQL监控之pgwatch2

https://www.tuicool.com/articles/fmyUfqI

前言:

  • 虽然作者已经推出了docker版本,只需一键(一条命令)即可完成搭建。
  • 但是本着学习的心理还是要自己折腾一遍,一键虽好但不明了啊。
  • 官方已经把安装写的很详细了,但毕竟是英文......
  • pgwatch2官方地址:https://github.com/cybertec-postgresql/pgwatch2

系统环境:

CentOS 7.5
IP:192.168.1.2

grafana-5.1.4
PostgreSQL-10、pg_stat_statements模块
InfluxDB-1.5.3
Python3

#关闭selinux以及firewalld。
##自行安装以上应用!!!本文不提供安装过程!!!

一、配置PostgreSQL


vi /var/lib/pgsql/10/data/postgresql.conf

shared_preload_libraries = 'pg_stat_statements'
track_io_timing = on

#编辑postgresql.conf配置文件,添加如下两行(前提:装好pg_stat_statements模块

vi  /var/lib/pgsql/10/data/pg_hba.conf

local   all             all                                     peer
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust

#修改认证模式,通过127.0.0.1访问的用户不需要密码认证
#为了安全请自行配置,pg_hba.conf配置文件详解请自行百度~~

PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2


systemctl restart postgresql-10.service

#重启数据库

mkdir /app && cd /app
git clone https://github.com/cybertec-postgresql/pgwatch2.git

#克隆源码仓库,有一些东西需要用到。

PostgreSQL监控之pgwatch2


su - postgres
psql -c "create user pgwatch2_grafana password 'xyz'"
psql -c "create database pgwatch2_grafana owner pgwatch2_grafana"

psql -c "create user pgwatch2 password 'xyz'"
psql -c "create database pgwatch2 owner pgwatch2"

psql -f /app/pgwatch2/pgwatch2/sql/datastore_setup/config_store.sql pgwatch2
psql -f /app/pgwatch2/pgwatch2/sql/datastore_setup/metric_definitions.sql pgwatch2

#切换至postgre用户以便操作数据库。
#创建pgwatch2_grafana、pgwatch2用户并设置密码。
#创建pgwatch2_grafana、pgwatch2数据库并设置所属主。
#导入pgwatch2的数据。

PostgreSQL监控之pgwatch2

二、配置InfluxDB


vi /etc/influxdb/influxdb.conf

[http]
enabled = true
bind-address = "127.0.0.1:8086"

#修改配置文件,将http端的bind-address修改成127.0.0.1
#因为是做监控用的,所以不做认证,但仅允许本地地址访问。

systemctl start influxdb

#启动InfluxDB

PostgreSQL监控之pgwatch2


influx

CREATE USER "pgwatch2" WITH PASSWORD 'xyz'
CREATE DATABASE pgwatch2
use pgwatch2
GRANT ALL ON pgwatch2 to "pgwatch2"

#创建pgwatch2用户以及同名的数据库,并且授权。

PostgreSQL监控之pgwatch2


三、配置Grafana


vi /etc/grafana/grafana.ini

[database]
type = postgres
host = 127.0.0.1:5432
name = pgwatch2_grafana
user = pgwatch2_grafana
password = xyz

#将Grafana的数据存入postgresql

http://192.168.1.2:3000
#访问Grafana的web页面进行配置
#默认用户名与密码:admin

PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2

#开始配置仪表盘
#源码仓库中:pgwatch2/grafana_dashboards/v5/路径下就是所有的仪表盘内容,每个文件夹为一个仪表盘
#每个文件夹内都含有dashboard.json文件,把这个文件导入即可

#这里为了展示效果我就只导入一个:db-overview/dashboard.json

#github网页上的会比较好复制,复制网页中的所有内容:
#https://raw.githubusercontent.com/cybertec-postgresql/pgwatch2/master/grafana_dashboards/v5/db-overview/dashboard.json

PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2


四、配置pgwatch2


cd /app/pgwatch2/
pip3 install -U -r webpy/requirements.txt
cd webpy
python3 web.py

#进入pgwatch目录,pip安装一些依赖库
#执行web.py

PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2

#访问web页面进行下一步配置
#配置被监控数据库的信息,注意,这里填的是被监控数据库的信息!!!
#也就是你要在对应的数据库创建用户并且授权,然后启用pg_stat_statements模块
#我这里仅仅只监控本机上的pgwatch2数据库。

PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2


#配置被监控的数据库
#这里我就只监控pgwatch2数据库

su - postgres
psql -d pgwatch2 -c "CREATE EXTENSION pg_stat_statements;"
psql -d pgwatch2 -c "CREATE EXTENSION plpythonu;"
psql -f /app/pgwatch2/pgwatch2/sql/metric_fetching_helpers/stat_activity_wrapper.sql pgwatch2
psql -f /app/pgwatch2/pgwatch2/sql/metric_fetching_helpers/stat_statements_wrapper.sql pgwatch2
psql -f /app/pgwatch2/pgwatch2/sql/metric_fetching_helpers/cpu_load_plpythonu.sql pgwatch2
psql -f /app/pgwatch2/pgwatch2/sql/metric_fetching_helpers/table_bloat_approx.sql pgwatch2

#官方说明:https://github.com/cybertec-postgresql/pgwatch2#steps-to-configure-your-database-for-monitoring

PostgreSQL监控之pgwatch2

#编译pgwatch2程序

yum install go -y
cd /app/pgwatch2/pgwatch2
./build_gatherer.sh

#安装go语言环境,进入pgwatch2目录,执行build_gatherer.sh开始编译
#这个过程会比较慢,因为会到github上下载东西,一定要保证电脑可以ping通github
#编译完成后会生成一个pgwatch2的可执行文件

PostgreSQL监控之pgwatch2


./pgwatch2

#运行pgwatch2程序
#因为刚才设置的所有账户密码跟pgwatch2程序默认值是一致的,所有直接运行即可
#若不一致,请自行使用./pgwatch2 --help查看帮助

#执行不报错,接下来去Grafana看数据就行了!!!

PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2
PostgreSQL监控之pgwatch2

#最后,把pgwatch2配置成可以用systemctl方式启动
#把下面的内容粘贴到/etc/systemd/system/pgwatch2.service
#然后就可以用systemctl start 启动啦
#注意,通过这个方式启动,所有的输出信息都会在/var/log/messages

[Unit]
Description=pgwatch2
After=syslog.target
After=network.target

[Service]
User=root
Restart=on-failure
PIDFile=/tmp/pgwatch2.pid
KillMode=control-group
ExecStart=/app/pgwatch2/pgwatch2/pgwatch2
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target

PostgreSQL监控之pgwatch2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL性能监控数据库管理中的重要部分,可以帮助管理员和开发人员追踪系统瓶颈和性能问题,优化数据库的设计和使用。以下是一些常见的PostgreSQL性能监控工具和技术: 1. pg_stat_statements:pg_stat_statements是一个内置的统计模块,可以收集SQL查询的执行时间、计划、返回行数等信息。通过分析pg_stat_statements的结果,可以找到SQL查询的瓶颈和优化点。 2. EXPLAIN:EXPLAIN是一个查询计划工具,可以帮助开发人员和管理员分析SQL查询的执行计划、索引使用情况等信息。通过对查询计划的分析,可以找到查询的瓶颈和优化点。 3. pgBadger:pgBadger是一个开源的日志分析工具,可以分析PostgreSQL的日志文件,生成可视化的报告。通过对pgBadger的结果分析,可以找到系统的性能瓶颈和优化点。 4. pg_top:pg_top是一个基于top命令的性能监控工具,可以实时监控PostgreSQL的CPU、内存、I/O等性能指标。通过对pg_top的结果分析,可以找到系统的瓶颈和优化点。 5. Zabbix、Nagios等监控系统:Zabbix、Nagios等监控系统可以监控PostgreSQL的各种指标,例如连接数、查询时间、响应时间等。通过对监控系统的结果分析,可以找到系统的瓶颈和优化点。 除了以上工具和技术,PostgreSQL还支持各种高级的性能优化技术,例如索引优化、查询优化、缓存优化等等。这些技术可以帮助管理员和开发人员提高系统的性能和可用性,优化数据库的设计和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值