Instruções de instalação do Fluentd para o AWS Elasticsearch Service
Usamos o AWS Elasticsearch Service. Gostaríamos de instalar o fluentd em nosso cluster Kubernetes. O Fluentd envia logs para o AWS Elasticsearch Service. Existe alguma instrução sobre como fazê-lo? Neste link,https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd, ele mostra as etapas para enviar os logs para um Elasticsearch Pod. Isso significa que o elasticsearch está instalado dentro do cluster Kubernetes.
O link acima mostra como fazer alterações em fluentd-daemonset-elasticsearch.yaml (veja abaixo) para o pod elasticsearch. Quais alterações de configuração preciso fazer para o serviço elasticsearch da AWS?
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"
......
Respostas
Supondo que você tenha a conectividade necessária. Por exemplo, Kubernetes e Elasticsearch na mesma VPC ou se em VPCs diferentes você tiver emparelhamento de VPC configurado.
Além disso, você tem as regras de firewall ( Security Groups ) para permitir a porta 9200
do Kubernetes para o cluster Elasticsearch.
Deve ser direto (basta apontar as configurações para o endpoint do cluster 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"
......
Isto é, se você estiver usando VPCs. Você também pode usar o endpoint público do Elasticsearch se tiver configurado seu cluster dessa forma. (Mas é menos seguro, pois você está passando pela nuvem pública). Algo assim:
https://search-domain-name-identifier.region.es.amazonaws.com
✌️