Ubuntu
elasticsearch日誌的目的是什麼?如何管理它們?
據我了解索引(或數據)儲存在
/var/lib/elasticsearch
預設情況下,此文件夾包含
nodes
with0
和1
文件夾,這些文件夾的總大小為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個新文件),如果為空則不執行任何操作,不報告錯誤。