这个搞了一天,记录一下,

腾讯云EC2,2核2G,上面通过minikube部署了一个单节点K8S。
想传日志,内存不太够,不可能在同一台服务器上搭ELK或者EFK了,只能用daemonset来装个filebeat
上面连接很全了,不过有几点需要改动,
1.我传的不是kafka,而是ES,
2.type: container,这里我开始改成了log,并不好用,改回container就好了。果然是需要container来搜集容器的日志。。。另外下面的xpack和ilm也是坑,写上吧。。。

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: kube-system
  name: filebeat-config
  labels:
    app: filebeat
data:
  filebeat.yml: |-
    filebeat.inputs:
    - type: container
      enabled: true
      paths:
      - /var/log/containers/*.log
    output.elasticsearch:
      hosts: ["ESendpoint:443"]
      index: "test-es-logs"
      username: ""
      password: ""
      ssl_certificate_verification: false
    setup.template.name: "filebeat"
    setup.template.pattern: "filebeat-*"
    xpack.security.enabled: false
    xpack.monitoring.enabled: false
    xpack.graph.enabled: false
    xpack.watcher.enabled: false
    xpack.reporting.enabled: false
    xpack.ml.enabled: false
    LoadML.enabled: false
    setup.ilm.enabled: false

至于ES,我买的AWS ES免费版,7.10,大家都知道,ELK家族很重视版本血统,这里有个坑,AWS的版本跟ELK并不是完全match的,
所以filebeat我又换成了文档中的filebeat-oss:7.10.2

这个是在daemonset中改的,拉取filebeat镜像时注意下。
ES配置时,记得开公网和精细化访问。就按照开始文档来就没问题。

全都配置好了,
测试阶段就是反复,

  1. kubectl delete -f …
  2. kubectl apply -f …
  3. kubectl get pods -n=xxxxxx
  4. kubectl logs …
  5. cat logs | tail -5
  6. kubectl delete pod … (为了采集些实际数据)
    反复修复吧。。。

PS:今天没时间搞了,ES上时间长堆积数据,
可以过几天试试如下方法删除

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐