AWS Elasticsearch Service 的 Fluentd 安装说明

Fluentd installation instructions for AWS Elasticsearch Service

我们使用 AWS Elasticsearch Service。我们想将 fluentd 安装到我们的 Kubernetes 集群中。 Fluentd 将日志发送到 AWS Elasticsearch Service。它有关于如何做的任何说明吗?在 link、https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd,它显示了将日志发送到 Elasticsearch Pod 的步骤。说明elasticsearch是安装在Kubernetes集群里面的。

上面的 link 显示了对 elasticsearch pod 在 fluentd-daemonset-elasticsearch.yaml(见下文)中的更改。我需要对 AWS elasticsearch 服务进行哪些配置更改?

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-system
  ...
spec:
    ...
    spec:
      containers:
      - name: fluentd
        image: quay.io/fluent/fluentd-kubernetes-daemonset
        env:
          - name:  FLUENT_ELASTICSEARCH_HOST
            value: "elasticsearch-logging"
          - name:  FLUENT_ELASTICSEARCH_PORT
            value: "9200"
            ......

假设您具有所需的连接。例如,Kubernetes 和 Elasticsearch 在相同的 VPC or if in different VPCs you have VPC peering 配置上。

此外,您有防火墙规则 (Security Groups) 允许端口 9200 从 Kubernetes 到 Elasticsearch 集群。

应该很简单(只需将配置指向 AWS Elasticsearch 集群端点):

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-system
  ...
spec:
    ...
    spec:
      containers:
      - name: fluentd
        image: quay.io/fluent/fluentd-kubernetes-daemonset
        env:
          - name:  FLUENT_ELASTICSEARCH_HOST
            value: "vpc-domain-name-identifier.region.es.amazonaws.com" 
          - name:  FLUENT_ELASTICSEARCH_PORT
            value: "9200"
            ......

这是在您使用 VPC 的情况下。如果您以这种方式配置集群,也可以使用 public Elasticsearch 端点。 (但它不太安全,因为您正在通过 public 云)。像这样:

https://search-domain-name-identifier.region.es.amazonaws.com

✌️