26.06.2017
Эффективная Навигация М2М
Меню сайта
Категории раздела
BNComplex работа с сервером [13]
Приемы, методы, дополнительное ПО
Форма входа
Вход через Google
Вход через Вконтакте
Вход через Facebook
Партнеры
Реклама

Дополнительное ПО для BNComplex (часть 1) - Поиск строк в логах

Сервер BNComplex хранит логи работы в текстовых файлах. Более того, так как серверная часть выполнена в виде служб, то это практически единственный способ  Обычно, для записи логов используется специальная служба "BN Logger Service". Служа создает тектовые файлы в соотвествии с ее настройками, производимыми в ini файле (см. идущую в составе документацию).  Текстовые файлы достаточно информативны, содержат много информации, посему просмотр оных может дать много пищи для размышления.

Периодически приходится просмотривать эти логи (журналы работы) оставленные программой BNComplex - при чем, данные файлы могут насчитывать многие и многие Мб, и просматривать их вручную (Блокнотом) крайне не удобно, особенно когда знаешь что именно тебе нужно найти.

В таких ситуациях незаменимыми становятся утилиты текстового поиска в файлах, которые позволяют по заданной маске найди строку

Первое что нам потребуется это findstr, входящая в комплект поставки Windows server (да и не только)

Достоинства: оно уже есть в составе windows, проста в использовании, не требует лицензии (входит в комплект Windows)

Недостатки:

Бедность поиска Из-за использования ограниченного набора шаблонов для регулярных выражений поиск сложных конструкций крайне сложно выполним.
Медлительность
Относительно медленная работа, по сравнению с другими утилитами
ограниченность вывода
выводит только искомую строку, а часто нужны строки выше или ниже искомой.

Именно бедность поиска и ограниченность вывода толкнули на поиск замены для данного средства. В качестве алтернативы была выбрана один из клонов grep

Достоинства: использование сложных регулярных выражений для поиска, бесплатность лицензии, быстрый поиск, широкие возможности коммандной строки, расширенный вывод найденного.

Недостатки:

Отсуствие руссификацииИнструкция только на английском, однако в интернете достаточно описаний по использованию ПО

И так, выбор упал на Grep как "Must have", если мы хотим быстро просматривать логи на предмет поиска в них заранее определенных строк.

Это важно! Большинство приводимых примеров поиска будет ориентированно именно на использование вышеуказанной утилиты.

Выводы:

Для работы используем:

- Блокнот = когда не знаем что ищем, или для просмотра определенного времени в логе

- grep = когда значем что ищем - маску для поиска.

Для примера покажу, как можно сделать выборку для поиска информации об IMSI модема, установленного на навигационном АТ М2М CyberGX (иногда бывает, что номер АТ "сбивается" и на сервер приходит что-то мало вразумительное, однако прибор в прочих выполняет свои функции - определяет свою позицию, передает данные, и узнать что это за прибор - его номер - можно только по номеру INSI. После можно отправить команду изменения номера для АТ, что вернет все на место).

Для этого воспользуемся логами службы TCPGate (а других вариантов и нет...), которая "общается" с АТ, предоставляя "декодированные" данные уже для других служб BNComplex-а

Скрипт выборки таков:

bin\grep.exe -E -U -B3 ".*Login request from [[]{1}00160000.*" C:\BNComplex\Logs\TCPGate\TCP100911.log >TCPlog_find.txt
start TCPlog_find.txt

где

  • -B3 - ключик означает что кроме искомой нужно еще три строки выше вывести.
  • ".*Login request from [[]{1}00160000.*" - шаблон поиска строки логина на сервер АТ с указанным серийным номером. Шаблон указывается в кавычках. Сочетание симолов ".*" обозначает любой символ либое количество раз (см. инструкцию к grep) для отображения квадратных скобок используется указание множества "[[]{1}". Что в "переводе" означает - символ 1 подрад идущий символ "[", после указываются цифры номера АТ
  • C:\BNComplex\Logs\TCPGate\TCP100911.log - после шаблона указывается имя анализируемого файла, в нашем случае это файл лога службы TCPGate. В качестве имен файлов можно так же использовать общепринятые подстановочные символы: например C:\BNComplex\Logs\TCPGate\TCP1009*.log - все файлы из каталога "C:\BNComplex\Logs\TCPGate\", с именем начинающимся на TCP1009 и далее любые симовлы, с расширением log
  • TCPlog_find.txt - весь резльтат вывода записывается в файл 
  • start TCPlog_find.txt и после открывается блокнотом

пример возврата

17/01/2011 00:06:29.218 (I) Main: Accepted with thread ID=035C5A30
17/01/2011 00:06:29.218 (I) 035C5A30: Received [AFFF220500001701110006330000000000160000050002509966612927582501DDFA]:2
17/01/2011 00:06:29.218 (I) 035C5A30: IMSI: [0250996661292758]
17/01/2011 00:06:29.218 (I) 035C5A30: Login request from [00160000] ver.293
--
17/01/2011 01:04:35.265 (I) Main: Accepted with thread ID=035D5068
17/01/2011 01:04:35.265 (I) 035D5068: Received [AFFF2205000017011101043900000000001600000500025099666129275825013EFA]:2
17/01/2011 01:04:35.265 (I) 035D5068: IMSI: [0250996661292758]
17/01/2011 01:04:35.265 (I) 035D5068: Login request from [00160000] ver.293

Как видим, IMSI прибора в логах не указан с привязкой к номеру АТ (строка с IMSI не содержит номер АТ), однако, после строки "IMSI" идет строка "Login request from" - ее то мы и ищем, выводя заодно 3 предшествующих строки (3- для запаса, обычно хватает одной для данного случая, однако при большом потоке данных строки лога могут перебиваться данными от разных приборов). Так же из примеры видно, что данный поиск крайне затруднительно выполнить при помощи findstr, так как нам фактически требуется строки выше от искомой, что findstr не позволяет выполнить.


Читайте далее Часть 2 = работа с базой данных комплекса

Читайте так же: BNComplex - настройка пути логирования, форматы строк , BNComplex: Контекстное меню для файлов *.log - быстрый вызов типовых действий



Похожие материалы
Категория: BNComplex работа с сервером | Добавил: logoff (17.01.2011) | Автор: Бондарь Михаил W
Просмотров: 1681 | Теги: просмотр журналов, BNComplex, findstr, grep, логи | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
TOP 10 Популярное
1 Оборудование> Гранит-Навигатор 4.14
2 Оборудование> Абонентский терминал M2M Cyber GLX
3 Оборудование> Гранит-Навигатор 4.14: Настройка терминала
4 Прочее> "Красные" против "Синих" - статистка космических запусков России (СССР) и США
5 CyberFleet, CrossPoint> КиберФлит: Учет топлива при помощи датчиков
6 CyberFleet, CrossPoint> CyberFleet: Переустановка CyberFleet
7 Оборудование> M2M Cyber GLX: отправка команд
8 Прочее> SQL: CyberFleet: Занятие №3 Объединение таблиц Часть 1/2 (теория, inner join)
9 CyberFleet, CrossPoint> КиберФлит: Причины расхождения пробега по данным одометра и карте
10 CyberFleet, CrossPoint> КиберФлит: Подключаем карту Google
Наш опрос
Тахографы следует?
Всего ответов: 21
LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС