Контроль и навигация журналов Портала kablink с исползованием программы Lnav.
В статье блога рассматривается возможность интеграции консольного просмотровшика логов lnav для анализа журналов Kablink, appserver и catalina.
Встроенный в административную панель системная кнопка отчёты, даёт администратору возможность контроля работы пользователей и системы в целом, но когда Портал выключен по различным причинам, сделать анализ журнал Tomcat-Apache становится невозможно. Существующие текстовые редакторы tail, cat, less ... не позволяют уверенно ориентироваться в сложных системных сообщениях. Специальные программы для анализа логов, Rsyslog, Elasticsearch, Fluentd... требуют серьёзного изучения, сложны в настройках и отвлекают для своей работы дополнительные ресурсы. Lnav -инструмент позволяюший сделать анализ сообщений журнала, используя облегчённую систему визуализации аналитики входяших сообшений.
lnav - расширенный просмотровый навигатор, файлов журналов для терминала, с дружественным интерфейсом для мониторинга и анализа. lnav не требует дополнительных усилий при установке. Lnav "всеядный" - может работать практически со всеми известными форматами журналов автоматически определять, читать, индексировать и выводить на экран полученные результаты. Содержимое сообшений файла журнала объединяются в одно представление на основе отметок времени происходяших событий.
Регулярный мониторинг и анализ журналов с поморью lnav поможет администратору улучшить эксплуатационные характеристики Kablink расширяя этим потенциальные возможности Портала.
- просмотр одного журнала
- просмотр и извлечение сообщения нескольких журналов
- автоматическое определение формата журнала
- фильтрация сообщений журнала
- наличие временной шкалы журнала
- включение режима pretty-print view
- анализ журналов с использованием SQL запросов
Подготовка
Развернуть lnav можно из репозитория, установив на сервере ALT Linux, где работает Kablink или скачав с сайта разработчика :
если система безопасности организации требует, для установки, пользоваться официальным репозиторием консультируетесь со специалистами по безопасности ОС вашей организации
# apt-get update
# apt-get install lnav
# apt-get install xclip
скачать с сайта и установить
# apt-get install lnav-x.x.x-x.x86_64.rpm
Теперь надо "нацелить" lnav на каталог где хранятся журналы Kablink с помощью сценария lnkb
#!/bin/bash
# просмотр анализ журнала appserver.log
lnav /opt/novell/teaming/apache-tomcat/logs/appserver.log
# просмотр анализ журнала catalina.out
lnav /opt/novell/teaming/apache-tomcat/logs/catalina.out
поместить сценарий в каталог
# ls -l /usr/local/bin
-rwxr-xr-x root root lnkb
запустить lnav
$ sudo lnkb
- ПРОСТРАНСТВЕННАЯ НАВИГАЦИЯ
PgUp - вниз на страницу
PgDn -вверх на страницу
↑ - Вверх на одну строку
↓ - Вниз на одну строку
l → - право половина страницы
Shift + l - Право десять столбцов
n|N - следующий / предыдущий поисковый запрос
> < - следующий / предыдущий поисковый запрос по горизонтали
s|S - следующее / существенное замедление в скорости сообщений журнала формат экрана
T - отключение s
u|U -перемещение по закладкам, вверх низ
w|W - поиск предупреждений начало, конец
e|E - поиск ошибок начало, конец
g|G Начало журнала / конец журнала
{ } - предыдущее / следующее место в истории - ХРОНОЛОГИЧЕСКАЯ НАВИГАЦИЯ
d|D - переместить на 24h верх или низ
1-6|Shift 1-6 - следующая |предыдущая 10 мин часа
7-8 - предыдущая / следующая минута
0|Shift 0 -предыдущий / следующая день - ЗАКЛАДКИ
m - пометить / снять отметку с верхней строки
M - пометить / снять отметку диапазона строк от последней помеченной до верхней
j - пометить следующей строки после ранее отмеченной вниз
k - снять отметку с предыдущей строки вверх
c - копировать отмеченные строки в буфер обмена
C - очистить отмеченные линии - ДИСПЛЕЙ
q - выход возврат предыдущий
P - симпатичный видов
T - отображение прошедшего времени между строками
i - гистограмма
I - откл.гистограммы
p - разбор строки
L - отключение lnav функций вид становится как простой терминал
Ctrl-w - отмена переносов всё в одном экране
Ctrl + f - включение / выключение всех фильтров в текущем представлении
x - переключить скрытие полей сообщения журнала. Скрытые поля будут заменены тремя маркерами и выделены желтым цветом.
СЕССИЯ
Ctrl + R - сброс утекшей сессии - ЗАПРОС
/ - Поиск строк, соответствующих регулярному выражению
/ - повторное нажатие отменяет поиск
После первого представления и общих сведений о работе и назначении горячих клавиш для навигаций по lnav, рассмотрим применение lnav на практике, просматривая сообщения основного журнала Kablink, appserver.log.
Набрав команду $ sudo lnkb попадаем в окно журнала appserver.log, с указаннием места относящиеся непосредственно к тому файлу, сведения которого нас интересуют.
если предполагается использования буфера clipboard, то для запуска lnav ввести $ sudo -E lnkab
Навигатор позволяет сортировать сообщения, выделяя из них со статусом WARN или ERROR, используя ← → клавиши перемещать строки в право или в лево, искать информацию выбирая строки с помощью ↓ ↑ , листать страницы сообщений с помощью клавиш PgDn PgUp , быстро переходить в начало или конец журнала.
Для более точного разбора хронологии исследуемых событий журнала, воспользуемся выделением временных врезок по секундно, или увеличим переходы временных интервалов, выбирая: минутные, суточные, часовые или 24 часовые хронологические периоды появляющихся событий.
Возможность делать отметки в сообщениях журнала с помощью закладок, делает навигатора lnav ещё привлекательней. Закладки можно ставить на одну строку или выделять несколько строк перемещаясь вверх или вниз по журналу, поиск закладок осуществляется с помощью клавиш u|U Предусмотрена возможность выделения диапазона строк для последующего разбора, все закладки можно копирования в буфер clipboard, очистить журнал от закладок можно с помощью Shift + C
Управлять выводимой, дисплейной, информации в удобном для восприятия виде, ещё одна хорошая особенность lnav, нажимая Shift+p мы переключается в режим Pretty-Print View, просто p полезен для просмотра журналов XML, JSON, при этом можно включить подробную хронологическую историю выводимых сообщений с помощью Shift+t, плавно перемещаясь в диапазоне времени с помошью s↑S↓. Выстраивание гистограмм iI даёт возможность оценить наличие сообщений и их количество со статусом Error или Warn, нажимая zZ мы можем увеличит/уменьшить временной ряд гистограммы. Иногда полезно показать информацию в привычном терминальном виде, без подсветки, используя Ctrl+l. Если надо вывести компактный экран сообщений журнала без переносов нажимаем Ctrl^w В заключение следует подчеркнуть, что вернутся из многих режимов или выйти из lnav можно воспользовавшись клавишами q Q.
Вся информация о манипуляциях пользователя с журналом сохраняются в истории сессии, при следующей загрузки исследуемого журнала сеанс восстанавливает следующие режимы и позиции:
- положение в файлах для просмотра
- информацию о поиске
- фильтры или подсветки фильтров
- закладки
- настройки временных хронологии
Сбросить историю текущей сессии можно воспользовавшись клавишами Ctrl^R в нижней командной строке экрана lnav.
Пожалуй самым востребованным режимом при разборе сообщений журнала, является поиск, в lnav этот функционал встроен в командную строку и имеет привычный знак-символ / имеющий двойное значение - включает\выключает поиск.
На этом обзор навигатора lnav заканчивается, остаётся только напомнить, что всё сказанное относится к разбору сообщений журналов Kablink, и поэтому другие возможности lnav опушены, чтобы не усложнять понимание возможностей использования lnav & Kablink.