我想在我的Zabbix服务器上监视并发PostgreSQL连接的数量,所以我创建了一个cron作业,它将pg_stat_activity上的COUNT行输出到一个文件,zabbix会每分钟读取一次
我的问题是我可能有一个场景,我得到一个COUNT,比方说10,然后有50个连接的快速峰值,回到10,我再次进行COUNT。 在这种情况下,峰值不会被注意到。
我想知道有一些计数器是每个连接/断开连接,但没想到如何做到这一点。 此外,我可以在更高的频率上进行COUNT并保持每分钟的平均值,但这并不能解决问题。
这件事有什么意义吗?
谢谢, 加布里埃尔
答案 0 :(得分:1)
Use log files. Here is a quick tutorial for Linux.
1)
Find out where if postgres.conf
file located:
postgres=# show config_file;
┌──────────────────────────────────────────┐
│ config_file │
├──────────────────────────────────────────┤
│ /etc/postgresql/9.5/main/postgresql.conf │
└──────────────────────────────────────────┘
2)
Find and edit parameters in it (store the copy somewhere before):
log_connections = on
log_disconnections = on
log_destination = 'csvlog'
logging_collector = on
3)
Restart PostgreSQL:
sudo service postgresql restart
(not sure but probably sudo service postgresql reload
will be enough)
4)
Find out where the logs stored:
postgres=# show data_directory; show log_directory;
┌──────────────────────────────┐
│ data_directory │
├──────────────────────────────┤
│ /var/lib/postgresql/9.5/main │
└──────────────────────────────┘
┌───────────────┐
│ log_directory │
├───────────────┤
│ pg_log │
└───────────────┘
5)
Almost done. In files /var/lib/postgresql/9.5/main/pg_log/*.csv
you will find records about connections/disconections. It is up to you how to deal with this info.