Fluentd无法连接到ElasticSearch集群

时间:2020-03-31 13:35:51

标签: docker elasticsearch kubernetes connection fluentd

我有一个本地kubernetes集群,在其中使用预配置的elasticsearch镜像(fluent / fluentd-kubernetes-daemonset:elasticsearch)添加了Fluentd守护程序集。 this article的步骤2。我还有一个在云中运行的弹性集群。您可以将一些env变量传递给fluentd-elasticsearch图像进行配置。它看起来非常简单,但是在运行流畅的Pod时,我不断收到错误消息:

"Fluent::ElasticsearchOutput::ConnectionFailure" error="Can not reach Elasticsearch cluster ({:host=>\"fa0acce34bf64db9bc9e46f98743c185.westeurope.azure.elastic-cloud.com\", :port=>9243, :scheme=>\"https\", :user=>\"username\", :password=>\"obfuscated\"})!" plugin_id="out_es"

当我尝试从吊舱内部到达弹性簇时 # wget https://fa0acce34bf64db9bc9e46f98743c185.westeurope.azure.elastic-cloud.com:9243/我得到401的未授权(因为我没有在此处提交用户/密码),但这至少表明该地址可以访问。

为什么无法连接? 我已经将FLUENT_ELASTICSEARCH_SSL_VERSION设置为'TLSv1_2',我看到这可以解决其他问题。

守护程序配置:

kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-logging
  labels:
    app: fluentd
    k8s-app: fluentd-logging
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      app: fluentd
  template:
    metadata:
      labels:
        app: fluentd
        k8s-app: fluentd-logging
        version: v1
        kubernetes.io/cluster-service: "true"
    spec:
      serviceAccount: fluentd
      serviceAccountName: fluentd
      tolerations:
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:elasticsearch
        env:
        - name:  FLUENT_ELASTICSEARCH_HOST
          value: "fa0acce34bf64db9bc9e46f98743c185.westeurope.azure.elastic-cloud.com"
        - name:  FLUENT_ELASTICSEARCH_PORT
          value: "9243"
        - name: FLUENT_ELASTICSEARCH_SCHEME
          value: "https"
        - name: FLUENT_UID
          value: "0"
        - name: FLUENT_ELASTICSEARCH_SSL_VERIFY
          value: "false"
        - name: FLUENT_ELASTICSEARCH_SSL_VERSION
          value: "TLSv1_2"
        - name: FLUENT_ELASTICSEARCH_USER
          value: "<user>"
        - name: FLUENT_ELASTICSEARCH_PASSWORD
          value: "<password>"
        resources:
          limits:
            memory: 100Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

1 个答案:

答案 0 :(得分:1)

对于遇到此问题的其他人:

我正在跟踪一个使用“图像:fluent / fluentd-kubernetes-daemonset:elasticsearch”图像的教程。当您检查他们的DockerHub(https://hub.docker.com/r/fluent/fluentd-kubernetes-daemonset)时,您会发现:elaticsearch标签已经使用了一年,并且可能已过时。

我将DaemonSet的图像更改为一个更新且更稳定的标签“ fluent / fluentd-kubernetes-daemonset:v1-debian-elasticsearch”,并开始运行。

相关问题