PostgreSQL监控之pgwatch2
前言:
- 虽然作者已经推出了docker版本,只需一键(一条命令)即可完成搭建。
- 但是本着学习的心理还是要自己折腾一遍,一键虽好但不明了啊。
- 官方已经把安装写的很详细了,但毕竟是英文......
- pgwatch3官方地址:https://github.com/cybertec-postgresql/pgwatch3
系统环境:
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配置文件详解请自行百度~~
十余年专注成都网站制作,成都企业网站定制,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都企业网站定制,高端网页制作,对成都纱窗等多个方面,拥有多年的网站设计经验。
systemctl restart postgresql-10.service
#重启数据库
mkdir /app && cd /app
git clone https://github.com/cybertec-postgresql/pgwatch3.git
#克隆源码仓库,有一些东西需要用到。
su - postgres
psql -c "create user pgwatch3_grafana password 'xyz'"
psql -c "create database pgwatch3_grafana owner pgwatch3_grafana"
psql -c "create user pgwatch3 password 'xyz'"
psql -c "create database pgwatch3 owner pgwatch3"
psql -f /app/pgwatch3/pgwatch3/sql/datastore_setup/config_store.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/datastore_setup/metric_definitions.sql pgwatch3
#切换至postgre用户以便操作数据库。
#创建pgwatch3_grafana、pgwatch3用户并设置密码。
#创建pgwatch3_grafana、pgwatch3数据库并设置所属主。
#导入pgwatch3的数据。
二、配置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
influx
CREATE USER "pgwatch3" WITH PASSWORD 'xyz'
CREATE DATABASE pgwatch3
use pgwatch3
GRANT ALL ON pgwatch3 to "pgwatch3"
#创建pgwatch3用户以及同名的数据库,并且授权。
三、配置Grafana
vi /etc/grafana/grafana.ini
[database]
type = postgres
host = 127.0.0.1:5432
name = pgwatch3_grafana
user = pgwatch3_grafana
password = xyz
#将Grafana的数据存入postgresql
http://192.168.1.2:3000
#访问Grafana的web页面进行配置
#默认用户名与密码:admin
#开始配置仪表盘
#源码仓库中:pgwatch3/grafana_dashboards/v5/路径下就是所有的仪表盘内容,每个文件夹为一个仪表盘
#每个文件夹内都含有dashboard.json文件,把这个文件导入即可
#这里为了展示效果我就只导入一个:db-overview/dashboard.json
#github网页上的会比较好复制,复制网页中的所有内容:
#https://raw.githubusercontent.com/cybertec-postgresql/pgwatch3/master/grafana_dashboards/v5/db-overview/dashboard.json
四、配置pgwatch3
cd /app/pgwatch3/
pip3 install -U -r webpy/requirements.txt
cd webpy
python3 web.py
#进入pgwatch目录,pip安装一些依赖库
#执行web.py
#访问web页面进行下一步配置
#配置被监控数据库的信息,注意,这里填的是被监控数据库的信息!!!
#也就是你要在对应的数据库创建用户并且授权,然后启用pg_stat_statements模块
#我这里仅仅只监控本机上的pgwatch3数据库。
#配置被监控的数据库
#这里我就只监控pgwatch3数据库
su - postgres
psql -d pgwatch3 -c "CREATE EXTENSION pg_stat_statements;"
psql -d pgwatch3 -c "CREATE EXTENSION plpythonu;"
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/stat_activity_wrapper.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/stat_statements_wrapper.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/cpu_load_plpythonu.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/table_bloat_approx.sql pgwatch3
#官方说明:https://github.com/cybertec-postgresql/pgwatch3#steps-to-configure-your-database-for-monitoring
#编译pgwatch3程序
yum install go -y
cd /app/pgwatch3/pgwatch3
./build_gatherer.sh
#安装go语言环境,进入pgwatch3目录,执行build_gatherer.sh开始编译
#这个过程会比较慢,因为会到github上下载东西,一定要保证电脑可以ping通github
#编译完成后会生成一个pgwatch3的可执行文件
./pgwatch3
#运行pgwatch3程序
#因为刚才设置的所有账户密码跟pgwatch3程序默认值是一致的,所有直接运行即可
#若不一致,请自行使用./pgwatch3 --help查看帮助
#执行不报错,接下来去Grafana看数据就行了!!!
#最后,把pgwatch3配置成可以用systemctl方式启动
#把下面的内容粘贴到/etc/systemd/system/pgwatch3.service
#然后就可以用systemctl start 启动啦
#注意,通过这个方式启动,所有的输出信息都会在/var/log/messages
[Unit]
Description=pgwatch3
After=syslog.target
After=network.target
[Service]
User=root
Restart=on-failure
PIDFile=/tmp/pgwatch3.pid
KillMode=control-group
ExecStart=/app/pgwatch3/pgwatch3/pgwatch3
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
文章标题:PostgreSQL监控之pgwatch2
网站网址:http://scyingshan.cn/article/johsdh.html