如何在Docker容器内启动filebeat?
问题描述:
我尝试启动dockercontainer内的filebeat。如何在Docker容器内启动filebeat?
在开始时我尝试这个Dockerfile
FROM tomcat:8.5
RUN rm -Rf /usr/local/tomcat/webapps/ROOT/*
RUN mkdir /usr/local/tomcat/webapps-my
COPY filebeat/ /opt/filebeat/
RUN chmod +x /opt/filebeat/filebeat
COPY db-creator.jar /opt/db-creator/
COPY ./docker-entrypoint.sh/
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
ENTRYPOINT ["/opt/filebeat/filebeat", "-e", "-c", "/opt/filebeat/filebeat.yml"]
COPY server.xml /usr/local/tomcat/conf
COPY my.war /usr/local/tomcat/webapps-my/ROOT.war
CMD ["catalina.sh", "run"]
在这种情况下filebeat启动开始,但它在控制台的工作原理和Tomcat没有启动。 现在我试着开始filebeat作为服务
FROM tomcat:8.5
RUN curl -L -O https://artifacts.elastic.co/downloads/beats/fileb...
RUN dpkg -i filebeat-5.2.2-amd64.deb
COPY filebeat.yml /etc/filebeat
RUN update-rc.d filebeat defaults 95 10
COPY db-creator.jar /opt/db-creator/
COPY ./docker-entrypoint.sh/
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
RUN rm -Rf /usr/local/tomcat/webapps/ROOT/*
COPY server.xml /usr/local/tomcat/conf
RUN mkdir /usr/local/tomcat/webapps-my
COPY my.war /usr/local/tomcat/webapps-iqp/ROOT.war
CMD ["catalina.sh", "run"]
但还是老样子根本不会启动。 在这些varint之前,我有一些其他varints,但他们不工作。 例如像这样
CMD [ “/etc/init.d/filebeat”, “开始”]
如何开始filebeat?
答
你的方法有点不对。 想想微服务体系结构。每个容器需要一个微服务。
请尝试以下操作:
您需要2个独立的容器在这里。一个用于tomcat
,另一个用于filebeat
。然后,您将在适当的位置在tomcat
容器中安装卷,以便在那里获取日志文件。
然后,您将在filebeat
上同时挂载相同的日志卷,同时只读,并使用filebeat开始发送日志。
这样你就会尊重微服务架构和docker的哲学。