LINUX.ORG.RU
ФорумAdmin

filebeat (из эластика) пропускает логи

 


0

1

Скажите, можно ли запустить его так, чтобы указать только один лог, потому указать еще один лог и так далее?

очень много файлов логов, порядка 10000 - похоже он не все логи успевает отправить в логсташ.

на сколько я filebeat понимаю он только читает и отправляет как есть, верно? у меня custom лог формат в nginx может это ему как то мешает? регулярка для распарсивания у меня стоит на стороне логсташа. включен модуль nginx в filebeat и там указаны access логи пути по маске, но файлов и правда много и файлы пишутся очень активно. вижу явно запись в файле а в эластике этого в итоге нет.

вообще стеке эластика грантия доставки есть? у filebeat есть какая то очередь к примеру если он потерял соединение?

может есть какие альтернативы? сейчас у меня идея такая запускать в цикле filebeat по файлово, сначала первый потом второй потом третьий, но не могу найти как это сделать.

либо может кто подскажет еще варианты, может количество равесторов увеличить\уменьшить как то можно?


Скажите, можно ли запустить его так, чтобы указать только один лог, потому указать еще один лог и так далее?

А смысл? Вы так можете просто каким-нибудь rsync\scp перекинуть файл. Filebeat нужен для того чтоб одновременно отслеживать и отправлять несколько файлов.

на сколько я filebeat понимаю он только читает и отправляет как есть, верно?

Ну грубо говоря да если у вас нет никаких обработок.

у меня custom лог формат в nginx может это ему как то мешает?

Ему все равно, он по сути просто построчно смотрит файл и отправляет что там есть.

включен модуль nginx в filebeat и там указаны access логи пути по маске

В общем может тут и будет какая-то проблема (т.к. у вас кастомный лог, а модуль как раз парсит строки), попробуйте без него.

файлов и правда много и файлы пишутся очень активно

"Много" и "активно" это относительно, сколько это в числах?

вообще стеке эластика грантия доставки есть?

Конечно (если только вы не по udp пихаете логи, и то мне кажется что он как-то там внутри проверяет)

у filebeat есть какая то очередь к примеру если он потерял соединение?

Есть registry-файлы (путь посмотрите в конфиге, по дефолту /var/lib/filebeat/registry), он туда пишет информацию о том какие файлы обрабатывает и смещение от начала, на котором остановил обработку. Сами очереди внутри файлбита и я не знаю можете ли вы туда влезть, но не уверен что вам это нужно вообще.

может есть какие альтернативы?

logstash, всякие варианты syslog'а, вообще в логстеш хоть через самописное приложение по tcp\udp можно слать данные. Посмотрите input-плагины логстеша.

либо может кто подскажет еще варианты

Можете попробовать запускать несколько отдельный filebeat'ов для разных групп файлов. Вообще вам стоит начать с чтения логов.

micronekodesu ★★★
()
Последнее исправление: micronekodesu (всего исправлений: 2)
Ответ на: комментарий от micronekodesu

А смысл? Вы так можете просто каким-нибудь rsync\scp перекинуть файл.

да, но смысл в этом какой? я легко могу засинкать все логи на другой сервер, но толку от этого особого не будет - их все равно будет много. плюс только в том, они также будут там писаться rsync’ом как тут nginx и также харвесты будут попадать в те моменты когда файл активно дописывается, даже возможно более активно чем самим nginx.

Также, я сильно сомневаюсь что filebeat умеет сдвигать offset до конца предыдущей записанной до конца (с переносом на новую строку) записи. думаю он читает по конец доступный и записывает offset и строка записанная на половину - будет разбита на две части, и возомжно даже не отправлена в первое чтение где он читает первую половину, а будет отправлена только часть которая читает вторую половину - и вот вам кусочек данные который пропал. поэтому я спрашивал более умные альтернативы, возможно даже собственные реализациию.

В общем может тут и будет какая-то проблема (т.к. у вас кастомный лог, а модуль как раз парсит строки), попробуйте без него.

а какой модуль тогда использовать? или скажем так, какой конструкцию в yml файле для filebeat заюзать для отправки в логсташ?

Сами очереди внутри файлбита и я не знаю можете ли вы туда влезть, но не уверен что вам это нужно вообще.

Если логсташ не отвечает, что происходит? смещения продолжают увеличиваться? если он не успевает отправить все что нужно в логсташ, тоже? думаю там байда какая то происходит по факту.

VoDD87
() автор топика
Ответ на: комментарий от Deleted

если я ничего не путаю, то syslog может отправлять в logstash.

этот вариант мне нравится не очень, я сейчас делаю так nginx->syslog только не в logstash. в частности на отправку данных требуется время дополинтельное.

VoDD87
() автор топика

Собираю access логи по syslog, порядка 10К записей в секунду.
Брат жив, ничего не теряется.

zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.