Petunjuk penginstalan Fluentd untuk AWS Elasticsearch Service
Kami menggunakan AWS Elasticsearch Service. Kami ingin menginstal fluentd ke cluster Kubernetes kami. Fluentd mengirimkan log ke AWS Elasticsearch Service. Apakah ada instruksi tentang bagaimana melakukannya? Di tautan ini,https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd, ini menunjukkan langkah-langkah pengiriman log ke Elasticsearch Pod. Artinya, elasticsearch diinstal di dalam cluster Kubernetes.
Tautan di atas menunjukkan perubahan di fluentd-daemonset-elasticsearch.yaml (lihat di bawah) untuk elasticsearch pod. Perubahan konfigurasi apa yang perlu saya lakukan untuk layanan elasticsearch 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"
......
Jawaban
Dengan asumsi Anda memiliki konektivitas yang diperlukan. Misalnya, Kubernetes dan Elasticsearch di VPC yang sama atau jika di VPC berbeda Anda telah mengonfigurasi peering VPC .
Selain itu, Anda memiliki aturan firewall ( Grup Keamanan ) untuk mengizinkan port 9200
dari Kubernetes ke cluster Elasticsearch.
Ini harus lurus ke depan (cukup arahkan konfigurasi ke titik akhir klaster 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"
......
Ini jika Anda menggunakan VPC. Anda juga dapat menggunakan endpoint Elasticsearch publik juga jika Anda mengonfigurasi cluster Anda dengan cara itu. (Tapi kurang aman karena Anda menggunakan cloud publik). Sesuatu seperti ini:
https://search-domain-name-identifier.region.es.amazonaws.com
✌️