将Kubernetes群集日志发送到AWS Elasticsearch

时间:2017-09-18 23:58:50

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

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

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

据我搜索,我必须从流利的发送日志。然后我尝试使用此article实现DaemonSet。没有运气。

请您分享一些好的文件给我,

2 个答案:

答案 0 :(得分:1)

Kibana在Elasticsearch集群上索引的内容之上提供可视化功能。用户可以在大量数据之上创建条形图,折线图和散点图,或饼图和贴图。 要将日志数据推送到Elasticsearch,大多数人都使用logstash / fluentd(日志/数据收集器) 结帐以下链接了解更多信息: https://www.elastic.co/webinars/introduction-elk-stack https://logz.io/blog/fluentd-logstash/

答案 1 :(得分:0)

我有类似的问题。下面是我如何工作的完整细节。

设置:

  • 可通过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也存在问题(因为可以更改),但是一旦解决这些问题,我就会更新响应。