Instruções de instalação do Fluentd para o AWS Elasticsearch Service

Aug 19 2020

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

2 Rico Aug 19 2020 at 08:59

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 9200do 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

✌️