前言
本系列文章总共分为4篇,主要描述使用Zabbix 监控Postgresql数据库,并且用grafana来实现可视化。
文章部分内容也借鉴了许多博主的想法。我将部署的每一步都放到文章中,部分代码来自其他博主的也在文章结尾的总结处放了连接,大家可以去看原文。文章仅供参考,也欢迎大家在下面提出补足和建议。这是第三篇:安装 Postgresql和监测数据库
一、部署工具及环境
FinalShell 4.5.12: 连接虚拟机工具
虚拟机: VMware- CentOS 7
- Zabbix Server: 192.168.130.84
- Zabbix Agent (也就是数据库所在的机子上):192.168.130.85
- Grafana: 192.168.130.90
二、安装数据库
- 安装版本为 pg 14 的数据库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
- 初始化数据库
sudo -u postgres /usr/pgsql-14/bin/initdb -D /var/lib/pgsql/14/data
- 启动并查看状态
sudo systemctl start postgresql-14 #启动
sudo systemctl status postgresql-14 #设置自启动
- 开启远程连接
PostgreSQL默认情况下不支持远程连接的,这个跟MySQL几乎一样
-
直接去修改pg_hba.conf配置文件
-
修改 postgresql.conf
将localhost修改为*
-
进入数据库设置密码
postgres=# ALTER USER postgres WITH PASSWORD ‘123’;
- 远程登录测试
打开类似Navicat这样的软件
新建连接,测试是否连接成功
三,创建监测 表的增删改操作
- 创建保存操作的日志表 audit_logs
CREATE TABLE audit_logs (
id SERIAL PRIMARY KEY,
table_name TEXT NOT NULL,
operation TEXT NOT NULL,
changed_data JSONB,
user_name TEXT NOT NULL,
user_ip TEXT NOT NULL,
change_time
TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
- 创建监测增删改的函数
CREATE OR REPLACE FUNCTION log_audit()
RETURNS TRIGGER AS $$
DECLARE
user_ip text;
user_name text := current_user;