1、集群状态
集群故障、节点故障、网络故障和部分人为错误、资源耗尽问题都会表现出集群状态异常,集群状态信息是监控中重要的监控项。
upstream 列,不是级联复制情况下不是primary 的node_name,不同节点获得的数据不同
#在存活的数据库节点执行(当前数据库故障则无法查看状态)
repmgr cluster show
说明:需要注意的是status列不是running状态,说明集群状态有异常,需进一步排查
2、流复制状态
监控指标:流复制状态
监控频率:每1分钟
告警值:
state列值不为streaming,sync_state列和预期不符(配置的同步方式)复制差距超过预设值
#ksql连接数据库执行(连接主库查询)#查询流复制信息
SELECT * FROM sys_stat_replication;#查询主备流复制差距
select sys_wal_lsn_diff(sys_current_wal_flush_lsn(), replay_lsn) as lsn_lag, * from sys_stat_replication;
3、主库复制槽个数、slot_type列值或active列值为预期外
#ksql连接数据库执行(连接主库或备库查询)#复制槽信息
SELECT * FROM sys_replication_slots;
4、 连接数
SELECT count(*) as conns FROM sys_stat_activity WHERE backend_type IN ('client backend', 'walsender');
说明:conns超过max_connections的80%的时候需要关注一下
5、长事务,当前实例中可见的最老事务
告警值:age超过2^32 - 30000000
SELECT pid, datname, query, age(backend_xmin) as age FROM sys_stat_activity WHERE backend_xmin IS NOT NULL ORDER BY age(backend_xmin) DESC LIMIT 1;
6、事务号使用
age或 mxid_age超过2^32 – 30000000就需要注意
SELECT datname, age(datfrozenxid), mxid_age(datminmxid) FROM sys_database;
7、数据库锁情况
SELECT count(*) FROM sys_locks WHERE granted = false;
8、license 有效期
SELECT get_license_validdays() AS valid_days;