Zabbix 6.0.20配置AWS ALB+Cognito HTTP认证后登录报错求助
排查Zabbix 6.0.20 + ALB+Cognito HTTP认证登录报错问题
1. 验证ALB到EC2的认证信息传递
- 查看Nginx日志文件:
/var/log/nginx/access.log和/var/log/nginx/error.log,确认ALB是否将Cognito生成的用户标识(如X-Amzn-Oidc-Claim-Email头部或REMOTE_USER变量)正确传递给后端Zabbix服务。 - 核对
/etc/nginx/conf.d/zabbix.conf中的FastCGI参数配置,确保已正确映射认证字段,示例配置:fastcgi_param REMOTE_USER $http_x_amzn_oidc_claim_email;
2. 检查Zabbix认证逻辑代码
- 确认
/usr/share/zabbix/index_http.php和include/oidc.inc.php中,从请求头部提取的用户信息(比如邮箱)与Zabbixusers表的username字段完全匹配,避免大小写或格式差异导致的用户匹配失败。 - 查看Zabbix服务器日志
/var/log/zabbix/zabbix_server.log,搜索包含authentication、login关键字的错误条目,定位具体失败原因(如用户不存在、权限缺失)。
3. 核对Zabbix GUI的HTTP认证配置
- 进入Zabbix GUI的【Administration】→【Authentication】页面,确认认证方法已设置为
HTTP,且Enable HTTP authentication选项已勾选。 - 检查
Default user group配置,确保通过Cognito认证的用户会被分配到具备GUI访问权限的用户组(如Zabbix Admin)。
4. 验证数据库中用户状态与权限
- 登录MySQL数据库,查询Zabbix的
users表,确认自动创建的用户status字段值为0(启用状态),且usrgrpid关联的用户组拥有正确的权限:select username, status, usrgrpid from users where username = 'your-cognito-user-email'; - 确认关联的用户组(通过
usrgrp表查询)具备access to frontend权限。
5. 排查会话与Cookie问题
- 打开浏览器开发者工具(F12),查看登录后的跳转请求,检查响应头中是否包含Zabbix的会话Cookie(如
zbx_sessionid)。 - 核对Nginx配置中是否允许Cookie传递,FastCGI配置需包含:
fastcgi_param HTTP_COOKIE $http_cookie;
内容的提问来源于stack exchange,提问作者Marco Ferrara
相关产品推荐
相关产品推荐

