Comments 24
если есть свободная память, может туда писать? все равно работать будет как временная папка.
0
Не понял комментария, писать на каком этапе?
0
А не пробовали логи писать прямиком в JSON? Их тогда и не придётся обрабатывать GROK'ом.
+3
Из того, отчего пришлось отказаться от логшеттера:
Прошу не воспринимать коммент как «технология говно», просто у нас не полетело даже на тестах. Для прода пришлось писать самим.
- Надо было слать логи дальше в http POST батчами — перепилили стандартный плагин, не было критичным
- jruby медленный и не обрабатывал нормально системные сигналы: кажется, кто-то их перехватывал, точно не вспомню, но стандартный убунтовый (14.04) init-script не отрабатывал должным образом.
- Внешне удобные grok иногда скрывают под собой жуткие конструкции, которые катастрофически сказываются на производительности
- Если логшеттер спотыкается об строчку в файле (тоже не вспомню, на input или уже на обработке), он падает и больше не поднимается (невозможно заставить его даже сказать, на какой строчке он упал)
- У нас возникла проблема в месте сохранения состояния. ЕМНИП, LS считает «успешным» момент обработки строки по её прочтению. Если после этого не удаётся её отправить — who cares?
- Было что-то ещё, но за последний год, к сожалению, забылось
Прошу не воспринимать коммент как «технология говно», просто у нас не полетело даже на тестах. Для прода пришлось писать самим.
+1
Тогда возможно вам подойдет другой подход к решению проблемы.
0
Спасибо, но уже год как крутится самописная конструкция без всего этого на внутренних инструментах, которая шлёт метрики в графит
0
Я посмотрел презентацию, но не нашел цифр по производительности, вы не знаете сколько логов в секунду им удается обработать?
0
Кстати, немного на грани оффтопа.
Недавно пошла мода все переписывать, типа как puppet на clojure. Про logstash/fluentd такого не слышно?
Недавно пошла мода все переписывать, типа как puppet на clojure. Про logstash/fluentd такого не слышно?
0
У вас индексы партиционируются по дням? Попробуйте сделать их по часам-десяткам минут. В зависимости от объема логов.
А вообще тут как и в любой оптимизации надо сначала собрать метрики с серверов и посмотреть в чем проблемы, и только потом оптимизировать.
У нас система справлялась с гораздо большим количеством событий в кластере из 6 ES серверов.
Для мониторинга Elasticsearch много решений, для dev целей с ограничениями marvel был бесплатным
А вообще тут как и в любой оптимизации надо сначала собрать метрики с серверов и посмотреть в чем проблемы, и только потом оптимизировать.
У нас система справлялась с гораздо большим количеством событий в кластере из 6 ES серверов.
Для мониторинга Elasticsearch много решений, для dev целей с ограничениями marvel был бесплатным
+1
Если данные не особо важны, то можно не делать fsync или делать его еще реже. см. index translog. Т.е. в период 1 нужно перестраивать индекс, а в период 2 делать fsync, при этом принимать данные в только память.
0
Rsyslog умеет писать в elasticsearch
0
А что вы логгируете в таких количествах, если не секрет?
0
Буквально только что ставил эксперименты по производительности elasticsearch кластера. Сгенерировал логсташем файл с миллионом json логами и заливал их в кластер программой на си, которая читала данные со стандартного ввода и загружала в кластер через http bulk api (размер запроса ограничен 1мб). Экспериментировал на 2-х кластерах из 4-х и 10-ти машин (48гб, 24-х ядерный ксеон 2ггц). На 4-х машинном кластере удалось выжать 200к логов в секунду, на 10-ти машинном 170к. Я допускаю, что что-то делал не так и из конфигураций выше можно выжать больше, но предварительный вывод, что у elasticsearch кластера не все хорошо с масштабированием. С учетом того, что мне надо обрабатывать порядка 2м логов в секунду похоже придется искать нечто отличное от elasticsearch. Буду крайне признателен за наводки на работающие решения.
+1
Посмотрите в сторону graylog.org
0
если не ошибаюсь, грейлог также использует ES
0
И вот что у нас получилось: вместо того, чтобы отправлять логи напрямую в Logstash мы принимаем их Rsyslog и складываем в файл.
А можно немного подробнее? Если можно, чтобы было понятнее, командой… Особенно логсташа. Спасибо
0
Sign up to leave a comment.
Как мы Elasticsearch готовили, или О том, как обработать 36 тысяч логов в секунду