【问题标题】:Send Kubernetes cluster logs to AWS Elasticsearch将 Kubernetes 集群日志发送到 AWS Elasticsearch
【发布时间】:2017-09-18 23:58:50
【问题描述】:

我有一个测试 Kubernetes 集群,我在 AWS 上创建了 elasticsearch,其中包括用于日志管理的 Kibana。

端点:https://search-this-is-my-es-wuktx5la4txs7avvo6ypuuyri.ca-central-1.es.amazonaws.com

据我谷歌搜索,我必须从 fluentd 发送日志。然后我尝试使用这个article 来实现 DaemonSet。没有运气。

你能不能把任何好的文档分享给我,拜托

【问题讨论】:

  • 你遇到了什么错误?
  • 2017-09-18 23:50:23 +0000 [警告]:暂时无法刷新缓冲区。 next_retry=2017-09-18 23:50:32 +0000 error_class="Elasticsearch::Transport::Transport::Errors::Forbidden" error="[403] " plugin_id="object:3ff3d778c598" 2017-09-18 23:50:23 +0000 [警告]:抑制相同的堆栈跟踪

标签: amazon-web-services elasticsearch kubernetes kibana fluentd


【解决方案1】:

我遇到了类似的问题。下面是我如何让它工作的完整细节。

设置:

  • 可通过 VPC 访问的 AWS ES 实例。
  • 使用this yaml file 作为模板。
  • k8s客户端版本v1.9.2
  • k8s服务器版本v1.8.7

主机问题:

我遇到的主要问题是正确定义环境变量。对于FLUENT_ELASTICSEARCH_HOST,我在主机URL 上包含https:// 前缀。删除它后,我的连接问题就消失了。

身份验证:

没有为 AWS ES 配置用户名或密码。根据this discussion,我将FLUENT_ELASTICSEARCH_USERFLUENT_ELASTICSEARCH_PASSWORD 的值设置为null。

示例配置:

这是我的 daemonset yaml 文件中的全套环境变量:

- name:  FLUENT_ELASTICSEARCH_HOST
  value: "vpc-MY-DOMAIN.REGION.es.amazonaws.com"
- name:  FLUENT_ELASTICSEARCH_PORT
  value: "443"
- name: FLUENT_ELASTICSEARCH_SCHEME
  value: "https"
- name: FLUENT_ELASTICSEARCH_USER
  value: null
- name: FLUENT_ELASTICSEARCH_PASSWORD
  value: null

奖励:连接到 Kibana

我没有设置 AWS Cognito,而是在我的 kubernetes 集群中创建了一个 nginx pod,用作访问 Kibana 的代理。我使用kubectl port-foward 命令从本地机器访问 nginx 服务器。

这是我的 nginx.conf:

server {
  listen 80;
  listen [::]:80;

  server_name MY-DOMAIN;

  location /_plugin/kibana {
      proxy_pass https://vpc-MY-DOMAIN.REGION.es.amazonaws.com/_plugin/kibana;
  }
  location / {
      proxy_pass https://vpc-MY-DOMAIN.REGION.es.amazonaws.com;
  }
}

部署 nginx pod 后,我运行以下命令:

kubectl port-forward POD_NAME 8888:80

现在可以通过http://localhost:8888/_plugin/kibana访问 Kibana

我仍然遇到 port-foward 命令的超时问题和 nginx 缓存 ES 服务 IP 的问题(因为这可能会改变),但是一旦我解决了这些问题,我会更新我的回复。

【讨论】:

  • 您在使用 EKS 吗?似乎是这样。如果不使用 EKS,nginx 可能无法联系到 es VPC。
  • 这个答案很有帮助。使用 Terraform 我还设法在部署时动态创建 nginx.conf,请参阅此问题以获取分步指南:stackoverflow.com/questions/63104917/…
【解决方案2】:

Kibana 在 Elasticsearch 集群上索引的内容之上提供可视化功能。用户可以在大量数据之上创建条形图、折线图和散点图,或饼图和地图。

为了将日志数据推送到 Elasticsearch,大多数人使用 logstash/fluentd(log/data collectors)

查看以下链接了解更多信息:

https://www.elastic.co/webinars/introduction-elk-stack

https://logz.io/blog/fluentd-logstash/

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2021-01-08
    • 2021-01-11
    • 2020-01-18
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多