我们使用 AWS Elasticsearch 服务。我们想将 Fluentd 安装到我们的 Kubernetes 集群中。 Fluentd 将日志发送到 AWS Elasticsearch Service。有关于如何操作的说明吗?在此链接中,https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd ,它显示了将日志发送到 Elasticsearch Pod 的步骤。这意味着elasticsearch安装在Kubernetes集群内部。
上面的链接显示了在 fluidd-daemonset-elasticsearch.yaml(见下文)中对 elasticsearch pod 进行的更改。我需要对 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"
......
最佳答案
假设您具有所需的连接。例如,Kubernetes和Elasticsearch在同一个VPC上或者如果在不同的 VPC 中您有 VPC peering配置完毕。
此外,您还拥有防火墙规则 ( Security Groups ) 以允许端口 9200
从 Kubernetes 到 Elasticsearch 集群。
它应该很简单(只需将配置指向 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 的情况。如果您以这种方式配置集群,您也可以使用公共(public) Elasticsearch 端点。 (但它的安全性较低,因为您正在通过公共(public)云)。像这样的事情:
https://search-domain-name-identifier.region.es.amazonaws.com
✌️</p>
关于amazon-web-services - AWS Elasticsearch Service 的 Fluentd 安装说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63478280/