我正在使用docker compose在docker容器上运行elastalert服务器。这是docker-compose.yml文件
version: "3.3"
services:
elastalert:
container_name: elastalert
build:
context: .
dockerfile: Dockerfiles/Dockerfile-elastalert
image: elastalert:3.0.0-beta.0
network_mode: host
ports:
- 3030:3030
- 3333:3333
restart: always
volumes:
- ./elastalert/config/elastalert.yml:/opt/elastalert/config.yaml
- ./elastalert/config/elastalert-test.yml:/opt/elastalert/config-test.yaml
- ./elastalert/config/config.json:/opt/elastalert-server/config/config.json
- ./elastalert/rules:/opt/elastalert/rules
- ./elastalert/rule_templates:/opt/elastalert/rule_templates
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3030 || exit 1"]
interval: 30s
timeout: 15s
retries: 3
elastalert的docker文件是:
FROM bitsensor/elastalert:3.0.0-beta.0
USER root
RUN apk update && \
apk add bash curl && \
rm -rf /var/cache/apk/*
ADD elastalert/bin/elastalert-start.sh /usr/local/bin/
ADD elastalert/bin/elastic_search_status.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/elastalert-start.sh
RUN chmod +x /usr/local/bin/elastic_search_status.sh
USER node
ENTRYPOINT ["/usr/local/bin/elastalert-start.sh"]
运行elastalert容器时,我可以使用命令:docker compose logs-f查看终端上的日志,但这些日志不会存储在容器(容器文件系统)中的任何位置。
有没有办法将这些日志存储在elastalert容器中?
类似于elastalert容器文件系统中的/var/log/elastalert.log。
1条答案
按热度按时间o0lyfsai1#
为什么要将日志存储在容器中?容器本质上是短暂的,所以它们来来去去去,除非你把它定义为一个体积。默认情况下,您可以访问主机上此路径上的日志: