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

Отправитель и сервер Logstash в одном ящике

Я пытаюсь настроить центральную конфигурацию logstash. Однако я хотел бы отправлять свои журналы через syslog-ng, а не через сторонних поставщиков. Это означает, что мой сервер logstash принимает через syslog-ng все журналы от агентов.

Затем мне нужно установить процесс logstash, который будет читать из / var / log / syslog-clients / * и захватывать все файлы журналов, которые отправляются на центральный сервер журналов. Затем эти журналы будут отправлены в Redis на той же виртуальной машине.

Теоретически мне также нужно настроить второй процесс logstash, который будет читать из redis, начинать индексацию журналов и отправлять их в elasticsearch.

Мой вопрос:

Должен ли я использовать два разных процесса logstash (отправитель и сервер), даже если я нахожусь в одном ящике (мне нужен один экземпляр сервера журналов)? Есть ли способ иметь только одну конфигурацию logstash и читать процесс из syslog-ng ---> писать в redis, а также читать из redis ---> выводить в эластичный поиск?

Схема моей установки:

[клиент] ------- syslog-ng ---> [сервер журнала] --- syslog-ng <---- logstash-shipper ---> redis <---- logstash-server - -> эластичный поиск <--- кибана

Я не уверен, правильно ли я понял вопрос, но я знаю, что Syslog-NG может отправлять напрямую в Logstash без необходимости использования дополнительного отправителя в качестве посредника. Вы можете определить место назначения в syslog-ng.conf, как в этом примере:

destination d_logstash { 
  tcp("10.0.0.1" port(5514)); 
};

Затем определите действие журнала для отправки сообщений системного журнала из source s_src к destination:

log {
  source(s_src);
  destination(d_logstash);
};

Что должно позволить передачу сообщения. Не забудьте перезапустить службу syslog-ng, чтобы изменения вступили в силу.

источник: Книга Logstash