LiLaLo
Материал из Xgu.ru
- Автор: Игорь Чубин
Репозиторий проекта
http://xgu.ru/hg/lilalo
Live Lab Log (дословно: живой лабораторный журнал) — система, предназначенная для автоматического фиксирования и распознавания хода работы с терминалом Unix-системы. Может применяться для автоматизированного документирования процесса работы системного администратора, для записи хода лабораторных работ во время обучения, для создания заготовок при написании документации, для слежения за ходом работы младших администраторов.
Содержание |
[править] О программе
В ходе работы в консоли Unix/Linux-системы, будь то непосредственное выполнение задач администрирования, экспериментирование с целью найти и описать решение какой-то задачи или самообучения, демонстрация приёмов работы на живых примерах или что-то другое, часто возникает необходимость зафиксировать происходящий в консоли процесс.
Записи нужны для того чтобы или просто использовать при попытке повторить те же действия, но в другой раз, или потом, доработав их и снабдив необходимыми комментариями и ссылками, превратить их в полноценную документацию.
Каждый из этих способов имеет собственные недостатки. Подробнее:
[править] Возможности LiLaLo
Предлагаемое решение свободно от всех перечисленных выше недостатков и обладает рядом преимуществ.
LiLaLo - это script на стероидах. LiLaLo использует для записи программу script. Однако, в отличие от программы script в чистом виде, во время записи фиксируются не только команды и результат их работы, но и множество дополнительной информации о командах. Это позволяет в дальнейшем более полно реконструировать ход работы.
Кроме того, информация, которую LiLaLo автоматически записывает при ведении журнала, позволяет выполнять анализ хода работы и автоматически создавать заготовки для сценариев командного интерпретатора.
Автоматическая запись дополнительной информации о командных строках возможна за счёт модификации приглашения командной строки. Хотя визуально это практически никак не заметно, приглашение командной строки модифицируется, и в него, в скрытом виде, добавляется несколько параметров, характеризующих команду, которая набирается в этом приглашении и будет выполнена. В их числе:
- текущий каталог, из которого производится вызов команды;
- время;
- код завершения предыдущей команды
и ряд других.
Помимо того, что производится запись всего хода работы в командной строке, автоматически фиксируются все изменения в файлах, сделанные с помощью текстового редактора. Есть возможность делать скриншоты и показывать в журнале окна, которые, возможно, имеют непосредственное отношение к производимым в консоли действиям.
Записанные данные хранятся в формате программы script, то есть, фактически, непосредственно в виде набора команд терминалу. Они могут быть обработаны и представлены в структурированной форме, в виде XML-файла. Который в дальнейшем может быть либо преобразован в HTML файл и визуализирован, либо может просто попасть в хранилище.
Анализ терминального скрипта, преобразование его в XML-форму и визуализация при помощи web-интерфейса выполняется в реальном времени и без всякого дополнительного участия пользователя.
[править] Устройство LiLaLo
Анализ терминального скрипта, преобразование его в XML-форму и визуализация через web-интерфейса выполняется с помощью следующих модулей:
- l3-скрипт - запись хода работы;
- l3-agent — анализ терминального скрипта, преобразование его в XML-форму;
- l3-backend — приём и размещение в хранилище;
- l3-frontend — представление через Web-интерфейс.
Подробнее:
[править] Знакомство
Быстрое знакомство с LiLaLo можно осуществить за несколько минут. Для этого нужно установить l3-скрипт и l3-agent и нацелить его на публичный l3-backend. При использовании скрипта автоматической инсталляции lilalo для этого достаточно выполнить только две команды.
Скриншоты дают представление о работе программы. Наиболее интересные моменты её использования показаны здесь.
Примеры журналов лабораторных работ можно посмотреть на xgu.ru/l3/. Там находится большое количество журналов лабораторных работ с тренингов по Unix-системам, которые проводятся в УЦ Сетевые Технологии компании Techexpert.
[править] Инсталляция
Подробнее:
[править] l3-agent
l3-agent — программа, выполняющая анализ script-файлов, и представляющая данные в форме XML-потока. Потом может записываться в файл или передаваться на сервер l3-backend'.
Подробнее:
[править] l3-backend
(нужно написать)
Подробнее:
[править] l3-frontend
(нужно написать)
Подробнее:
[править] Конфигурация и l3-config
- Основная страница: Настройка LiLaLo
Источники конфигурационных параметров, в порядке возрастания приоритета:
- l3config.pm — значения параметров по умолчанию;
- /etc/lilalo/lilalo.conf — общесистемная конфигурация LiLaLo;
- ~/.l3rc — пользовательский конфигурационный файл;
- аргументы командной строки.
Просмотреть текущее значение параметра:
$ l3-config backend_address 127.0.0.1
Если конфигурационный параметр относится к агенту, и он запущен в настоящий момент, его нужно перезапустить отправкой сигнала HUP:
$ pkill -1 l3-agent
[править] Использование
- Основная страница: Использование LiLaLo
Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду несколько простых вещей.
По умолчанию запись не начинается автоматически. Для того чтобы начать запись в журнал, нужно выполнить команду:
$ l3script
При это автоматически данные начинают записываться и ретранслироваться на backend-сервер.
Если нужно прекратить запись, выполняется команда
$ exit
Вы возвращаетесь в свой командный интерпретатор.
Если необходимо, чтобы запись велась всегда, нужно изменить строку в ~/.bashrc с
[ $0 == l3script ] && . ${user_home}/.lilalo/l3bashrc && _l3_start
на
. ${user_home}/.lilalo/l3bashrc && _l3_start
В этом случае как только запускается командный интерпретатор, запись начинается сразу же.
[править] Скриншоты
На скриншотах представлены наиболее интересные моменты работы программы.
- В терминале идёт запись.
Но с точки зрения того, кто работает в нём, это практически незаметно. Если запустить команду w, то видно, что в текущем терминале работает script:
%$ w 11:22:41 up 1:48, 4 users, load average: 0,13, 0,06, 0,02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT igor tty1 - 09:35 1:47 2.93s 0.10s -bash igor pts/2 :0.0 10:22 0.00s 0.28s 0.16s script -f -c l3
Если в выводе w для текущего терминала в поле WHAT находится запись w, а не script, то значит запись не идёт. Начать запись можно командой l3script
- Журнал работы с терминалом Unix-системы. Запоминаются команды и результат их выполнения, код завершения команды, время выполнения и множество другого.
- Изменения сделанные в файлах. При использовании текстового редактора в журнал попадают сделанные изменения, они представлены в виде diff-блока желтого цвета.
- Комментарии. Комментарии в журнал можно вставлять непосредственно из командной строки.
- Скриншоты. Если сфотографировать какое-то окно, не терминал, то оно автоматически попадёт в журнал
- Автоматическое комментирование команд. Краткое описание команд доступно в виде всплывающих подсказок
- Статистика. Статистическая информация о ходе работы и наборе использованных команд
[править] Вопросы и ответы
[править] lilalo не устанавливается, выдаёт ошибку про iconv. Что делать?
Проинсталлировать недостающее программное обеспечение. На RedHat-подобных дистрибутивах чаще всего ошибка решается путём установки compat-glibc-headers:
%# rpm -i compat-glibc-headers-2.3.4-2.26.i386.rpm
[править] Авторские права и лицензия
Права на LiLaLo принадлежат её авторам. Список авторов указан в файле README в корневом каталоге дистрибутива LiLaLo.
Программа распространяется по лицензии BSD. Текст лицензии находится в файле LICENSE в корневом каталоге дистрибутива LiLaLo. С ним также можно ознакомиться в [1] (en) и в [2] (рус).
[править] Существующие ограничения, ошибки и идеи
Основные ограничения, существующие на текущий момент:
- поддерживается только bash (csh и zsh не поддерживаются).
Программа находится в состоянии развития. Список изменений, которые должны быть сделаны в ближайшее время, и стратегические идеи здесь:
В конце той же страницы находится раздел, в котором перечислены известные ошибки в программе. Можно дописывать новые.
[править] Название и символика
Название LiLaLo произошло от сокращения Live Lab Log — живой журнал лабораторных работ.
Как выяснилось потом, lilalo на цыганском означает в письменном виде, то замечательно отражает назначение программы.
Выдержка из цыганско-немецкого словаря [3]:
lil — Brief — (§ subst.mask.a) lil — Reisepaß — (§ nomphr.) lila — Dokument(e) — (§ subst.pl.) lilalo — Brief-, brieflich (§ adj.)
В одном из детских немецких стихов зафиксировано использование термина "lilalo". Возможно, слово вырвалось несознательно и было просто созвучно рифме, но не исключено, и то что песенку пел будущий юниксоид:
Alle Häslein singen leise Auf der Wiese hinterm Wald wohnt Fräulein Liese Owiealt. Liebt die Musik und schöne Lieder, spielt auf der Flöte immer wieder Das Lied vom schönen Monat Mai. " Er ist gekommen , lilalei, Die Bäumlein blühen lilalo, Jetzt ist er da und wir sind froh." Und alle Häslein auf der Wiese, die singen gern mit Fräulein Liese. Die schöne , dumme Frühlingsweise vom Wonnemonat Mai.
В настоящий момент символ LiLaLo не существует. Возможные варианты:
- Лабрадор (лаборатор)
[править] Внешние ссылки
- LiLaLo - домашняя страница проекта
- Журналы лабораторных работ на xgu.ru
Обсуждение в блогах и форумах:
- Просто логгируй это: LiLaLo - заметка в блоге dikiy.com
- Запись действий в консоли с помощью ttyrec - заметка в блоге Романа Лагунова о системах записи работы в консоли и X Window
- LiLaLo - заметка в блоге Александра Соловьёва
- BASH shell session logging on remote host (англ.)
Другие проекты по записи хода работы в консоли и в графических интерфейсах:
- vnc2swf (примеры использования http://nat.org/demos/)
Автоматическое создание скриншотов:
[править] LiLaLo на Xgu.ru
- LiLaLo
- Инсталляция LiLaLo
- Использование LiLaLo
- Устройство LiLaLo
- LiLaLo TODO
- Компоненты: l3-agent | l3-frontend | l3-backend | l3script | l3text