Я пытаюсь настроить центральную конфигурацию 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