2015-05-21 3 views
0

Мы пытаемся найти наилучшую конфигурацию logstash для нашего приложения. Приложение состоит из около 30 процессов, которые вместе составляют сервер, работающий на Linux-машине.Logstash из нескольких процессов на одном компьютере

Каждый из этих процессов записывает в файл журнала в выделенной папке. Мы хотим собрать эти журналы и сохранить их в elasticsearch с помощью logstash.

У нас есть проблемы с ресурсами. Мы не сможем записывать на диск как журналы, так и вести поиск elasticsearch с теми же данными (elasticsearch занимает 5 раз в пространстве этих файлов журналов)

На данный момент мы думали о попытке выполнить вывод каждого процесса к его собственному logstash, который будет содержать фильтр grok и выход elasticsearch, в то же время у нас будет экземпляр elasticsearch, работающий на той же машине.

Это кажется тяжелым, если у вас 30 экземпляров логсташа. Есть ли лучшее решение? Собираемся ли мы разобраться с CPU, или это стандартный способ делать такие вещи?

+0

Вы не можете держать стоит один день из бревен на машине, а затем удалить их после того, как они были обработаны по logstash? Как насчет перенаправления stdout на порт, который, по словам моего google-fu, должен быть возможен. Также, кажется, трудно поверить, что вы видите 5-кратный штраф за использование elasticsearch. –

+0

@AlainCollins. Слишком много, мы вращаем журналы каждые 10 минут, сохраняя до 10 оборотов назад. Если я позволю logstash читать из них, и пока он читает, произойдет ротация, я собираюсь освободить журналы. Кроме того, как logstash обрабатывает логарифмы? – user1708860

+0

В журнале logstash говорится, что «он обрабатывает вращения», FWIW. Если вы беспокоитесь об этих крайних случаях, настройте logstash для обработки только недавно повернутого файла (например, logfile.1). Если у него есть другой номер inode, вы должны быть в порядке. –

ответ

0

Может быть, я что-то не хватает, но я думаю, что вы можете иметь один logstash прослушивание нескольких портов TCP https://www.elastic.co/guide/en/logstash/current/plugins-inputs-tcp.html

+0

Мы рассмотрели использование сокетов, но теперь это касается того, как. У нас есть небольшой простой репортер журнала, мы можем его изменить, чтобы сообщать в сокет. Но это решение для меня не кажется правильным, теперь мы должны запустить logstash для всех, кто связывается с инфраструктурой журнала. Другое решение, которое мы имели в виду, заключалось в том, чтобы передать вывод в простую программу на C++, которая считывает из stdin и записывает в сокет. В обоих решениях мы имеем дело с основными проблемами, связанными с логсташем и другими проблемами, связанными с сокетами. Не проще ли передавать этот вывод в клиент redis/zeromq/logstash-forwarder? – user1708860

+0

Если вы набиваете материал, logstash все еще может быть разбит, и вы должны быть готовы к этому. –

Смежные вопросы