我已经开始了一个迷你库(使用Kubernetes 1.18.3)来测试ECK,特别是packet节拍。minikube配置文件被称为“packet节拍”(重要的是,这也是Virtualbox VM的主机名),我按照ECK快速启动来启动并运行它。ElasticSearch (单节点)和Kibana运行良好,并且packet节拍也在收集流,但是,我无法让它将Kubernetes元数据添加到字段中。
我在默认名称空间中工作,并创建了一个ClusterRoleBinding来查看名称空间中的默认ServiceAccount。这是很好的工作,如果我不这样做,packet节拍将报告它无法列出API服务器上的Pods。
这是我用来使ECK部署packet节拍的节拍配置:
apiVersion: beat.k8s.elastic.co/v1beta1
kind: Beat
metadata:
name: packetbeat
spec:
type: packetbeat
version: 7.9.0
elasticsearchRef:
name: quickstart
kibanaRef:
name: kibana
config:
packetbeat.interfaces.device: any
packetbeat.protocols:
- type: http
ports: [80, 8000, 8080, 9200]
- type: tls
ports: [443]
packetbeat.flows:
timeout: 30s
period: 10s
processors:
- add_kubernetes_metadata: {}
daemonSet:
podTemplate:
spec:
terminationGracePeriodSeconds: 30
hostNetwork: true
automountServiceAccountToken: true # some older Beat versions are depending on this settings presence in k8s context
dnsPolicy: ClusterFirstWithHostNet
containers:
- name: packetbeat
securityContext:
runAsUser: 0
capabilities:
add:
- NET_ADMIN(这主要是ECK示例页面中的一个稍微修改过的示例。)然而,这根本行不通。我首先尝试使用"add_kubernetes_metadata:{}“,但这将导致消息出错:
2020-08-19T14:23:38.550Z错误kubernetes kubernetes/util.go:117个kubernetes:查询吊舱失败时出错:未找到豆荚“packet节拍”{"libbeat.processor":"add_kubernetes_metadata"}
当我添加“主机:packet节拍”时,这个消息就消失了。我现在不再收到错误了,但是我也没有得到Kubernetes元数据。我主要感兴趣的是名称空间标记,但我没有得到任何。我在日志中没有看到任何额外的错误,它现在只是每30秒报告一次监控细节。
我做错了什么?还有更多的信息可以帮助我调试吗?
发布于 2020-08-20 14:23:19
所以医生们还不清楚。虽然它们没有明确说明,但是您确实需要添加索引器和匹配器。我的理解是,有“默认”的(因为您可以禁用这些),但似乎并非如此。按照文档中的示例添加索引器和匹配器使Kubernetes元数据成为数据的一部分。
https://stackoverflow.com/questions/63499811
复制相似问题