Logstash连接Elasticsearch报401错误,请求协助排查MongoDB转ES数据问题
解决Logstash连接Elasticsearch时的401认证错误
收到的错误信息明确是401未授权,说明Logstash向Elasticsearch发起请求时身份验证失败,以下是针对性的排查和解决步骤:
先验证账号密码有效性
直接在Logstash服务器上用curl命令测试ES认证:curl -u provider:xxxxxx http://192.168.15.29:9200/如果返回ES集群信息,说明账号密码没问题;如果同样报401,要么密码错误,要么
provider账号不存在或权限不足,需要去Elasticsearch端确认账号状态和权限配置。修正Logstash的ES输出配置
避免在URL里直接拼接账号密码(容易出现特殊字符编码问题),建议在配置里单独指定user和password参数,示例配置片段:output { elasticsearch { hosts => ["192.168.15.29:9200"] user => "provider" password => "你的实际密码" index => "mongo-data-%{+YYYY.MM.dd}" # 自定义目标索引名 } }若一定要用URL格式,注意对密码中的特殊字符(如@、&、%等)做URL编码,比如@替换为
%40。检查Elasticsearch的安全配置
确认ES是否启用了X-Pack安全(xpack.security.enabled: true),如果启用,必须确保provider账号拥有写入目标索引的权限,可通过ES的角色管理功能给账号分配合适的角色(如writer角色或自定义角色)。排查网络异常
虽然错误是401,但偶尔网络波动或防火墙拦截可能导致认证信息传递不完整,可通过telnet 192.168.15.29 9200测试端口连通性,确保Logstash服务器能正常访问ES的9200端口。
内容的提问来源于stack exchange,提问作者prashanth
相关产品推荐
相关产品推荐

