Назад | Перейти на главную страницу

Какова цель журналов elasticsearch? Как ими управлять?

Насколько я понимаю, индексы (или данные) хранятся в

/var/lib/elasticsearch

по умолчанию эта папка содержит nodes с участием 0 и 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?

Если кому-то будет интересно, как я решил проблему с логами ...

После некоторого расследования, Я обнаружил, что вы можете установить количество журналов для хранения в 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
}

Краткое описание: один раз в день сжимайте файлы с датами в конце (каждый день эластичным поиском будет создаваться 1 новый файл), ничего не делать, если он пуст, не сообщать об ошибках.

Журналы ES ​​содержат информацию о вашем запущенном приложении, то есть об ошибках. Если вы не видите никаких проблем в своих журналах, вы можете безопасно удалить старые журналы вручную или с помощью logrotate.

Чтобы уменьшить размер ваших индексов, вам нужно удалить из них некоторые документы, потому что индексы - это место, где ES хранит данные. Не используйте logrotate для индексов, иначе произойдут странные вещи.