Если у Вас есть Система Контроля и Управления Доступом или, проще говоря, СКУД, но вы не знаете, как можно получить полезную информацию из данных, которые эта система генерирует, то эта статья будет полезна Вас.



Сегодня мы расскажем о том, как с помощью Splunk, о котором говорили ранее, можно получать аналитику по результатам деятельности СКУД, а также зачем это нужно.

Предварительно сделаем несколько комментариев по поводу того, что такое СКУД и где мы с ним встречаемся. СКУД – это система ограничения и регистрации входа-выхода людей или транспорта на заданной территории через все «точки прохода», например, двери, ворота, турникеты, КПП и тд.

В результате каждого «прохода», в системе остается запись о том, кто, когда, куда и откуда прошёл. Именно эти данные мы будем загружать и обрабатывать в Splunk.

Почему именно Splunk?


Некоторые СКУДы пишут довольно неструктурированный лог, а с помощью Splunk возможно даже такой лог разбирать в автоматическом режиме. Кроме того, Splunk в автоматическом режиме забирает и хранит данные, а также позволяет оперативно получать аналитику в режиме, приближенном к реальному времени.

Реализация


Сначала мы посмотрим на визуализацию результатов, а далее углубимся в то как она была получена и рассмотрим несколько запросов.

Визуализация


Можно представлять визуализацию в разрезе всей организации или же в разрезе каждого сотрудника.

На данном рисунке представлены круговые диаграммы, показывающие через какие точки доступа сотрудники входят и выходят.



Также, можно заметить аномальное поведение сотрудников, когда в течении одного дня по одному пропуску осуществляется больше входов чем выходов или наоборот.



Можно построить гистограммы опозданий и работы сверх графика, т.е. как много раз сотрудники опаздывали/перерабатывали в сутки меньше чем на час, от часа до двух часов, от двух до трех и т.д.



На рисунке ниже представлена статистика по департаментам: среднее опоздание сотрудников департамента, среднее время работы вне рабочего времени. А также длительность (если статистика за одни сутки) или среднюю длительность работы каждого сотрудника.



Запросы


Подсчет аномальных карточек


index="scud" | strcat surname " " name Name|search Name = "*" | eval last=mvindex(mv_type,-1) | eval check=if( type="Вход"AND last="Выход" AND count_mv_in==count_mv_out, "Normal","Anomaly")| stats count by check



Расчет длительности рабочего дня каждого сотрудника


index="scud" | strcat surname " " name Name|search Name = "*"
| eval check=if( type="Вход"AND mvindex(mv_type,-1)="Выход" AND count_mv_in==count_mv_out, "Normal","Anomaly")
| search check=Normal
| eval sec_in=tonumber(substr(in,12,2))*3600 + tonumber(substr(in,15,2))*60+tonumber(substr(in,18,2))
|eval sec_out=tonumber(substr(mvindex(mv_out,-1),12,2))*3600 + tonumber(substr(mvindex(mv_out,-1),15,2))*60+tonumber(substr(mvindex(mv_out,-1),18,2))
| eval duration=round((sec_out-sec_in)/3600,2)| eval h=floor(duration)| eval m=(duration-h)*60| strcat h " ч " m " мин" Duration | strcat surname " " name Name|
table Name Duration | sort - Duration




Заключение


В целом, из данных СКУД можно получить можно получить очень много полезной информации, то что было представлено выше это только пример, который можно доработать под нужды каждого. Что касается лицензии на Splunk, то так как объем данных в сутки небольшой, то можно обойтись и бесплатной лицензией.

Мы рады ответить на все ваши вопросы и комментарии по данной теме. Также, если вас интересует что-то конкретно в этой области, или в области анализа машинных данных в целом — мы готовы доработать существующие решения для вас, под вашу конкретную задачу. Для этого можете написать об этом в комментариях или просто отправить нам запрос через форму на нашем сайте.

Комментарии (5)


  1. Lecactus
    25.12.2017 12:01

    2 года назад делал с коллегой аналогичную систему в Excel, т.к. штатная программа была просто никакая. Сделал импорт логов за неделю, обработка автоматическая нажатием на 1 кнопку хитрыми макросами похожими на ваши по запросам и все это выводится в виде красивых табличек для начальников отделов: точное время пребывания сотрудника на работе, все нарушения: опоздания, ранние уходы, если забыли ключ и пропустил сотрудник охраны, выходы и входы (в запрещенные для каждого сотрудника персонально заданные расписания), общее число отработанных часов за неделю и т.д.

    Недостатки системы были такими:
    1. в СКУД уже заложены расписания работы, привязанные к картам сотрудников, но в Excel все сотрудники были заведены вручную и менялись по мере прихода-увольнения, а также все их расписания работы были заданы тоже вручную. Как экспортировать эти данные не было понятно и вообще изначально задумывалось чтобы система в Excel считала всегда, не смотря на расписания работы в СКУД, где в принципе и так были ограничения, каких не было в Excel.
    2. экспорт логов из СКУД требовал вручную делать это для каждого дня недели. По сути это единственная ручная операция, которую делали раз в неделю. В принципе можно было сделать просто экспорт с понедельника по пятницу, но это потребовало бы потом разбора при импорте в Excel.

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

    Система работает отлично, но не пользуются постоянно, только когда надо получить отчет по определенному человеку.
    Пример отчета(скриншот) yadi.sk/i/cIgtMcnX3QvYiP


    1. JuliaKoroleva Автор
      25.12.2017 18:52

      Спасибо за то, что поделились своим опытом!
      Безусловно, задачу так или иначе можно решить различными средствами. У каждого есть есть свои преимущества и недостатки.

      Насколько я понимаю, у Вас таблица получалась статичная? В splunk можно реализовать что-то похожее, но с гибким временным фильтром: день, неделя, месяц, гол или какой-то заданный период. Также довольно несложными манипуляциями сделать агрегирование по отделам, входам, выходам и др. полям. По моему опыту создания подобной аналитики в Excel, там это сделать довольно трудоёмко.

      Конечно, особым преимуществом Excel является то, что он установлен практически на каждом рабочем компьютере, а базовые знания функционала и интерфейса есть у каждого сотрудника.

      Что касается рабочего расписания, то сравнение с ним возможно реализовать. Данные о расписании могут автоматически загружаться и храниться внутри splunk.


  1. xom9r
    29.12.2017 11:49

    Не претендую на лавры продвинутого data scientist, но 2017 год заканчивать с vba?
    Есть же уже отличные BI системы, которые построят качественную визуализацию с хорошим ETL. Вопрос в бюджете. Мы(крупный компания) стараемся уйти в отчетности от Excel


  1. thealexsb
    29.12.2017 11:49

    Откуда такие цифры в таблице в avg_late? Ладно, 5 часов, еще можно предположить, что кто-то приходит после обеда, а больше восьми-то как получилось? Кто-то работает по ночам?


    1. JuliaKoroleva Автор
      29.12.2017 11:56

      Статистика основана на тестовых данных за короткий период, поэтому такие значения возникают как средние. Так могло получиться, например, если сотрудник зашёл после окончания рабочего дня, пусть даже на небольшое время.