Панель инструментов для журналов в реальном времени
У нас есть ряд сервисов Python, многие из которых используют Nginx в качестве обратного прокси. Прямо сейчас мы проверяем запросы в реальном времени, следя за журналами, найденными в /var/log/nginx/access.log. Я хочу сделать эти журналы общедоступными в совокупности на веб-сервере, чтобы людям не приходилось использовать SSH на отдельных машинах.
Наша текущая инфраструктура свободно (инструмент, похожий на logstash, как мне сказали) отправляет журналы на централизованный сервер статистики, на котором установлены Elasticsearch и kibana, с той идеей, что kibana будет служить интерфейсом для просмотра наших журналов.
Я ничего не знаю об этих услугах. Если бы я хотел просматривать наши журналы в реальном времени, был бы этот стек вообще осуществимым? Может ли Elasticsearch предоставлять данные в реальном времени с задержкой всего в секунду? Имеет ли kibana встроенную функциональность для автоматического обновления страницы при поступлении новых данных журнала (т. Е. Имеет ли она сокетное соединение с asticsearch? Или я попал в неправильный набор инструментов?
2 ответа
У меня есть конвейер "access.log (или другие журналы) - logstash (или другой индексатор ES) - Kibana" для ряда служб и журналов, и он работает хорошо. В нашем случае задержка составляет более секунды, но это связано с буферизацией в журналах или индексатором ES, а не из-за самой Kibana/ES.
Вы можете настроить Kibana для отображения только последних X минут данных и обновления каждые Y секунд, что дает приличное ощущение в реальном времени - и хорошо смотрится на телевизорах;)
Имейте в виду, что Kibana иногда может выдавать довольно плохие запросы, которые могут привести к сбою кластера ES (хотя, похоже, это значительно улучшилось в более поздних версиях ES и Kibana), поэтому не полагайтесь на это как на постоянное хранилище данных для ваших журналов, и не разделяйте кластер ES, который вы используете для Kibana, с приложениями, которые имеют более строгие требования высокой доступности.
Как отметил Бурхан Халид, эта установка также дает нам возможность детализировать и изучать конкретные паттерны в деталях, что очень полезно ("Что это за пик на этом графике?" - увеличьте масштаб, добавьте пару фильтров, посмотрите на несколько пример журнала строк, фильтр снова - загадка разгадана). Я думаю, что избавление нас от необходимости копать где-то еще, чтобы получить больше деталей, когда мы видим что-то странное, на самом деле является лучшей частью этого решения.
Kibana - это просто интерфейс поверх упругого поиска. Он напрямую связывается с эластичным поиском, поэтому данные на нем так же реальны, как и данные, которые вы вводите в эластичный поиск. Другими словами, это так же хорошо, как ваши коллекционеры (свободно в вашем случае).
Он работает, когда вы определяете временные ряды, которые он использует для запроса данных из эластичного поиска, а затем вы можете всегда выполнять поиск по ключевым словам, а затем визуализировать эти данные.
Если под "реальным временем" вы подразумеваете, что хотите, чтобы графики перемещались / анимировались - это также возможно (это называется "потоковые панели мониторинга"); но это не настоящая сила кибаны - настоящая мощь - это очень богатый механизм запросов, углубленный во временные ряды, выполняющий вычисления (верх х за период у).
Если все, что вам нужно, - это визуальную / движущуюся вещь, которую можно разместить на настенном телевизоре - это возможно с кибаной, но имейте в виду, что вам придется хранить все в asticsearch, поэтому, если вы не планируете делать какой-либо другой анализ, вы будете должны настроить вашу конфигурацию. Например, иметь действительно короткий TTL для сообщений, чтобы после их визуализации они больше не были доступны; или отфильтровать, чтобы отправить только те события, которые вы хотите построить. В противном случае у вас будет проблема с дисковым пространством.
Если это все, что вам нужно, было бы проще взять библиотеку диаграмм javascript и использовать ее на своем портале.