elasticsearch日志的目的是什么? 如何pipe理他们?

据我所知索引(或数据)正在被存储在

/var/lib/elasticsearch 

默认情况下,该文件夹包含01文件夹的nodes ,这些文件夹的总大小为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 

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

我的0.90.7 elasticsearch version0.90.7

根据官方文件:

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

在我的情况下,我没有看到任何压缩,它是否被应用于日志? 如果数据位于/var/lib/ ,日志的用途是什么,如果删除所有日志,我的应用程序是否可以正常工作? 我为什么要保留它们? 如果是这样,我不明白如何处理大小,我不能让我的索引更小,也许我可以使用logrotate?

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

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

如果有人会感兴趣我是如何解决与日志的问题…

经过一番调查, 我发现你实际上可以设置日志的数量来存储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个最近的日志文件。

但是因为我的日志文件太大,上面的解决scheme不适用压缩,我决定使用logrotate而不是压缩,这里是我的configuration/etc/logrotate.d/elasticsearch

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

简短描述:每天一次压缩带有date的文件(每天将有一个由elasticsearch创build的新文件),如果是空的,不做任何事情,不报告错误。