AWS ElasticsearchServiceのFluentdインストール手順

Aug 19 2020

AWS ElasticsearchServiceを使用しています。fluentdをKubernetesクラスターにインストールしたいと思います。FluentdはログをAWSElasticsearchServiceに送信します。それを行う方法についての指示はありますか?このリンクで、https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd、Elasticsearchポッドにログを送信する手順を示しています。これは、elasticsearchがKubernetesクラスター内にインストールされていることを意味します。

上記のリンクは、elasticsearchポッドの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"
            ......

回答

2 Rico Aug 19 2020 at 08:59

必要な接続があると仮定します。たとえば、同じVPC上のKubernetesとElasticsearch、または異なるVPCにある場合はVPCピアリングが設定されています。

さらに、KubernetesからElasticsearchクラスターへのポートを許可するファイアウォールルール(セキュリティグループ)があり9200ます。

簡単なはずです(設定を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

✌️