架构
通过filebeat容器,使用空目录挂载到应用程序内的日志文件目录。然后将日志发送到kafka-service,然后logstash获取kafka的数据发送给es-service。再通过kibana来查看。
filebeat
读取应用程序容器内的日志,通过emptyDirg挂载应用程序的日志目录来读取。
kafka
接收filebeat读取的日志信息
logstash
获取kafka集群的日志信息,解析后发送给es集群进行存储。
kibana
用来展示日志es集群的信息。
安装kafka和logstash
安装zookeeper kafka和logstash
cd filebeat
helm install zookeeper zookeeper/ -n logging #安装时要注意修改镜像到国内镜像
helm install kafka kafka/ -n logging
等待pod都启动后创建logstash服务
kubectl create -f logstash-service.yaml -f logstash-cm.yaml -f logstash.yaml -n logging
logstash-cm.yaml文件种的一些配置需要修改
apiVersion: v1
kind: ConfigMap
metadata:
name: logstash-configmap
data:
logstash.yml: |
http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
logstash.conf: |
# all input will come from filebeat, no local logs
input {
#数据来源
kafka {
enable_auto_commit => true