据我所知索引(或数据)正在被存储在
/var/lib/elasticsearch
默认情况下,该文件夹包含0和1文件夹的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 version是0.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的新文件),如果是空的,不做任何事情,不报告错误。