Я реализовал logstash (в тестировании), как указано ниже.
Разрыв компонента
- Клиент Rsyslog: По умолчанию syslog установлен во всех Linux-дисках, нам просто нужно настроить rsyslog для отправки журналов на удаленный сервер.
- Logstash: Logstash будет получать журналы из клиента syslog, и он будет магазин в Редисе.
- Redis: Redis будет работать брокером, брокер должен хранить данные журнала, отправленные агентами, до того, как индексы logstash его будут содержать. Наличие брокера повысит производительность сервера стартапов, Redis будет действовать как буфер для данных журнала, до тех пор, пока logstash не индексирует его и не сохранит. Как и в ОЗУ, это слишком быстро.
- Logstash: да, два экземпляра logstash, первый для сервера syslog, 2nd для чтения данных из redis и отправки в elasticsearch.
- Elasticsearch: Основная задача центрального сервера журналов - собрать все журналы в одном месте, а также предоставить некоторые значимые данные для анализа. Как и вы, вы должны иметь возможность искать все данные журнала для своего конкретного приложения в определенный период времени. Поэтому на нашем сервере журнальной статистики должен быть поиск и индексирование. Чтобы достичь этого, мы установим еще один инструмент с открытым исходным кодом, называемый elasticsearch.Elasticsearch использует механизм создания индекса, а затем выполняет поиск этого индекса, чтобы сделать его быстрее. Это своего рода поисковая система для текстовых данных.
- Kibana: Kibana - удобный способ просмотра, поиска и визуализации ваши данные журнала
Но я немного путаюсь с redis. используя этот сценарий, я буду запускать 3 процесса java на сервере Logstash и один redis, это займет hugh ram.
Вопрос Могу ли я использовать только один логсташ и эластичный поиск? Или что было бы лучше?