Версия 1.0 1.1 Дата 01.07.06 08.08.06 Обновлено Гнедыш Д.Е. Гнедыш Д.Е. Комментарии Начальная редакция документа. Изменено: - параметры проверки и вывода IMCP ECHO. Добавлено: - Отчётность по операциям опроса серверов. 1 Содержание. 1. Назначение 2. Функционал программы. 3. Настройка параметров. 4. Структура программы. 5. Запуск программы. 6. Консольный вывод программы. 7. Выполнение сценариев. 8. Отчётность. 2 1. Назначение программы. Утилита мониторинга предназначена для осуществления мониторинга состояния распределённых серверов СУБД Oracle. 3 2. Функционал программы. Данная утилита мониторинга представляет собой PERL-сценарий и имеет следующий обязательный функционал: 1. Проверка работоспособности серверов СУБД Oracle методом установки соединения и выполнения запроса определения статуса сервера. 2. Получение удалённого времени сервера (Запрос к СУБД Oracle). 3. Получение версии и релиза СУБД Oracle (Запрос к СУБД Oracle). 4. Отправка запроса ICMP ECHO на удалённый сервер с сервера мониторинга. 5. Сканирование диапазона портов на наличие сервиса R-Admin. 6. Сканирование диапазона портов на наличие сервиса MS Terminal Services. 7. Режим работы СУБД Oracle (Запрос к СУБД Oracle). 8. Размер БД (Запрос к СУБД Oracle). 9. Хранение результатов мониторинга в БД сервера мониторинга. 10. Формирование отчёта в HTML-формате. Дополнительный функционал: 1. Определение количества счётчиков (Запрос к СУБД Oracle). 2. Определение количества измерений (Запрос к СУБД Oracle). 3. Определение номера HASP-ключа. (Запрос к СУБД Oracle) 4. Получение списка обновлений ПО «Энергия Альфа». 4 3. Настройка параметров. Для корректного функционирования необходима установка командного интерпретатора PERL версии 5.8.7. (совместимость с другими версиями командного интерпретатора PERL не испытана). Операционные системы Windows NT/2000/2003 workstation/server, RHEL 3,4 AS. Хранилище данных СУБД Oracle 8i, 9i, 10g. Для корректного переменной среды функционирования окружения утилиты ORACLE_HOME и необходима наличие в установка переменной окружения PATH bin-директории клиента Oracle, perl. При функционировании в операционных средах семейства Windows необходимо расширению файлов *.pl сопоставить командный интерпретатор PERL. При функционировании в операционных системах linux файл должен иметь атрибут исполняемого (#!/usr/local/bin/perl) и должен в заголовке быть указан файла и monitor.pl правильный путь к mon_rep.pl командному интерпретатору perl. Основные настройки параметров утилиты содержаться в файле include.pm $db_conn_str – переменная, хранящая строку подключения к схеме БД утилиты мониторинга. $SQLFNAME – имя файла вывода информации мониторинга. $mon_db_un – имя пользователя, для подключения к целевым БД. $mon_db_pass – пароль пользователя для подключения к целевым БД. $conn_privs – привилегии подключения к БД. (“as sysdba”, “as sysoper”, “”) $mon_sql_file – файл SQL-сценариев мониторинга. $sqlplus_run – имя и параметры запуска SQL*Plus. @radm_keys – массив хранения отзывов сервиса R-Admin. По мере появления новых версий R-Admin, данный массив необходимо дополнять. @msts_keys - массив хранения отзывов сервиса MS Terminal Services. По мере появления новых версий MS Terminal Services, данный массив необходимо дополнять. @radm_ports – список портов, по которым необходимо осуществлять поиск сервиса R-Admin. 5 @msts_ports - список портов, по которым необходимо осуществлять поиск сервиса MS Terminal Services. $io_time – тайм-аут соединения при установке соединения с сервисами RAdmin, MS TS. $sql_out_flg – флаг выгрузки результатов мониторинга в sql-сценарий и загрузка в БД. (1 – требуется выгрузка, 0 – не выгружать) $tnsfile – альтернативное имя файла tnsnames.ora (для выполнения специализированных задач) 6 4. Структура программы. include.pm – содержит реализации используемых функций и основные параметры настройки утилиты (первые строки сценария). Файл monitor.pl Вызовы процедур и вывод результатов в консоль. Файл sql.sql Файл SQL-сценариев по мониторингу СУБД Oracle и получении дополнительной информации из БД. Файл tab_ddl.sql DDL (ЯОД) формирования схемы данных утилиты мониторинга. Следующие файлы находятся в процессе разработки. Файл monitor.html Динамически генерируемый файл отчёта по мониторингу СУБД Oracle. Файл mon_rep.pl Файл генерации отчётов по мониторингу. Файл mon_rep.sql PL/SQL - сценарий генерации отчётов по мониторингу. 7 5. Запуск программы. Для запуска необходимо сменить текущую директорию на директорию хранения файла «monitor.pl» и запустить сценарий «monitor.pl». 8 6. Консольный вывод программы. При запуске программы мониторинга происходит вывод информации в консоль. В среде семейства Windows. Пример вывода в ОС Windows 2000 Professional (сервер полностью недоступен). ************************************************************ Current : 001 of : 094 -- Текущая позиция процесса мониторинга Alias : CS_CHELYABINSK_123 –- псевдоним БД Server IP : 10.80.49.123 Local time : 03.08.2006 21:34:42 – Локальное время -- IP-адрес сервера Remote time : 00.00.00 00:00:00 - Время удалённого сервера БД DB Version - Версия СУБД. : UNKNOWN ERROR: -- Попытка установки связи с БД для выяснения статуса ORA-12560: TNS:protocol adapter error Host unreachable... Can`t connect to R-Admin service. – Сканирование диапазона портов 10.80.49.123:4899 : Unknown error – сервиса R-Admin Can`t connect to R-Admin service. 10.80.49.123:5002 : Unknown error Can`t connect to R-Admin service. 10.80.49.123:44899 : Unknown error Can`t connect to R-Admin service. 10.80.49.123:65256 : Unknown error Can`t connect to MS TS service. – сканирование диапазона портов 10.80.49.123:3389 : Unknown error – сервиса MS Terminal Services. ************************************************************ 9 Пример вывода в ОС Windows 2000 Professional (сервер доступен). ************************************************************ Current Alias Server IP Local time Remote time DB Version : : : : : : 007 of : 094 CS_KALININGRAD_30 10.10.220.30 04.08.2006 09:29:18 04.08.2006 08:28:57 8.1.6.0.0 SE Status : OPEN -------Oracle8i Release 8.1.6.0.0 - Production PL/SQL Release 8.1.6.0.0 - Production CORE 8.1.6.0.0 Production TNS for 32-bit Windows: Version 8.1.6.0.0 - Production NLSRTL Version 3.4.1.0.0 - Production -------Remote time : 04.08.2006 08:28:57 -------Database log mode No Archive Mode Automatic archival Disabled Archive destination C:\ORACLE\RDBMS Oldest online log sequence 979 Current log sequence 981 -------DBID : 1064630442 -------db_size : 1018,24 -------Counters count : 51 -------Measurements count : 63 --------------select 'update version ' || update_ver, ' Install date : ' || date_inst, ' Client version : ' || ver_cl, ' Admin version || ' || ver_adm from eac.updates order by 1 * ERROR at line 1: ORA-00942: table or view does not exist JServer Release 8.1.6.0.0 - Production Packet return time is 0.00 ms Can`t connect to R-Admin service. 10.10.220.30:4899 : Unknown error Detected R-Admin service. Port : 5002 Can`t connect to MS TS service. 10.10.220.30:3389 : Unknown error ************************************************************ 10 Пример консольного вывода в семействе ОС Linux несколько отличается от ОС Windows. Пример консольного вывода информации мониторинга в ОС RHEL 3 AS. Сервер частично работоспособен (экземпляр СУБД Oracle недоступен). ************************************************************ Current Alias Server IP Local time Remote time DB Version : : : : : : 001 of : 100 CS_CHELYABINSK_123 10.80.49.123 04.08.2006 09:43:07 00.00.00 00:00:00 UNKNOWN select 'Status : ' || status from v$instance * ERROR at line 1: ORA-01034: ORACLE not available Packet return time is 0.00 ms Detected R-Admin service. Port : 4899 Can`t connect to MS TS service. 10.80.49.123:3389 : Connection refused ************************************************************ 11 7. Выполнение сценариев. Данную утилиту мониторинга можно использовать в случае необходимости при выполнении произвольных сценариев SQL, PL/SQL и консольных команд операционной системы (imp, exp, scp и т.п.). Например, изменение паролей пользователей БД по произвольным подгруппам серверов, создание пользователей на всех доступных серверах, создание процедур, функций и пр. Для этого необходимо: 1. Скопировать файлы утилиты мониторинга в новую папку. 2. Изменить содержимое файла «sql.sql» на текст необходимого сценария. 3. Установить флаг $sql_out_flg=0 4. В файле «tnsnames.ora» a. Оставить только записи строк подключений, которые указывают на сервера, где необходимо выполнить операции. ИЛИ b. Создать копию файла «tnsnames.ora» в той же папке (%ORACLE_HOME%/network/admin), но с отличным от него именем, где будут оставлены необходимые строки подключения. c. В случае переименования файла необходимо установить значение переменной $tnsfile. 5. Запустить сценарий. Для запуска произвольных консольных команд операционной системы необходимо: 1. Скопировать файлы утилиты мониторинга в новую папку. 2. Установить флаг $sql_out_flg=0 в файле «include.pm» 3. Открыть в текстовом редакторе файл «monitor.pl». 4. Найти в нём секцию «Custom» ### Custom section # Use this section for your own purposes # Example: # # print `exp cnt/cnt\@$key owner=CNT statistics=NONE file=cnt$key.dmp`; # ### 12 4. Убрать символ комментария «#». 5. Вписать строку со следующими правилами формирования. print – если необходим вывод в консоль. пробел. `строка запуска программы`. Символ «;» !!! Внимание !!! Строка вызова заключается символами «`». В консоль будет выводиться процесс выполнения данного сценария. При выполнении специализированных сценариев не происходит выгрузка данных в sql-сценарий с последующей загрузкой в БД. В случае необходимости, вывод консоли можно перенаправить в файл или устройство, стандартными для конкретной операционной системы средствами (например, «>, >>, /dev/null»). 13 8. Отчётность. Для генерации полного отчёта по последнему опросу серверов необходимо выполнить сценарий «mon_rep.cmd». При запуске сценария необходимо будет ввести: 1. Тип генерируемого отчёта. 1.1. «0» – полный отчёт (полная форма отчёта). 1.2. «1» - сводный отчёт (краткая форма отчёта). 2. Ввести, за сколько часов, начиная с текущего момента времени, брать данные. 3. Ввести имя объекта. 3.1. «%» - вывести по всем обектам. 3.2. «значение» - вывести по объектам, содержащим в названии значение. Напр. «Moscow» - по объектам в г.Москва. «-RTU» - по РТУ. При его выполнении в корневом каталоге диска «c:\» образуется файл «mon_report.htm», содержащий отчёт. Просмотр осуществляется любым WEB-обозревателем (Напр. Mozilla FireFox). Пример формирования краткого отчёта по объектам «Abakan» за прошедшие сутки. G:\scripts\perl\monitoring\mon_v4>mon_rep.cmd G:\scripts\perl\monitoring\mon_v4>sqlplus username/password@alias @mon_rep.sql SQL*Plus: Release 9.2.0.1.0 - Production on Wed Aug 9 14:55:44 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production With the Partitioning and Data Mining options Enter report type 0 - Full monitoring report 1 - Short monitoring report 14 1 Enter last hours 24 Enter object name Abakan 15 16 Отчёт: Enter report type 0 - Full monitoring report 1 - Short monitoring report 1 Enter last hours 24 Enter object name Abakan old 1: select mon_report(&report_type, &hours, '&obj') from dual new 1: select mon_report( 1, 24, 'Abakan') from dual Oracle RDBMS Псевдоним R-Admin MS TS Ping Status all ABAKAN-46-RTU 09.08.2006 08:08:20 O R T P A ABAKAN-46-RTU 08.08.2006 15:08:06 O R T P A 17 Enter report type 0 - Full monitoring report 1 - Short monitoring report 1 Enter last hours 24 Enter object name RHT old 1: select mon_report(&report_type, &hours, '&obj') from dual new 1: select mon_report( 1, 24, 'RHT') from dual Oracle RDBMS Псевдоним R-Admin MS TS Ping Status all RHTEST 09.08.2006 10:08:55 O R T P A RHTEST 08.08.2006 16:08:32 O R T P A RHTEST 08.08.2006 15:08:13 O R T P A Где, Псевдоним – псевдоним строки подключения к Oracle RDBMS. Oracle RDBMS – статус Oracle RDBMS. R-Admin – статус сервиса R-Admin. MS TS – статус сервиса Microsoft terminal services. Ping – статус ICMP ECHO. STATUS ALL – общий статус. Время указано локальное, на сервере мониторинга, на момент проведения опроса. 18 Цветовое обозначение: Сервис доступен Сервис недоступен 19 Полный отчёт. G:\scripts\perl\monitoring\mon_v4>mon_rep.cmd G:\scripts\perl\monitoring\mon_v4>sqlplus username/password@alias @mon_rep.sql SQL*Plus: Release 9.2.0.1.0 - Production on Wed Aug 9 15:14:40 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production With the Partitioning and Data Mining options Enter report type 0 - Full monitoring report 1 - Short monitoring report 0 Enter last hours 24 Enter object name -RTU 20 Enter report type 0 - Full monitoring report 1 - Short monitoring report 0 Enter last hours 24 Enter object name -RTU old 1: select mon_report(&report_type, &hours, '&obj') from dual new 1: select mon_report( 0, 24, '-RTU') from dual Псевдоним IP сервера Время опроса Удалённое время Версия СУБД Вывод SQL ABAKAN-46-RTU 10.88.155.46 08.08.2006 15:08:06 UNKNOWN ERROR: ORA-12541: TNS:no listener Host unreachable... IMCP ECHO Can`t connect to R-Admin service. 10.88.155.46:4899 : Unknown error Can`t connect to R-Admin service. 10.88.155.46:5002 : Unknown error R-Admin Can`t connect to R-Admin service. 10.88.155.46:44899 : Unknown error Can`t connect to R-Admin service. 10.88.155.46:65256 : Unknown error MS TS Can`t connect to MS TS service. 21 10.88.155.46:3389 : Unknown error Номер HASP ключа Количество счётчиков Количество измерений -1 -1 -1 22 В обозревателе данный отчёт имеет следующий вид: 23 Дополнительная информация содержится на сайтах: 1. 2. 3. 4. 5. 6. http://www.ActiveState.com - The ActiveState Home Page (Perl documentation). http://www.perl.com - The Perl home page (Perl documentation). http://www.oracle.com – Oracle RDBMS home page (SQL, PL/SQL documentation). http://www.ethereal.com – Ethereal home page. http://www.winpcap.org – WinPCap home page. http://www.w3c.org/MarkUp/ – W3C home page (HTML standard). 24