|
Модуль Alert Basics
Цель использования Alerts, или еще их называют Threshold Alerts, это генерация предупреждений относительно базы данных или иной Progress статистики значения которой, превысило пороговые значения или наоборот достигли их минимума. ProMonitor создает запись в таблице Alert каждый раз когда достигнуто какое-либо пороговое значение во время формирования выборки. Threshold Alert будет сгенерирован так часто, как часто будет запускаться агент мониторинга. Уведомление о возникновении Alert может быть осуществлено следующими способами:
• Через создание записей в таблице Alert и через использование отчета ProMonitor по этим записям;
• С помощью пользовательской программы, которая отсылает Alert через e-mail, SMS и т.п.
• Высвечивание Alert отображая их на экране когда агент мониторинга запущен в диалоговом режиме. В этом случае, все Alert будут отображены на экране раскрашенные в негативный цвет по отношению к стандартным цветам (message color). Изменить этот цвет можно меняя значение поля Alert Color в меню Maint -> Configuration.
Первоначальная настройка Alerts достаточно проста. Но имейте ввиду, что при слишком большом количестве определенных пороговых значений, это может повлечь за собой следующее:
• Количество сформированных Alerts может быть таким большим, что приведет к беспорядку и в результате, действительно важные из них могут быть затеряны;
• Формирование каждого Threshold Alert приводит к созданию записи в базе данных ProMonitor. Это несомненно приведет к увеличению нагрузки на машину на которой располагается эта база данных;
• Увеличится время для формирования выборки;
• База данных ProMonitor будет быстро расти;
• У администратора базы данных не останется свободного времени ;)
Позже будут приведены некоторые рекомендации связанные с настройкой Alerts.
Если у вас имеется версия ProMonitor V4, то для конвертации Alerts в версию ProMonitor V5/V6 вы можете воспользоваться программой конвертации aconvert.p.
Первые шаги к активации Threshold Alerts
Следующий список, это только общее описание, которое будет раскрыто позже.
1. Загрузите базовый список Alerts используя Alert Master из меню Alert -> Master –Load.
2. Установите Alerts которые вы хотите генерировать и отредактируйте пороговые значения для них. Этот шаг самый долгий, поскольку вам придется принимать индивидуальные решения относительно каждого Alert и его порогового значения. Меню: Alert -> Master -> Edit.
3. Используйте записи из Alert Master для копирования их в Alert Control для каждой базы данных. Именно наличие записей в Alert Control активирует Alerts. Меню: Alert -> Master -> Populate.
4. Установите значение по умолчанию для характеристики Alert Auto-Cancel. Эта опция обеспечивает отмену Alerts через несколько повторов. Она предназначена для того, чтобы администратор не отвлекался не сколько раз на один и тот же Alert. Меню: Maint -> Configuration or Alerts -> Cancel -> Update Auto Cancel
5. Проверить Alerts можно с помощью отчетов ProMonitor и/или с помощью пользовательской программы (User Defined Alert program), которая будет отсылать сообщения о возникновении Alert на необходимое вам устройство.
Далее, каждый шаг будет описан более подробно.
Загрузка
Для загрузки Alerts существует файл alertmas.d, который содержит предварительно определенный набор Alerts для ProMonitor. Это, так сказать, отправная точка. Для его загрузки воспользуйтесь меню Alert -> Master -> Load
Для того чтобы проверить, что загрузка прошла нормально, можно воспользоваться меню Alert -> Master -> Report
Редактирование
Для установки одного или более пороговых уровней (Threshold levels) необходимо зайти в меню Alerts -> Master -> Edit. Выделите необходимый вам Alert и нажмите клавишу F1 или CTRL-G. Чтобы изменить уровень важности (Severity level), то вы можете установить одно из следующих значений : Critical, Major, Minor, Warning, Info. По умолчанию, ProMonitor не различает уровни важности, но программа User Defined Alert (unixalert.p), будет использовать указанные уровни для определения списка получателей при возникновении Alert. Так же, при необходимости, вы можете изменить описание (description) Alert. Это описание обычно используется для сообщения администратору о возникшей проблеме. В поле Threshold введите числовое значение, которое будет порогом при котором будет осуществлено информирование администратора. Например, если вы хотите, чтобы когда количество сброшенных на диск буферов (Buffers Flushed) достигнет 1000, создался Alert, то введите в это поле число 1000. Но некоторые Alert, могут создаваться когда наоборот значение упадет ниже указанного порога. Например, при контроле свободного пространства в области для Alert “Area Space%”, здесь пороговое значение можно указать 10. Это будет означать, что Alert будет сгенерирован когда в любой области останется менее 10% свободного пространства. Заметьте, что поле Threshold имеет только целочисленный (numeric) формат.
Поля Help и Format обычно не изменяются. Их изменение возможно только для целочисленных Alerts.
Поле Tag установите в “yes”, если вы хотите использовать функцию Populate, для автоматического создания записи в Alert Control для всех или некоторых контролируемых баз данных. Использование этого поля рекомендуется, поскольку оно сохранит ваше время, чтобы не настраивать Alert вручную для каждой базы данных. О функции Populate более подробно будет рассказано позже.
Описание окна редактирования (Alerts -> Master -> Edit) приведено далее.
Примечание: обычно не рекомендуется добавлять или удалять записи в Alert Master, если вы не изменяете Alert - механизм в ProMonitor.
Каждая записи в Alert Master имеет несколько характеристик, которые приведены в следующей таблице.
Поле |
Описание |
Key |
Существует четыре типа Alert:
• LOG. Сокращение от LOGICAL. Это yes/no для таких типов Alert как “Database Unavailable”
• INC. Сокращение от INCREMENTAL. Это тип Alert, для сравнение данных между двумя выборками. Если разница превысит пороговый уровень, будет сгенерирован Alert.
• TOT. Сокращение от TOTAL. Этот тип смотрит на значение во время выборки, и если оно выше или ниже указанного порогового значение, то генерируется Alert. Например: BI size.
• PROG. Сокращение от PROGRAM. Это не Alert, но это способ чтобы вызвать пользовательскую программу (User Defined Alerts program), которая содержит пользовательский код для определения Alert. Этот тип должен иметь полный путь и имя такой программы. |
Severity |
Существует пять типов важности Alerts:
• Critical
• Major
• Minor
• Warning
• Info (informational)
На самом деле, уровни важности не имеют значения, точнее не существует специальной их обработки, в основном они несут описательный характер. Тем не менее, вы можете использовать их в своих пользовательских программах для работы с Alerts (User Defined Alert Program). Например, программа unixalert.p содержит список пользователей для отправки e-mail при возникновении Critical Alerts. |
|
|
Description |
Описание Alert. Создается для каждого нового Alert |
Threshold |
Для целочисленных Alerts (INC и TOT), это значение используется для генерации Alert. Например, если пороговое значение для BI Size Alert установлено равным 500Мб, Alert будет создан когда BI size станет больше чем 500Мб. |
Help Message |
Это подсказка, которая будет отображаться в нижней части экрана при изменении порогового значения в программе Alert Control. |
Format |
Формат отображения целочисленных значений для Progress ABL. Не изменяйте его, если вы не знакомы с Progress ABL |
Program Name |
Применяется только для Alert Type=PROG. Это путь и имя Progress ABL программы используемой для User Defined Alerts. Подробности будут приведены позже. |
Tag |
Значение “yes” означает, что программ Populate (Master -> Populate) будет использовать значение этой мастер-записи, для создания записи в Alert Control, для одной или более контролируемых баз данных. Функция Populate будет описана подробнее позже. |
Функция Populate
Доступ из меню к этой функции осуществляется по следующему пути: Alerts -> Master -> Populate.
Как только в Alert Master настроены все центральные Alerts, пора использовать их для заполнения (populate) Alert Control. Для каждой базы данных создается одна запись в Alert Control на основе одной “tagged” записи в Alert Master. Иными словами, если у вас есть 5 различных Alerts, а ProMonitor контролирует 8 баз данных, то функция Populate создаст 40 записей в Alert Control. Эта функция сравнительно просто создает стандартный набор Alerts для большого количества баз данных и требует меньшего времени, если бы вы создавали записи в Alert Control по одиночке. Как только записи в Alert Control будут созданы, вы легко сможете настроить их индивидуально под каждую базу.
Если программа Populate будет запущена несколько раз, то существующие записи в Alert Control не будет изменены или перезаписаны. В Alert Control будут добавлены только новые Alerts.
Функция Populate может быть применена как для отдельных баз данных, так и только для активных, или же ко контролируемым всем базам данных.
Alert Auto Cancel
Функция Auto Cancel предназначена для определения количества раз возникновения Alert прежде чем его генерация будет автоматически прекращена. По умолчанию, это значение равно 3, что указано в настройке ProMonitor. Существует два способа его изменения:
- Меню: Alerts → Cancel → Update Auto Cancel
- Меню: Maint → Configuration
Если установить значение Auto Cancel равным 0, то генерация Alert не будет прекращаться ни когда.
Если Alert был автоматически отключен, он остается в этом состоянии пока не произойдет следующее:
- Пока условие, вызвавшее Alert не будет устранено.
- Пока статус Auto Cancel не будет изменен в ручную в ProMonitor. Меню: Alert -> Cancel. В этом меню есть две опции для отключения:
- DB Alert Cancel – сброс Auto Cancel для всех Alerts для указанной базы данных
- Cancel All Alerts – сброс Auto Cancel для всех Alerts всех баз данных.
Отключение Auto Cancel означает, что Alert опять будет сгенерирован, когда возникнет соответствующее событие.
User Defined Alert Procedure
ProMonitor не ограничивает вас своим внутренним Alert – механизмом. Threshold Alert так же может быть использован для генерации e-mail или отправки сообщения SMS. Для того чтобы воспользоваться такой возможностью, вам необходимо:
- Перейти в меню Alerts -> Master -> Edit
- Отредактировать запись User Defined Alert (Key=999)
- Ввести имя ABL программы в поле Program Name, включая полный путь к программе, если он не указан в PROPATH для ProMonitor. Установите поле Tag в “yes”
- Воспользуйтесь функцией Populate для создания связанной записи в Alert Control
- Если вам необходимо запустить не ABL программу, например shell-script, то воспользуйтесь соответствующими операторами ABL, такими как UNIX, DOS или OS-COMMAND.
- При выполнении такой программы, ProMonitor передаёт ей некоторые полезные параметра. А именно:
Параметр |
Описание |
Тип параметра |
Alert |
Таблица Alert, содержит детальную информацию о событии, такую как, имя базы данных, дату, время, описание, значение которое достигло порога. |
Buffer |
AlertControl |
Запись Alert Control, содержащая пороговое (Threshold) значение |
Buffer |
AlertMaster |
Запись Alert Master, содержащая описание (description) Alert. |
Buffer |
tmpstats |
Именованный буфер для таблицы Stats. Эта таблица содержит информацию о базе данных, полученную во время формирования выборки. |
Buffer |
DB |
Запись, содержащая информацию о базе данных, такую как путь базы и статусы различных контрольных флагов |
Buffer |
PMConfig |
Запись с конфигурацией ProMonitor |
Buffer |
Заметьте – эти параметры вы должны определить в своей программе, даже если не собираетесь их использовать. Для примера использования этих параметров, посмотрите программу usralert.p.
Для Unix/Linux систем, можно по мимо unixalert.p посмотреть скрипт notify.sh, который использует Unix -команду mailx. Этот крипт выполняет отправку e-mail для одного или более получателей, в зависимости от уровня важности (Severity) Alert. Чтобы установить unixalert.p необходимо:
- Убедитесь, что в Alert Control создана запись “User Defined Alert” для каждой контролируемой базы данных.
- Программа unixalert.p вызывает скрипт notify.sh. Убедитесь, что по PATH используемым для unixalert.p можно найти notify.sh, в противном случае, вам придется изменить unixalert.p, указав полный путь к скрипту.
- Убедитесь, что скрипт имеет достаточные права для запуска (команды chmod)
- Убедитесь, что команда mailx работает
- Программа unixalert.p работает с двумя текстовыми файлами, которые содержат e-mail адреса получателей сообщения при возникновении Alert:
- red_alert.txt – это для Critical Alerts;
- std_alert.txt – для всех остальных Alerts.
Каждый адрес в этих файлах должен располагаться на отдельной строке. Убедитесь, что программа unixalert.p способна найти эти файлы по PATH, в противном случае измените ее, прописав полные пути к файлам в ней.
- Протестируйте Alerts. Если e-mail не будет получен как задумано, то посмотрите файл ошибок notify.err, в каталоге где размещен исходный код ProMonitor, обратите внимание на ключи, которые содержит этот файл.
Для информации: существуют клиенты, у которых есть интерфейсы ProMonitor способные работать с такими инструментальными средствами контроля как IBM Tivoli и HP Open View, но о них в этом документе рассказано не будет.
Рекомендуемые Alerts
Достаточно трудно указать на подходящие Threshold Alert, не зная специфических особенностей вашей системы, но мы попробуем описать наиболее часто используемые из них.
Alert |
Примечание |
BI Size |
Это значение должно быть установлено ниже значения параметра BI Threshold (-bithold). Если вы не используете этот параметр, то самое время его применить. Например, если –bithold равен 999, то мы бы установили Alert Threshold где-то между 500 и 700, чтобы иметь запас времени перед тем как будет достигнуто значение параметра –bithold. |
Area Space Left % |
Выполняется мониторинг каждой области хранения (Storage Area) с целью определения оставшегося свободного пространства до перехода к экстенту переменной длины. Если размер фиксированного экстента равен 1Гб, и вы хотите установить Alert при достижении High Water Mark 800 Мб, то необходимо установить значение 20%. Примечание, мониторинг осуществляется для областей хранения начиная с номер 7 и выше, это означает, что область Schema Area не проверяется, поскольку она не должна использоваться вашими приложениями для хранения данных. Этот Alert не будет эффективным если вы используете для областей один экстент переменной длинны. |
AI Space Left % |
Если свободное пространство AI окажется ниже этого значения (указывается в процентном соотношении), то будет сгенерирован Alert. Этот Threshold Alert будет работать только если AI экстенты будут фиксированной длины. Так же он требует установки флага Monitor AI из Database Maintenance в “yes”. |
AI Total Size |
Если структура AI содержит один или более экстентов переменной длины, то необходимо использовать этот Alert. Alert так же требует установки флага Monitor AI из Database Maintenance в “yes”. |
Lock Table % Left |
Если количество доступных блокировок записей (Lock Table Size, -L), в процентном соотношении упадет меньше указанного значения, будет сгенерирован Alert. Например, -L имеет значение 10 000 и Threshold Alert установлен 20%, в этом случае, Alert будет сгенерирован когда Lock Table High Water Mark будет достигнут 8 000 одновременных блокировок. Количество использованных блокировок будет записано в секцию Details для Alert. |
User Table % Left |
Alert будет сгенерирован при достижении доступных слотов, указанных параметром User Table (-n), указанного значения в процентом соотношении. При этом количество REMC и SELF соединений будет указано в секции Details. |
Database Backup Time Limit Exceeded |
Если количество часов с момента формирования последней резервной копии (т.е. probkup) превысило установленное пороговое значение, то будет сгенерирован Alert. Если резервирование выполняется на ежедневной основе, используйте порог 25. Если вы будете использовать 24, то вы получите не нужный Alert, из-за округления времени завершения резервирования относительно выборки ProMonitor. |
Process Waiting for Record Lock |
Если во время выборки в очереди ожидания блокировки будут находиться процесс, то будет сгенерирован Alert. Это будет работать только если в поле Record Lock Counts из Database Maintenance будет установлено значение “Full”. Примечание, для версий ProMonitor V5.* / V6.*, для этого Alert нельзя применить функцию Auto Cancel. Это будет сделано в будущих версиях. |
User Record Locks |
Alert будет сгенерирован если какой-либо процесс заблокирует большое количество записей, превышающее значение установленного порога. |
Transaction Duration |
Если активной (статус Active) транзакцией будет превышено время, указанное в Threshold Alert, то будет сгенерирован Alert. Транзакции имеющие статус “ALLOCATED” не контролируются, поскольку они не влияют на рост BI файла. Рекомендованное ограничение времени для долгоиграющих транзакций это 30-90 минут. |
Database Unavailable |
Alert будет сгенерирован если ProMonitor не сможет подключиться к промышленной базе данных. Это может означать что:
• База данных “упала”
• Подключение не возможно из-за нехватки какого-либо ресурса, например, когда исчерпано количество допустимых подключений к базе User Table (-n). В этом случае, Progress сгенерирует сообщение об ошибке, которое будет перехвачено ProMonitor`ом и сохранено в секции Details в записи Alert`а.
Примечание, этот Alert не может быть использован для базы данных ProMonitor. |
Некоторые дополнения
Особенности Database Log File Alert
Для генерации Database Log File Alert необходимо:
- Установить флаг Load Log в настройке базы (DB Record);
- Должна быть выполнена опция Log File -> Load Files;
- Загружаемый лог базы должен иметь по крайней мере одну запись, содержащую слово, которое существует в таблице, загруженной в предыдущем шаге.
ProMonitor генерирует только один Alert, даже если в логе встречается множество сообщений. Это сделано для того, чтобы предотвратить чрезмерное количество генерируемых Alerts. Но по вашему заказу, разработчики готовы приделать алгоритм, если недостатков такого поведения больше чем выгод. Для этого вы можете связаться с ними по указанному, в начале книге, адресу.
Отключение Threshold Alerts
Для того чтобы навсегда отключить Threshold Alert вам необходимо просто удалить его из Alert Control:
- Alerts -> DB Alerts -> Delete
- Выберите базу данных, для которой вы хотите осуществить отключение Alert
- Выберите необходимый для удаления Alert (используйте CTRL-G для поиска по полю Key).
Alert может быть восстановлен с помощью меню Alerts -> DB Alerts -> Add.
Добавление нового Threshold Alert
Если вы хотите добавить новый Alert только для одной базы данных, то вам будет быстрее это сделать вручную, чем с помощью ранее описанной функции Populate. Для этого воспользуйтесь меню Alerts -> DB Alerts -> Add.
Мониторинг базы данных ProMonitor
Мониторинг базы данных ProMonitor осуществляется таким же способом что и обычная промышленная база данных. Но перед этим нужно сделать следующее:
- Настроить базу данных ProMonitor в меню Maint -> DB Maintenance
- Убедиться, что флаг ProMonitor DB установлен в “yes”
Примечание, единственный Alert, который не будет работать для этой базы данных, это Alert Database Down.
Database Down Alert
Если ProMonitor не сможет подключиться к промышленной базе данных, и если в Alert Control имеется запись для “DB Down”, то будет сгенерирован Alert. Предупреждение: если агент мониторинга у вас настроен для круглосуточной работы, но вы останавливаете базу данных для выполнения резервной копии, то может сгенерироваться ложный Alert, если в это время ProMonitor попытается обратиться к этой базе. В этом случае, рекомендуется запускать и останавливать ProMonitor синхронно с промышленной базой данных. Так же, если вы перезапускаете базу данных, то вам необходимо перезапустить и агента мониторинга (promon1.p).
Возможна ситуация, когда Down Alert может быть сгенерирован, даже если промышленная база данных не остановлена. Это происходит, если таблица пользователей User Table (-n) заполнена полностью, и ProMonitor не может подключиться к базе. В этой ситуации рекомендуется настроить Alert “Total Client Connections”, который будет отслеживать переполнение User Table, и за ранее предупредит вас о проблеме.
Отчет по сгенерированным Alerts
Для получения отчета по всем сгенерированным Alerts воспользуйтесь меню Alerts -> Reports -> Alert List.
Отчет будет отсортирован по дате, времени и важности Alert. При этом некоторые из Alert могут содержать дополнительную информацию, например в примере ниже, для Alert “Transaction Duration” отображается дополнительная подробная информация о процессе который инициировал этот Alert.
|