文章目录
概述
k8s集群中的pod产生的日志(stdout/stderr)都存放在对应node的/var/lib/docker/containers/下,目前集中收集k8s日志主要有以下几种方案
- 使用运行在每个Node上的Node级别的日志记录代理
- 在应用Pod中包含一个用于日志记录的sidecar
- 将日志直接从应用内推到后端
综合考虑,本文使用方案一,以deamonset方式部署filebeat,收集node中的pod日志并发送到elk集群
elk集群部署
参考官网或网上其他文档进行部署
本文使用的架构为
filebeat部署
#下载官方yaml文件
wget https://raw.githubusercontent.com/elastic/beats/6.1/deploy/kubernetes/filebeat-kubernetes.yaml
#修改以下内容将收集到的日志直接发送到elasticsearch
setup.template.name: "k8s-logs"
setup.template.pattern: "k8s-logs-*"
output.elasticsearch:
index: "k8s-logs-%{+yyyy.MM.dd}"
hosts: ['10.79.160.88:9200','10.79.160.89:9