要使用Filebeat獲取Kubernetes的日志,需要將Filebeat配置為監視Kubernetes的日志文件或容器日志。
以下是一個示例Filebeat配置文件:
filebeat.inputs:
- type: container
paths:
- /var/log/containers/*.log
processors:
- add_kubernetes_metadata:
in_cluster: true
matchers:
- logs_path:
logs_path: "/var/log/containers/"
output.elasticsearch:
hosts: ["your_elasticsearch_host:9200"]
在上面的配置中,type
設置為container
,并指定了要監視的日志路徑(/var/log/containers/*.log
)。processors
部分使用add_kubernetes_metadata
處理器將Kubernetes的元數據添加到日志事件中,以幫助區分不同的容器日志。
output.elasticsearch
部分指定了Elasticsearch的主機地址。
在配置完成后,啟動Filebeat并開始監視Kubernetes的日志文件。Filebeat將會收集日志并將其發送到Elasticsearch。
請注意,以上示例是基于假設Filebeat已經安裝在Kubernetes集群中。如果Filebeat不在集群中,您需要指定Kubernetes的API地址,以便Filebeat能夠獲取容器和Pod的元數據。可以通過設置processors
部分中的add_kubernetes_metadata.in_cluster
為false
,并指定add_kubernetes_metadata.host
為Kubernetes API地址來實現。