Ubuntu

elasticsearch日誌的目的是什麼?如何管理它們?

  • April 22, 2015

據我了解索引(或數據)儲存在

/var/lib/elasticsearch

預設情況下,此文件夾包含nodeswith01文件夾,這些文件夾的總大小為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?

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 個最新的日誌文件。

但是因為我的日誌文件太大並且上面的解決方案沒有應用壓縮,我決定使用logrotate壓縮來代替,這是我的配置/etc/logrotate.d/elasticsearch

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

簡短描述:一天壓縮一次以日期結尾的文件(elasticsearch每天會創建1個新文件),如果為空則不執行任何操作,不報告錯誤。

引用自:https://serverfault.com/questions/656274