rav*_*n99 16 zip logging elasticsearch
我在Ubuntu机器上安装了ElasticSearch 1.4.1.
其日志位于默认位置:
/var/log/elasticsearch/
Run Code Online (Sandbox Code Playgroud)
当我运行ElasticSearch时,一段时间后日志文件会增长,并且很难处理它们.
日志已处于旋转文件模式.意思是,每天都有一个新的日志文件.
我想配置要压缩的日志(例如= file.log.zip,目前它们不是).
我也知道我可以在logging.yml文件中执行此操作,但我不知道该怎么做.
有人可以帮助我吗?
rav*_*n99 25
经过一些挖掘(也在ElasticSearch源代码中),我找到了答案.:)
通常,当您使用像ElasticSearch这样的软件并希望它在生产中使用时,您会认为像日志这样的基本功能都在处理.可悲的是,在当前版本(1.4及之前版本)中并非如此.
ElasticSearch使用log4j作为其日志记录机制.
log4j正在执行以下操作:
如果ElasticSearch中使用频繁,则日志堆积并最终填满整个存储.
答案是添加以下内容:
答案是,还有另一个名为log4j-extensions的API,它扩展了log4j功能并压缩了旋转的日志文件.
遗憾的是,它只能在下一版本1.5或主分支中供我们这些从源代码编译ElasticSearch的疯狂人员使用.(参见log4j rollingPolicy支持).
但是,有一个更简单的解决方案:
使用LOGROTATE来处理您的日志.
如果ElasticSearch在Linux OS上运行,则可以使用logrotate守护程序.(参见什么是日志旋转了解logrotate实用程序)
您需要执行以下操作:
重置日志配置
sudo vi /etc/elasticsearch/logging.yml
Run Code Online (Sandbox Code Playgroud)
在logging.yml中更改以下内容
# Mark the dailyRollingFile Appender
# file:
# type: dailyRollingFile
# file: ${path.logs}/${cluster.name}.log
# datePattern: "'.'yyyy-MM-dd"
# layout:
# type: pattern
# conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
# Add the file Appender
file:
type: file
file: ${path.logs}/${cluster.name}.log
datePattern: "'.'yyyy-MM-dd"
layout:
type: pattern
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
Run Code Online (Sandbox Code Playgroud)
创建用于处理日志文件的新文件
sudo vi /etc/logrotate.d/elasticsearch
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到logrotate文件中:
/var/log/elasticsearch/*.log {
daily
rotate 100
size 50M
copytruncate
compress
delaycompress
missingok
notifempty
create 644 elasticsearch elasticsearch
}
Run Code Online (Sandbox Code Playgroud)
之后重启ElasticSearch
sudo service elasticsearch stop
sudo service elasticsearch start
Run Code Online (Sandbox Code Playgroud)
这样您就可以将日志文件总存储量限制为5GB(旋转100*50M).
显然,您可以根据需要进行配置.
我会稍微不同意你的回答.首先,我建议不要使用zip,如果你使用gzip,你仍然可以从命令行读取文件而不先提取它们.其次,虽然logrotation是一个方便的工具,log4j应该能够原生地处理它自己的日志轮换.以下配置应该很好地工作:
file:
type: org.apache.log4j.rolling.RollingFileAppender
file: ${path.logs}/${cluster.name}.log
rollingPolicy: org.apache.log4j.rolling.TimeBasedRollingPolicy
rollingPolicy.FileNamePattern: ${path.logs}/${cluster.name}.log.%d{yyyy-MM-dd}.gz
layout:
type: pattern
conversionPattern: "%d{ISO8601}[%-5p][%-25c] %m%n"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39146 次 |
最近记录: |