我正在使用 Zabbix 监控我的 PostgreSQL 集群,并且我有一个用于此目的的特定用户名和密码,该用户名和密码运行良好。但是,我遇到一个问题,即 Zabbix 代理每分钟都会尝试使用“zabbix”数据库中的“zabbix”用户连接到数据库。可能是什么原因导致此问题?我该如何解决?
Postgres 9.3 zabbix_agent 6
Postgres 日志上的消息
用户=zabbix,db=zabbix,应用程序=[未知],主机=127.0.0.1日志:连接授权:用户=zabbix数据库=zabbix user=zabbix,db=zabbix,app=[unknown],host=127.0.0.1 致命:角色“zabbix”不存在
该问题与 Zabbix-agent 使用“pg_isready”有关。 Zabbix 使用“UserParameter”配置监视 PostgreSQL,并且当对 Zabbix Linux 用户使用“pg_isready”时,它不指定用户和数据库,因此它默认为连接尝试的登录用户和数据库名称。这就是您在 PostgreSQL 日志的连接尝试中看到“zabbix”用户和“zabbix”数据库的原因。 要纠正此问题,您可以修改文件“/etc/zabbix/zabbix_agentd.d/template_db_postgresql.conf”行,如下所示:
UserParameter=pgsql.ping[*], pg_isready -h "$1" -p "$2" -U your_username -d your_database_name