AWS ElasticsearchServiceのFluentdインストール手順
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"
......
回答
必要な接続があると仮定します。たとえば、同じ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
✌️