首页 > 解决方案 > AWS Elasticsearch Service 的 Fluentd 安装说明

问题描述

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

上面的链接显示了对弹性搜索 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"
            ......

标签: amazon-web-serviceselasticsearchkuberneteselasticsearch-5

解决方案


假设您具有所需的连接性。例如,Kubernetes 和 Elasticsearch 在同一个VPC上,或者如果在不同的 VPC 中您配置了VPC 对等互连

此外,您有防火墙规则(安全组)来允许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 时的情况。如果您以这种方式配置集群,您也可以使用公共 Elasticsearch 端点。(但由于您正在使用公共云,因此安全性较低)。像这样的东西:

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

✌️


推荐阅读