我已经启动了一个minikube(使用kubernetes1.18.3)来测试eck,特别是packetbeat。minikube配置文件被称为“packetbeat”(很重要,因为这也是virtualbox vm的主机名),我按照eck快速启动来启动并运行它。elasticsearch(单节点)和kibana运行良好,packetbeat也在收集流,但是,我无法让它将kubernetes元数据添加到字段中。
我在默认名称空间中工作,并为名称空间中的默认serviceaccount创建了一个clusterrolebinding来查看。这是工作得很好,如果我不这样做,packetbeat将报告它无法列出api服务器上的pod。
这是我用来制作eck deploy packetbeat的beat配置:
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\u kubernetes\u metadata:{}”尝试了一下,但这会导致错误消息:
2020-08-19t14:23:38.550z错误[kubernetes]kubernetes/util.go:117 kubernetes:查询pod失败,错误:pods“packetbeat”未找到{“libbeat.processor”:“add\u kubernetes\u metadata”}
当我添加“host:packetbeat”时,这个消息就消失了。我现在不再得到一个错误,但是我也没有得到kubernetes元数据。我最感兴趣的是名称空间标签,但我没有得到任何。我没有在日志中看到任何其他错误,它只是每30秒报告一次监视细节。
我做错什么了?我能提供更多的信息来帮助我调试这个吗?
1条答案
按热度按时间gjmwrych1#
所以文件不清楚。尽管它们没有明确说明,但您确实需要添加索引器和匹配器。我的理解是,有“默认”的(因为你可以禁用这些),但似乎不是这样。根据文档中的示例添加索引器和匹配器,使kubernetes元数据成为数据的一部分。