前言
在前面我们准备好日志收集环境 6-4 搭建ELK及Kafka日志收集环境。
也介绍了日志源可以通过node节点收集,或者使用sidecar容器收集。
还有一种日志源可以通过在容器内置日志收集服务进程,收集当前容器的业务容器日志等。该容器内置进程为filebeat。
镜像准备
基于tomcat-base镜像,添加并安装filebeat软件。
# tomcat-filebeat
FROM easzlab.io.local:5000/myhub/tomcat-base:v8.5.43
ADD catalina.sh /apps/tomcat/bin/catalina.sh
ADD server.xml /apps/tomcat/conf/server.xml
ADD myapp.tar.gz /data/tomcat/webapps/myapp/
ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
ADD filebeat.yml /etc/filebeat/filebeat.yml
RUN chown -R tomcat.tomcat /data/ /apps/
ADD filebeat-7.12.1-x86_64.rpm /tmp/
RUN cd /tmp && yum localinstall -y filebeat-7.12.1-x86_64.rpm
EXPOSE 8080 8443
CMD ["/apps/tomcat/bin/run_tomcat.sh"]
nerdctl build -t easzlab.io.local:5000/myhub/tomcat-filebeat:v1 .
nerdctl push easzlab.io.local:5000/myhub/tomcat-filebeat:v1
集群角色
为filebeat添加集群角色并绑定:
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: filebeat-serviceaccount-clusterrole
labels:
k8s-app: filebeat-serviceaccount-clusterrole
rules:
- apiGroups: [""] # "" indicates the core API group
resources:
- namespaces
- pods