Skip to content

Latest commit

 

History

History
236 lines (167 loc) · 10.7 KB

README.md

File metadata and controls

236 lines (167 loc) · 10.7 KB

% Viewer OMNIbus event

OMNIbus event viewer

Зачем это нужно

В связи с массовым отключением Java в современных броузерах и упорным желанием IBM эту самую Java использовать в своих интерфейсах сложилась ситуация: для того чтобы просмотреть события в OMNIbus надо преодолеть ни мало трудностей:

  • Найти броузер с поддержкой Java
  • Найти Java под этот броузер
  • Все это установить
  • Следить, чтобы ненароком не обновилось

Что предлагается

Поэтому был написан код, который стартует либо как сервис на сервере приложеия, либо как java приложение (в зависимости от того как собрано: jar или war). В итоге имеем: на порту (8080) крутится серверная часть, через которую общаемся с OMNIbus. От клиента требуется любой броузер без всяких java и плагинов.

Что умеет

Основные функции:

  • Показывает текущий список событий
  • Можно посмотреть поля события
  • Можно посмотреть детали события
  • Можно редактировать поля, но не все
  • Можно создать свое тестовое событие
  • Можно массово подтвердить или сменить важность событий
  • Можно выдать "прямой" SQL запрос на систему

Основные недостатки

К сожалению, основная масса настроек "зашита" в коде, поэтому если нужны свои поля нужно править классы в коде. Отвязаться от этого у меня не вышло. Hibernate нормально не прикручивается, так как OMNIbus все-таки не sybase и нужные для Hibernate мета данные не отдает. Постарался это дело "облагородить", но что вышло, то вышло... В принципе для основных задач работы с базовыми событиями самое то.

Что планируется

Буду править по-мере возникновения задач и идей. Документацию буду дополнять. Особенно если эта поделка будет кому-то интересна. :)

Да, на English тоже попробую перевести, но позже.

English instruction will be later, sorry

В общем поехали...

Работа с программой (jar)

Алгоритм следующий:

  • Правим код, если требуется
  • Запускаем сборку командой mvn clean package
  • В итоге имеем jar файл (eventViewer-x.x.x-SNAPSHOT.jar) в папке target.
  • Этот файл запускаем командой java -jar eventViewer-....jar

Запустится сервис на порту 8080. К нему обращаемся любым броузером на адрес: localhost:8080/eventViewer

Полезные ключи запуска:

  • для смены порта используем ключ --server.port=<port_for_binding>
  • указание файла настроек --spring.config.location=file:<path_to_settings.yml>

В итоге, командный файл может выглядеть так (для Win):

@echo off

set EVNAME=eventViewer-0.3.3-SNAPSHOT.jar
set EVCONF=conf/settings.yml
set EVPORT=8080

java -jar %EVNAME% --spring.config.location=file:%EVCONF% --server.port=%EVPORT%

Или для *nix

#!/bin/sh

EVNAME=eventViewer-0.3.3-SNAPSHOT.jar
EVCONF=conf/settings.yml
EVPORT=8080

java -jar $EVNAME --spring.config.location=file:$EVCONF --server.port=$EVPORT

Работа с программой (war)

Создаем war файл. Для этого правим pom.xml: заменяем Artifact Packaging на значение war вместо jar. Собираем как обычно mvn clean package, но на выходе будет файл eventViewer-x.x.x-SNAPSHOT.war. Его деплоим на свой сервер приложения. Можно удалить папку WEB-INF/lib-provided для уменьшения размера.

Для tomcat. Кладем полученный war в папку webapps.

Windows

Для подключения файла с настройками запускаем сервис через команду tomcat#w.exe для Win версии. Во вкладке Java добавляем ключ:

-Dspring.config.location=file:///D:/tomcat/conf/settings.yml

Путь правим на свой.

*nix

Файл с настройками можно прописать в переменную окружения:

_JAVA_OPTIONS=spring.config.location=file:conf/settings.yml

либо в файле setenv.sh инталляции tomcat. Детали в документации на продукт...

Файл с настройками

Все настройки лежат в файле conf/settings.yml. Настройки поделены на три секции:

  • presets
  • columns
  • colors

presets

Здесь один набор параметров - filterSets. Содержит список предзагружаемых фильтров, которые будут видны в Web интерфейсе. Для каждого фильтра настраивается два атрибута:

  • name - Имя, которое отображается на Web
  • filter - Сам фильтр, который будет применен при запросе к списку событий. Синтаксис OMNIbus, т.е. используются регулярные выражения.

columns

Здесь два набора параметров: colSets и colDetails

colSets. Содержит список полей, который будет выводиться дополнительно к основному в списке событий из OMNIbus. Основной список содержит поля (выводятся всегда):

  • Acknowledged
  • Severity
  • FirstOccurrence
  • LastOccurrence
  • AlertGroup
  • AlertKey
  • Node
  • NodeAlias

Остальное из colSets. Настраивается два атрибута: col - имя поля класса, в котором содержится значение поля таблицы событий OMNIbus и header - заголовок для поля, который будет отображаться при выводе списка событий.

colDetails. Содержит список пользовательский полей класса, связанного с событием OMNIbus, который надо выводить при запросе детальной информации. Этот список является дополнением к основному списку "зашитому" в коде. Основной список формируется из обязательных полей, присутствующих во всех инсталляциях OMNIbus и описания в этой секции не требует.

colors

Здесь один набор параметров colorSets. Набор позволяет изменить цвета подсветки событий в зависимости от их важности. Настраивается два атрибута: code - значение важности (0 - 5) и соответствующий ему цвет - color. Для описания цвета используется синтаксис html

Работа с кодом

//TODO

Описание классов

Пакет Model

Здесь описываются все поля события.

BaseEvent

Событие с базовыми полями описывается. Его правка не предусматривается, хотя и возможна.

Event

Класс с дополнительными полями, которые появляются по мере установки дополнительных пробников, например:

  • NcKL
  • ITM probe
  • TBSM server and probe
  • ITNM
  • ...

Описание шаблонов

  • base.html - стартовый шаблон
  • columns.html - выводит список колонок, имеющихся в подключенном OMNIbus
  • customFields.html - шаблон для редактирования "своих" полей, т.е. полей из colDetails. Поля для редактирования появляются после активации Advanced режима
  • detail.html - выводит для просмотра поля события
  • alertsdetails.html - страница для вывода деталей по события (alerts.details)
  • edit.html - форма для редактирования полей события
  • view.html - выводит список событий
  • rawmode.html - форма для создания и выполнения произвольного SQL-запроса
  • index.html - страница логина
  • helpclass.html - страница со списком зарегистрированных на OMNIbus классов. Появляется при создании своего события
  • errorspage.html - страница для вывода ошибок

Добавление своих полей

//TODO

Для добавления своего поля:

в классе Event

  1. Добавляем переменные-поля соответствующих типов (String, Integer и т.д.).
  2. Добавляем getter и setter.
  3. Добавляем новые поля customFields.html согласно требуемому формату в виде fragment.
  4. Добавляем в edit.html фрагменты из пункта 3.

Если редактирование своих полей не требуется, то выполняются только п.п. 1,2