Istruzioni di installazione Fluentd per AWS Elasticsearch Service
Utilizziamo AWS Elasticsearch Service. Vorremmo installare fluent nel nostro cluster Kubernetes. Fluentd invia i log ad AWS Elasticsearch Service. C'è qualche istruzione su come farlo? A questo link,https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd, mostra i passaggi per l'invio dei log a un pod Elasticsearch. Significa che elasticsearch è installato all'interno del cluster Kubernetes.
Il collegamento sopra mostra le modifiche in fluentd-daemonset-elasticsearch.yaml (vedi sotto) per il pod elasticsearch. Quali modifiche alla configurazione devo apportare per il servizio 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"
......
Risposte
Supponendo che tu abbia la connettività richiesta. Ad esempio, Kubernetes ed Elasticsearch sullo stesso VPC o se in diversi VPC hai configurato il peering VPC .
Inoltre, hai le regole del firewall ( Security Groups ) per consentire la porta 9200
da Kubernetes al cluster Elasticsearch.
Dovrebbe essere semplice (basta puntare le configurazioni all'endpoint del 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"
......
Questo è se stai utilizzando VPC. Puoi anche utilizzare l'endpoint pubblico di Elasticsearch se hai configurato il tuo cluster in questo modo. (Ma è meno sicuro poiché stai passando attraverso il cloud pubblico). Qualcosa come questo:
https://search-domain-name-identifier.region.es.amazonaws.com
✌️