elasticsearch 日志有什么用处?如何管理?

elasticsearch 日志有什么用处?如何管理?

据我了解,索引(或数据)存储在

/var/lib/elasticsearch

默认情况下,此文件夹包含nodes和文件夹01这些文件夹的总大小为376M

日志存储在

/var/log/elasticsearch

-rw-r--r-- 1 elasticsearch elasticsearch 1.4G Dec 17 23:59 elasticsearch.log.2014-12-17
-rw-r--r-- 1 elasticsearch elasticsearch 1.5G Dec 18 19:35 elasticsearch.log.2014-12-18
-rw-r--r-- 1 elasticsearch elasticsearch 383M Dec 19 20:11 elasticsearch.log.2014-12-19
-rw-r--r-- 1 elasticsearch elasticsearch 7.2G Dec 30 23:59 elasticsearch.log.2014-12-30
-rw-r--r-- 1 elasticsearch elasticsearch 9.1G Jan  1 23:59 elasticsearch.log.2015-01-01
-rw-r--r-- 1 elasticsearch elasticsearch  29G Jan  2 23:59 elasticsearch.log.2015-01-02
-rw-r--r-- 1 elasticsearch elasticsearch 928K Jan  3 23:59 elasticsearch.log.2015-01-03
-rw-r--r-- 1 elasticsearch elasticsearch  91M Jan  4 23:59 elasticsearch.log.2015-01-04

正如您所看到的,它们使用了太多的空间,我甚至被迫删除 1 个大小为 的文件28G以释放服务器上的一些空间。

elasticsearch version的是0.90.7

根据官方文档:

从 0.90 版本开始,存储压缩始终处于启用状态。

就我而言,我没有看到任何压缩,它是否应用于日志?如果数据位于/var/lib/,日志的用途是什么,如果我删除所有日志,我的应用程序会工作吗?我为什么要保留它们?如果是这样,我不明白如何处理大小,我无法使我的索引更小,也许我可以使用 logrotate?

答案1

ES 日志包含有关正在运行的应用程序的信息,即错误。如果您在日志中没有发现任何问题,则可以手动或通过 logrotate 安全地删除旧日志。

为了减少索引的大小,您必须从中删除一些文档,因为索引是 ES 存储数据的地方。不要对索引使用 logrotate,否则会发生奇怪的事情。

答案2

如果有人对我如何解决日志问题感兴趣......

经过一番调查,我发现你实际上可以设置要存储的日志数量其中logging.yml默认位于/etc/elasticsearch,通过添加:

maxBackupIndex: x

像这样:

file:
  type: dailyRollingFile
  file: ${path.logs}/${cluster.name}.log
  datePattern: "'.'yyyy-MM-dd"
  maxBackupIndex: 7
  layout:
    type: pattern
    conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"

这将仅保存最近的 7 个日志文件。

但是因为我的日志文件太大并且上述解决方案不应用压缩,logrotate所以我决定使用压缩,这是我的配置/etc/logrotate.d/elasticsearch

/var/log/elasticsearch/elasticsearch.log.????-??-?? {
  daily
  missingok
  rotate 1
  compress
  notifempty
}

简要描述:每天压缩一次文件,最后加上日期(elasticsearch每天会创建1个新文件),如果为空则不执行任何操作,不报告错误。

相关内容