You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确配置Logstash输出到OpenSearch?解决主机不可达问题

问题:Logstash无法将Kafka数据写入OpenSearch(Kubernetes集群)

我当前使用Contabo托管的Kubernetes集群,集群已部署Kafka、OpenSearch及OpenSearch Dashboards。使用opensearchproject/logstash-oss-with-opensearch-output-plugin镜像部署Logstash后,输入插件可正常从Kafka拉取数据,但输出插件无法将数据写入OpenSearch。

集群服务列表

NAME                                  TYPE           CLUSTER-IP       EXTERNAL-IP   
PORT(S)                               AGE
dashboards-opensearch-dashboards      ClusterIP      10.96.114.252    <none>        5601/TCP                              5d20h
grafana                               ClusterIP      10.107.83.28     <none>        3000/TCP                              44h
logstash-service                      LoadBalancer   10.102.132.114   <pending>     5044:31333/TCP                        28m
loki                                  ClusterIP      10.99.30.246     <none>        3100/TCP                              43h
loki-headless                         ClusterIP      None             <none>        3100/TCP                              43h
my-cluster-kafka-0                    NodePort       10.101.196.50    <none>        9094:32000/TCP                        53m
my-cluster-kafka-1                    NodePort       10.96.247.75     <none>        9094:32001/TCP                        53m
my-cluster-kafka-2                    NodePort       10.98.203.5      <none>        9094:32002/TCP                        53m
my-cluster-kafka-bootstrap            ClusterIP      10.111.178.24    <none>        9091/TCP,9092/TCP,9093/TCP            53m
my-cluster-kafka-brokers              ClusterIP      None             <none>        9090/TCP,9091/TCP,9092/TCP,9093/TCP   53m
my-cluster-kafka-external-bootstrap   NodePort       10.109.134.74    <none>        9094:32100/TCP                        53m
my-cluster-zookeeper-client           ClusterIP      10.98.157.173    <none>        2181/TCP                              54m
my-cluster-zookeeper-nodes            ClusterIP      None             <none>        2181/TCP,2888/TCP,3888/TCP            54m
opensearch-cluster-master             ClusterIP      10.98.55.121     <none>        9200/TCP,9300/TCP                     19h
opensearch-cluster-master-headless    ClusterIP      None             <none>        9200/TCP,9300/TCP                     19h
prometheus-operated                   ClusterIP      None             <none>        9090/TCP                              25m
prometheus-operator                   ClusterIP      None             <none>        8080/TCP                              50m

排查与解决方法

1. 修正OpenSearch服务地址配置

Logstash输出插件需使用Kubernetes内部服务名而非固定IP,避免IP变动导致连接失败。正确配置示例:

output {
  opensearch {
    hosts => ["http://opensearch-cluster-master:9200"]
    # 若Logstash与OpenSearch不在同一命名空间,需添加命名空间后缀:
    # hosts => ["http://opensearch-cluster-master.your-opensearch-namespace.svc.cluster.local:9200"]
  }
}

2. 验证认证与权限配置

如果OpenSearch开启了身份验证,Logstash必须配置正确的用户名和密码,且账号需具备目标索引的写入权限:

opensearch {
  hosts => ["http://opensearch-cluster-master:9200"]
  user => "admin"
  password => "your-opensearch-password"
  # 若启用HTTPS,需添加SSL相关配置:
  # ssl => true
  # ssl_certificate_verification => false # 测试环境可临时关闭,生产环境需配置证书
}

3. 测试Pod间网络连通性

在Logstash Pod内执行以下命令,验证能否访问OpenSearch服务:

kubectl exec -it <your-logstash-pod-name> -- curl http://opensearch-cluster-master:9200
  • 若连接失败,检查是否存在网络策略阻止流量,或两者是否处于同一命名空间。
  • 若跨命名空间,需使用完整服务域名:http://opensearch-cluster-master.<opensearch-namespace>.svc.cluster.local:9200

4. 检查索引配置

  • 确认Logstash配置的目标索引已存在,或开启自动创建索引:
    opensearch {
      # ...其他配置
      manage_template => true
      template_overwrite => true
      index => "your-target-index-name"
    }
    
  • 若索引不存在且未开启自动创建,需先在OpenSearch中手动创建索引。

5. 分析Logstash日志中的具体错误

根据日志信息定位问题:

  • 若提示连接超时:优先排查网络连通性、服务地址正确性;
  • 若提示认证失败:检查账号密码是否匹配,权限是否足够;
  • 若提示索引不存在:检查索引名称配置或开启自动创建;
  • 若提示版本不兼容:确认Logstash镜像与OpenSearch版本匹配。

内容的提问来源于stack exchange,提问作者MarkoFire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:35:18