В статье блога рассматривается возможность интеграции консольного просмотровшика логов lnav для анализа журналов Kablink, appserver и catalina.

Встроенный в административную панель системная кнопка отчёты, даёт администратору возможность контроля работы пользователей и системы в целом, но когда Портал выключен по различным причинам, сделать анализ журнал Tomcat-Apache становится невозможно. Существующие текстовые редакторы tail, cat, less ... не позволяют уверенно ориентироваться в сложных системных сообщениях. Специальные программы для анализа логов, Rsyslog, ElasticsearchFluentd... требуют серьёзного изучения, сложны в настройках и отвлекают для своей работы дополнительные ресурсы. 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 - отображение прошедшего времени между строками
    - гистограмма
    - откл.гистограммы
    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.