Zabbix-Agent2无法加载Postgres插件问题求助
问题核心
你的Include配置仅覆盖了/etc/zabbix/zabbix-agent2.d/目录,但PostgreSQL插件的配置文件实际在plugins.d下,且Zabbix Agent2不支持**这类递归通配符写法,导致插件配置未被正确读取加载。
具体解决步骤
修正Include配置语法:Zabbix Agent2的Include参数不支持递归通配符,要同时包含两个目录,直接添加两行独立的Include配置:
Include=/etc/zabbix/zabbix-agent2.d/*.conf Include=/etc/zabbix/plugins.d/*.conf必须明确指定
.conf后缀,避免匹配到非配置类文件。校验PostgreSQL插件配置有效性:打开
plugins.d下的PostgreSQL配置文件(通常命名为postgres.conf),确认关键参数配置正确:Plugins.Postgres.Enabled=1 Plugins.Postgres.Host=localhost Plugins.Postgres.Port=5432 Plugins.Postgres.User=zabbix Plugins.Postgres.Password=your_db_password同时要确保数据库中的
zabbix用户已被授予pg_monitor角色权限,具备读取监控所需系统视图的权限。验证插件加载状态:重启Zabbix Agent2服务后,执行以下命令检查插件是否成功加载:
zabbix_agent2 -p | grep -i postgres如果能列出PostgreSQL相关的监控项模板,说明加载成功;若未出现相关内容,前往Agent2日志文件(默认路径
/var/log/zabbix/zabbix_agent2.log)搜索postgres关键词,排查具体报错原因(比如配置语法错误、文件权限不足等)。调整Ansible角色配置:修改Ansible角色中负责生成Zabbix Agent2配置的模板文件,添加第二行Include指向
plugins.d目录,示例如下:Include=/etc/zabbix/zabbix-agent2.d/*.conf Include=/etc/zabbix/plugins.d/*.conf执行Ansible playbook后,检查
zabbix_agent2.conf文件中的Include配置是否已正确更新。检查文件权限:确保
plugins.d目录及其中的配置文件的属主为zabbix用户/用户组,权限设置为640,避免Agent2进程无读取权限:chown -R zabbix:zabbix /etc/zabbix/plugins.d/ chmod -R 640 /etc/zabbix/plugins.d/
内容的提问来源于stack exchange,提问作者solick

