我是log4j2和弹性堆栈的新手。
我有一个无法正常运行的filebeat docker容器,现在我想看看日志。但是当我做docker-compose logs
时,会得到很多调试消息和json对象。有多少是不可读的。
如何创建log4j2属性设置来创建一些滚动日志文件。也许将旧日志放在每月的文件夹中?并将这个log4j2.properties
文件放在哪里?
答案 0 :(得分:0)
由于您正在运行docker-compose logs
,它会生成大量日志,这将获取docker compose文件中所有容器的日志。
您想要的可能是:
docker logs <name-of-filebeat-container>
。可以通过docker ps
来找到filebeat容器的名称。docker compose logs <name-of-filebeat-service>
。该服务的名称可以在您的docker-composer.yml文件中找到。关于JSON输出,您可以使用以下命令查询Docker引擎默认日志记录驱动程序:
# docker info | grep 'Logging Driver'
Logging Driver: json-file
如果您的容器具有其他日志记录驱动程序,则可以使用以下方法进行检查:
docker inspect -f '{{.HostConfig.LogConfig.Type}}' <name-or-id-of-the-container>
您可以在此link
中找到所有日志驱动程序要使用其他日志驱动程序运行容器,您可以执行以下操作:
docker run -it --log-driver <log-driver> alpine ash
使用docker-compose:
`logging:
driver: syslog
options:
syslog-address: "tcp://192.168.0.42:123"`
关于日志轮换问题,我想说最简单的方法是使用syslog驱动程序配置日志记录驱动程序,将其配置到本地计算机(或syslog服务器),然后对文件进行logrotate。
您可以找到几本Linux的logrotate文章(我假设您正在使用),例如this one