PostgreSQL监控之pgwatch2
发布时间:2020-12-13 16:37:20 所属栏目:百科 来源:网络整理
导读:前言: 虽然作者已经推出了docker版本,只需一键(一条命令)即可完成搭建。 但是本着学习的心理还是要自己折腾一遍,一键虽好但不明了
前言:
系统环境:CentOS 7.5 IP:192.168.1.2 grafana-5.1.4 PostgreSQL-10、pg_stat_statements模块 InfluxDB-1.5.3 Python3 #关闭selinux以及firewalld。 ##自行安装以上应用!!!本文不提供安装过程!!! 一、配置PostgreSQLvi /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/pgwatch2.git #克隆源码仓库,有一些东西需要用到。 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的数据。 二、配置InfluxDBvi /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 "pgwatch2" WITH PASSWORD 'xyz' CREATE DATABASE pgwatch2 use pgwatch2 GRANT ALL ON pgwatch2 to "pgwatch2" #创建pgwatch2用户以及同名的数据库,并且授权。 三、配置Grafanavi /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 #开始配置仪表盘 #源码仓库中: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 四、配置pgwatch2cd /app/pgwatch2/ pip3 install -U -r webpy/requirements.txt cd webpy python3 web.py #进入pgwatch目录,pip安装一些依赖库 #执行web.py #访问web页面进行下一步配置 #配置被监控数据库的信息,注意,这里填的是被监控数据库的信息!!! #也就是你要在对应的数据库创建用户并且授权,然后启用pg_stat_statements模块 #我这里仅仅只监控本机上的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 #编译pgwatch2程序 yum install go -y cd /app/pgwatch2/pgwatch2 ./build_gatherer.sh #安装go语言环境,进入pgwatch2目录,执行build_gatherer.sh开始编译 #这个过程会比较慢,因为会到github上下载东西,一定要保证电脑可以ping通github #编译完成后会生成一个pgwatch2的可执行文件 ./pgwatch2 #运行pgwatch2程序 #因为刚才设置的所有账户密码跟pgwatch2程序默认值是一致的,所有直接运行即可 #若不一致,请自行使用./pgwatch2 --help查看帮助 #执行不报错,接下来去Grafana看数据就行了!!! #最后,把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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 使用BinaryFormatter将自动实现的属性更改为正常和反
- ruby-on-rails – Rails 3:如何获取当前布局的名称?
- c# – 如何将图像设置为现有pdf文件中的pdf字段?
- 如何在PostgreSQL 8.4中安装pgcrypto?
- C node.js Addons – Init()中的参数说明
- vb.net – 如何将答案转换为两个小数点
- ajax – IOS9 WKWebView访问控制允许源
- oracle11g +WindoWs7 安装错误:未找到文件WFMLRSVCApp.ear
- 举例讲解Ruby中require的使用方法
- vuejs手把手教你写一个完整的购物车实例代码