|
Лекция-8-Организация-сбора-данных-об-ошибках-в-информационных-си. Организация сбора данных об ошибках в информационных системах, источники сведений
ОРГАНИЗАЦИЯ СБОРА ДАННЫХ ОБ ОШИБКАХ В ИНФОРМАЦИОННЫХ СИСТЕМАХ, ИСТОЧНИКИ СВЕДЕНИЙ
Система сбора данных (ССД) — комплекс средств, предназначенный для работы совместно сперсональным компьютером, либо специализированной ЭВМ и осуществляющий автоматизированный сбор информации о значениях физических параметров в заданных точках объекта исследования с аналоговых и/или цифровых источников сигнала, а также первичную обработку, накопление и передачу данных.
Совместно с персональной ЭВМ, оснащенной специализированным программным обеспечением, система сбора данных образует информационно-измерительную систему (ИИС). ИИС — это многоканальный измерительный прибор с широкими возможностями обработки и анализа данных.
По способу сопряжения с компьютером системы сбора данных можно разделить на:
ССД на основе встраиваемых плат сбора данных со стандартным системным интерфейсом (наиболее распространен интерфейс PCI). ССД на основе модулей сбора данных с внешним интерфейсом (RS-232, RS-485, USB). ССД, выполненные в виде крейтов (магистрально-модульные ССД —КАМАК,VXI). группы цифровых измерительных приборов (ЦИП) или интеллектуальных датчиков. Для их организации применяются интерфейсы: GPIB (IEEE-488), 1wire,CAN,HART.
По способу получения информации ССД делятся на:
сканирующие. Сканирующий принцип построения ССД используется там, где надо измерить поле распределения параметров: тепловизор, аппарат УЗИ, томограф. мультиплексные (мультиплексорные, иногда говорят «многоточечные»). Мультиплексная (мультиплексорная) ССД имеет на каждый измерительный канал индивидуальные средства аналоговой обработки сигнала и общий для всех каналов блок аналого-цифрового преобразования. Наибольшее распространение в настоящее время имеют именно мультиплексные системы сбора данных. параллельные. Параллельными системами сбора данных следует считать ССД на основе интеллектуальных датчиков (ИД). мультиплицированные. Этот тип ССД практически не используется в силу своего исключительно низкого быстродействия. Единственное достоинство ССД этого типа — относительная простота — полностью нивелируется современными технологиями изготовления интегральных схем.
Сбои информационных систем Автоматизированным информационным системам могут угрожать случайные или умышленные сбои. Случайные сбои непреднамеренны, они могут быть вызваны либо ошибками, либо естественными причинами. Умышленные сбои являются результатом атаки, фальсификации, злоумышленного кодирования или взлома.
Ошибки. Проблемы с информационными системами чаще всего возникают из-за ошибок. Обычно ошибки делают люди, а не машины. В число таких ошибок входят:
1. Ошибки в процессе изготовления или при сборке технического оборудования: компоненты (в частности, механические составляющие, диски или принтеры) не соответствуют друг другу или неправильно собраны в процессе производства или в процессе текущего или профилактического обслуживания. 2. Ошибки при проектировании системы, обычно связанные с упущениями при анализе задачи.
Ошибки ввода данных: опечатки, западание курсора или некорректный выбор, сделанный оператором. Ошибки программирования при разработке программного обеспечения на соответствующем языке программирования. Небрежность или обычная невнимательность со стороны людей, работающих с данной технологией.
Виды ошибок Природные явления — это неожиданное насильственное нарушение работоспособности системы без вмешательства человека. Природные явления включают повреждения механических или электрических компонент и последствия стихийных бедствий: наводнений, гроз, землетрясений или торнадо. К отказам компонент системы относят не только компьютерные сбои, но и перебои электропитания или электрические помехи.
Атаки — это самый простой и частый вид умышленных угроз со стороны «чужих». Эти угрозы включают материальные повреждения компьютерного или телекоммуникационного оборудования, носителей, рабочих комнат, строений и вспомогательных устройств. Это также и физические атаки на компьютерные установки, такие как злоупотребления, подслушивание, взлом, заимствование прав.
Фальсификация — это наиболее распространенная умышленная угроза со стороны «своих». Эта угроза включает ввод ложной информации в систему, использование компьютерных технологий для создания неверных данных или замену исходной информации. Информационная система продолжает нормально работать, но цели ее работы изменены. Сама природа автоматизированных информационных систем часто допускает возможность проведения необычных транзакций, которые долгое время могут оставаться незамеченными.
Злоумышленное кодирование — это нелегальные программы и фрагменты программ, выполняемые на системных компьютерах. Эти программы могут перенаправлять компьютерные ресурсы, изменять данные или делать доступной секретную информацию. Поскольку такие программы невидимы для пользователей компьютера, то злоумышленное кодирование — это самый зловещий способ привлечь компьютер к собственному уничтожению. Вот различные типы злоумышленного кодирования:
«логические бомбы» — выполняют деструктивные процедуры (например, уничтожение файлов, сбой в системе и т. д.) при определенных условиях (например, в пятницу 13-го); «троянский конь» — программа, замаскированная под другую программу, например, компьютерную игру; такая программа может незаметно копировать личные файлы игрока, пока он занят игрой; «вирус» — фрагмент кода, способный при активизации нелегально присоединяться к другим программам, найденным в компьютере; обычно вирусы содержат и «логическую бомбу»; «червяк» — это еще один вид самовоспроизводящейся программы, но она не присоединяется к другим программам, а сама распространяется по сетям или системным устройствам (например, используя электронную почту); «черный ход» — неавторизованные фрагменты кода, которые обходят систему защиты и другие стандартные процедуры (часто используются программистами при разработке программы и иногда случайно остаются в системе); «салями-коды» — программы, которые срезают «по кусочку» с каждой из транзакций и аккумулируют эти кусочки на счете похитителя; «мистификаторы» — программы, которые притворяются другими программами; например, фальсификатор входа в систему притворяется системной утилитой, а на самом деле копирует идентификаторы и пароли пользователей и записывает их в скрытый файл.
Взлом, или хакерство, — это проникновение в компьютерную систему или программу путем разгадывания или расшифровки кодов доступа, номеров счетов, паролей и файлов. Взломщики, проникают в защищенные системы и загружают нелегальные программы, разрушают файлы пользователя или закрывают доступ к ресурсам компьютера. При взломе систем хакеры часто прибегают к сканированию коммуникационных сетей и массивов данных. По отношению к системе взломщики совершают также следующие действия:
Просмотр файлов и электронной почты или просмотр неиспользованной памяти и диска (часто система физически не удаляет информацию из областей памяти, уже освобожденных программами, а это значит, что фрагменты программ и данных могут быть восстановлены талантливыми хакерами). Компрометация баз данных, включая использование механизма запросов для получения или отслеживания ранее неизвестной информации об индивидууме. Получение неавторизованных или неоплачиваемых телефонных, или информационных услуг (часто со взломом телекоммуникационного оборудования). Умышленные угрозы имеют дополнительный параметр — мотив. Мотивы умышленных нарушений это мошенничество, шпионаж и вандализм. Мошенничество — это использование информационных ресурсов путем умышленного обмана в целях получения незаконной прибыли. Поскольку большинство ценных товаров (деньги, ценные металлы, сырье) запрашиваются через компьютеры, то простое коммерческое мошенничество все чаще осуществляется путем компьютерных атак. Кроме незаконного использования информационных систем для перевода денежных средств распространены и другие виды мошенничества:
Взлом банкоматов, заключающийся в использовании краденых или фальшивых банковских и кредитных карточек. Использование пиратского программного обеспечения, что включает подделку коммерческих пакетов программ и незаконное копирование программного обеспечения внутри или вне предприятия. Хищение ресурсов, т. е. использование информационных ресурсов организации в своих целях, что может включать использование компьютеров фирмы, копировальных автоматов, телефонов и незаконный обмен данными.
Шпионаж имеет целью получение информации, не подлежащей огласке. Шпионаж обычно включает три ступени: получение доступа к секретным данным, сбор данных и анализ данных. Конечным результатом шпионажа является неизбежное снижение информационной ценности данных. Ведь данные, которые пытаются украсть, обычно и считаются секретными именно из-за того, что они представляют ценность. Если данные публикуются или становятся известны конкурентам, то их ценность падает. Шпионажем может заниматься злоумышленник, получивший несанкционированный доступ к компьютерной системе путем мошенничества или взлома; предприятие, которое получает права авторизованного пользования компьютером, что позволяет получить доступ и к секретным данным в том числе; или другие лица, имеющие доступ к компьютерам.
Вандализм — это преднамеренное или злоумышленное повреждение компьютерных ресурсов, включая оборудование, данные и программное обеспечение.
Мотивы вандализма:
Озорство юных программистов-взломщиков, пробующих свои силы в освоении компьютерных систем. Личная месть со стороны уволенных служащих или потребителей, желающих навредить фирме, разрушив ее информационную систему. Общественные беспорядки, бессмысленный вандализм как часть общественных волнений. Терроризм, экстремальное разрушение информационных систем социального масштаба организованными группами, преследующими политические или идеологические цели. Военные атаки; обычно они направлены на военные или имеющие к ним отношение промышленные компьютеры, могут включать чрезвычайно интенсивные нападения (например, диверсионные отряды), хакерство (например, суперкомпьютерный криптоанализ) и злоумышленное кодирование (например, «логические бомбы» в компьютере наведения ракет на цель).
Организация сбора данных об ошибках Сопровождение комплекса программных продуктов, функционирующих на отдельно взятом предприятии и составляющих его корпоративную информационную систему (КИС), — один из важнейших процессов управления его инфраструктурой. Неотъемлемой частью процесса сопровождения программного обеспечения (ПО) является сбор и консолидация данных об ошибках, возникающих в процессе его работы.
Источниками данных об ошибках могут быть как пользователи ПО, так и средства мониторинга вычислительных систем.
Для сопровождения ПО (в том числе для проведения мониторинга и организации обратной связи) используются подход на основе программных агентов.
Система анализа протоколов Разработанный макет системы анализа протоколов включает программный агент, систему управления бизнес-правилами и базу прецедентов ошибок (рис. 1). В его функции входит:
сбор программных протоколов; идентификация ошибок на основе последовательностей записей протокола; поиск аналогов ошибок в базе прецедентов; управление обратной связью с пользователем.
Вместе с тем для создания полноценной системы сбора и анализа ошибок как части комплекса сопровождения программного обеспечения необходимо расширить функционал системы за счёт:
расширения средств сбора сведений об ошибках; расширения адаптационных возможностей системы; включения функций обеспечения безопасности передаваемых данных; интеграции с корпоративной базой знаний.
Рис. 1 - Структура системы анализа протоколов
Расширение средств сбора данных об ошибках Сбор протоколов (англ. logcollection) представляет собой процесс исследования накопления и записей, сформированных программным продуктом, с целью их последующего анализа и может быть двух видов:
активный: средства сбора интегрированы с подсистемой протоколирования и, как следствие, могут работать в режиме реального времени; пассивный: средства сбора производят сканирование уже записанных протоколов через определённые интервалы времени.
Несмотря на эффективность активных средств анализа, их применение на практике затруднено из-за различий в языках программирования, использованных для разработки ПО. Для решения этой проблемы можно использовать специализированные средства сбора протоколов, такие как Apache Flume, Lilith, log.io или Log Expert.
Зачастую анализ протоколов не может выявить всех проблем в работе ПО. В этом случае можно воспользоваться средствами мониторинга процесса выполнения приложений.
Предметная область, занимающаяся исследованием возможностей и средств наблюдения за выполнением приложений, называется управлением производительностью приложений (англ. Application performance management). Для сбора дополнительных данных о производительности программ в программной инженерии разработаны следующие методы: 1. Профилирование. Это процесс сбора низкоуровневых характеристик выполняемой программы. Обычно применяется на стадии разработки ПО для выявления проблем в производительности. Существует два основных вида профилирования:
(а) событийное — основанное на механизмах перехвата событий, встроенных в язык программирования;
(б) статистическое — основанное на сканировании контекста выполнения программы через определённые интервалы времени.
2. Инструментирование. Это процесс анализа производительности программы, происходящий благодаря внедрению в программный код специальных блоков, собирающих данные о процессе её выполнения.
Анализ процесса выполнения - это комплексный процесс исследования статистики использования пользователями одного или нескольких программных продуктов. Связан с областью бизнес-аналитики и, как правило, применяется в корпоративных системах.
Не все перечисленные методы могут быть применены при разработке агента системы сопровождения. При выборе подходящих средств должны быть выполнены следующие условия:
оригинальный программный продукт не должен быть изменён указанными средствами ни на этапе разработки, ни на этапе выполнения; применение указанных средств не должно приводить к нестабильной работе продукта.
Применение указанных средств не должно приводить к существенному падению производительности рабочей станции.
Полезную информацию о причинах возникшей ошибки может дать также наблюдение за окружением нестабильно работающей программы, например, аппаратными ресурсами, сервисами операционной системы, загрузкой сети. Подобная информация может быть получена при использовании средств мониторинга сетевых ресурсов.
Данный класс систем предназначен, в первую очередь, для отслеживания статуса серверов и сетевого оборудования. Большинство систем данного класса поддерживают также мониторинг рабочих станций, включая наблюдение за использованием жёсткого диска, памяти, процессорного времени и т. д. Примерами подобным систем являются Cacti, Nagios, Pandora FMS, Zabbix, Zenoss.
Традиционными средствами сбора описаний ошибок и заявок на модификацию ПО от пользователей являются системы отслеживания ошибок. Большинство подобных системы не выполняют каких-либо сложных бизнес-процессов, требующих высокой производительности и надёжности, а являются, фактически расширенными веб-интерфейсами к базам данных, хранящим информацию о запросах.
Как следствие, их функциональность практически одинакова; различия могут наблюдаться в следующем:
удобство пользовательского интерфейса; перечень состояний (этапов обработки) запросов на модификацию; перечень полей, описывающих запрос на модификацию; перечень способов добавления запросов на модификацию.
Примерами подобных систем являются Bugzilla, Fossil, Mantis, Redmine, Trac.
Повышение адаптационной способности системы На эффективность системы анализа ошибок, выражающуюся в сокращении трудозатрат её пользователей и снижении потребляемых аппаратных ресурсов (в первую очередь — пропускной способности сети передачи данных), влияет также возможность системы к адаптации под изменяющиеся условия рабочей среды.
Последовательности событий, приводящие к ошибкам, могут автоматически выявляться на основе методов ассоциации, широко применяющихся в настоящее время для анализа рыночной корзины. Автоматически созданные таким образом правила далее могут предоставляться пользователю для утверждения.
Полнота и детализированность данных, принимаемых системой анализа ошибок, сильно влияет на качество принимаемых ей решений. Очевидно, отслеживание записей только наивысшего уровня критичности (“ERROR”) не позволит в полной мере применить методы анализа цепочек событий. Включение наблюдения за наименее критичными записями (“TRACE”) сильно увеличит нагрузку на сеть. Решение этой проблемы заключается в создании “толстого клиента”, когда программным агентом будет осуществляться предварительная фильтрация явно бесполезных записей протоколов.
Очевидно также, что это потребует внедрения средств сетевой синхронизации для поддержания в актуальном состоянии локальных баз знаний агентов. В качестве таких средств могут выступить системы управления конфигурацией. Данный класс систем предназначен для автоматизированного управления настройками рабочих станций, серверов и прочих узлов локальной (как правило, корпоративной) сети. Подобные системы могут быть выполнены в 2х вариантах:
клиент-серверном, где клиентская часть представляет собой агента, периодически обращающегося к серверу за информацией об обновлениях конфигурации; децентрализованном, где каждый узел может выступать в виде источника конфигурации.
Большинство популярных систем управления конфигурацией являются кроссплатформенными. Примерами систем управления конфигурацией являются Chef, Opsi, Puppet, Smart Frog, Spacewalk.
Текстовые сообщения, поступившие через систему обратной связи программного агента или систему отслеживания ошибок, часто содержат важную информацию для идентификации и анализа ошибки. Вместе с тем автоматический анализ сообщений от пользователей, как правило, затруднён по следующим причинам:
пользователь может дать неправильное или неполное описание ошибки; отчёты об ошибках, выраженные в текстовом виде, сложно классифицировать.
Первая проблема может частично решаться путём фиксации набора полей, которые должен заполнить пользователь, после чего проверять данные на достаточность и корректность.
Для решения второй проблемы могут применяться различные методы интеллектуального анализа текстов, в частности, алгоритмы извлечения информации. Применение подобных технологий, однако, требует проведения специальных исследований по предметной области. В то же время для анализа текстовых пояснений к событиям, автоматически сгенерированных программой-источником ошибки, можно использовать более простые подходы, например, извлечение фрагментов с помощью регулярных выражений.
Создание комплексной системы сопровождения Создание комплексной системы сопровождения потребует проектирования эффективной системы пользовательского интерфейса и визуализации данных. Перечисленные выше средства можно представить в виде комплекса (рис. 2).
Рис. 2 - Структурная схема комплекса анализа ошибок на предприятии Ключевым компонентом системы является программный агент, устанавливаемый на каждой рабочей станции и взаимодействующий с пользователем. В его функции входят: обеспечение обратной связи пользователя с администратором (получение отчётов);
выдача уведомлений об возникших ошибках и методах их устранения; мониторинг ПО (сбора протоколов, отслеживание процесса выполнения); мониторинг операционной системы и ресурсов рабочей станции; первичный (локальный) анализ ошибок.
Консолидация поступающих от программных агентов данных выполняется централизованной системой анализа ошибок, управляемой администратором. Помимо сбора и анализа данных о выполнении ПО и текстовых отчётов пользователей, в её функции входит удалённое управление программными агентами.
Важным компонентом комплекса является подсистема интеграции с корпоративной базой знаний, которая позволяет накапливать информацию об ошибках и производить более тщательный их анализ и поиск первопричин. Накопленная информация может также передаваться разработчику ПО для устранения ошибок.
Обобщённый алгоритм анализа ошибки с помощью данного комплекса выглядит следующим образом:
Программный агент собирает данные о работе ПО, состоянии операционной системы и потреблении аппаратных ресурсов. Через определённые промежутки времени собранные данные передаются подсистеме локального анализа ошибок. Результатом анализа является заключение о том, соответствуют ли данные потенциальной ошибке. При положительном решении программный агент формирует заявку на обслуживание, в которую включает информацию о рабочей станции, вызвавшем ошибку ПО и перечень программных протоколов, соответствующих ошибке. Центральная подсистема анализа ошибок производит поиск аналогов ошибки в базе прецедентов. При обнаружении прецедента агенту передаётся указание на выполнение действия, ассоциированного с прецедентом. Если прецедент не был найден, агенту передаётся указание на запрос от пользователя дополнительной информации. Дополнительная информация от пользователя собирается программным агентом и передаётся подсистеме анализа текстов отчётов. Консолидированная информация, полученная в результате анализа данных о рабочей станции, ПО, ошибке и отчёте пользователя, передаётся на рассмотрение администратора. Администратор либо утверждает, либо отклоняет полученную информацию. В первом случае администратор также принимает решение по возникшей ошибке. На основе полученной информации и принятого решения формируется прецедент, который сохраняется в базе знаний предприятия. При необходимости копия прецедента передаётся разработчику для возможности исправления возникшей ошибки.
|
|
|