Расширение Oracle Database

Материал из Документация Ключ-АСТРОМ
Версия Изменения
2.3.0 Улучшения в этой версии:
  • Удален параметр event из com.astromkey.extension.sql-oracle.wait.count и com.astromkey.extension.sql-oracle.wait.time.count для предотвращения непреднамеренно высокого потребления DDU. Для замены прежней функциональности был добавлен новый набор функций, waitEvents (detailed), с метриками com.astromkey.extension.sql-oracle.wait.events.count и com.astromkey.extension.sql-oracle.wait.events.time.count который отслеживает общее время ожидания и общее время ожидания для 20 наиболее частых событий ожидания. При обновлении конфигураций мониторинга до новой версии убедитесь, что вы включили новый набор функций, чтобы продолжить получать информацию на уровне событий.
2.2.3 Исправлено в этой версии:
  • Плитки ASM Disks на дашборде использовали устаревшие названия метрик.
2.2.2 Исправлено в этой версии:
  • Запросы ASM Disk Groups и ASM Disks не будут выполняться из-за синтаксиса
2.2.1 Новое в этой версии:
  • Отслеживание зоны быстрого восстановления (FRA)
  • Табличные пространства отслеживаются по контейнерам (CDB и PDB)
  • Группы дисков ASM отслеживаются как отдельные сущности, связанные с дисками ASM
  • Состояние данных и временных файлов отслеживается для каждого контейнера (CDB и PDB).
  • Мониторинг защиты данных
    • Тяжелые события
    • Разрыв между основной и резервной последовательностями применения
    • Количество нерегистрируемых действий
    • Статус ошибки назначения архива

Улучшения в этой версии:

  • Использование табличного пространства рассчитывается на основе максимально возможного размера, включая автоматические экстенты.
  • Использование табличного пространства CDB_TABLESPACE_USAGE_METRICS отражается с учетом базовой файловой системы (такой же, как в Oracle Enterprise Manager)
  • Использование сеансов и процессов отображается в процентах от настроенного лимита.
2.1.5 Новое в этой версии:
  • Данные расширения теперь можно использовать с приложением «Обзор базы данных».
  • Задания резервного копирования регистрируют дополнительные сведения на основе своих наборов резервных копий.
  • Время с момента последнего резервного копирования данного типа теперь регистрируется как метрика

Улучшения в этой версии:

  • Более четко описан параметр конфигурации времени ожидания запроса.

Исправлено в этой версии:

  • Диаграмма табличных пространств на странице «Экземпляр» отображала длинное имя выражения метрики.
  • Не все резервные копии были обнаружены и перечислены на странице экземпляра.
2.0.0 Критические изменения:

Из-за изменений топологии, упомянутых ниже, ваша среда может создавать новые сущности для замены созданных старыми версиями расширения.

Любая пользовательская конфигурация, основанная на следующих типах сущностей, работать не будет:

  • sql:com_astromkey_extension_sql-oracle_cdb
  • sql:com_astromkey_extension_sql-oracle_pdb (заменить на sql:com_astromkey_extension_sql-oracle_database)
  • sql:com_astromkey_extension_sql-oracle_service

Новое в этой версии:

  • Дополнительные атрибуты, сообщаемые для экземпляров Oracle
  • Когда расширение настроено на подключение к контейнеру (CDB), все базы данных (PDB) автоматически отслеживаются.
  • Добавлено новое оповещение о сбоях заданий резервного копирования.

Улучшения в этой версии:

  • Топология была упрощена:
    • Экземпляр Oracle теперь представляет собой либо автономный экземпляр, либо контейнер.
    • Идентификаторы этих сущностей теперь рассчитываются точнее.
    • Oracle Database теперь представляет собой либо автономную, либо подключаемую базу данных.
    • Удалены сущности Oracle CDB, Oracle PDB и Oracle Service.
  • Резервные копии базы данных видны на странице сведений об экземпляре.
  • Все списки сущностей поддерживают фильтрацию
  • На странице сведений о сервере Oracle отображаются данные о процессах Oracle, если на хосте развернут ЕдиныйАгент.
  • Все метрики имеют тег «Oracle», который можно использовать в меню «Метрики».

Исправлено в этой версии:

  • Резервные копии не будут обнаружены, если процесс завершится сбоем до завершения первого подзадания.
  • Резервные копии будут объединены, если они выполнены в течение одного сеанса.

Обзор

Ключ-АСТРОМ автоматически определяет все приложения и микросервисы, развернутые в вашей системе, а также то, как ваша система использует Oracle Database.

Ключ-АСТРОМ диагностирует аномалии в режиме реального времени с помощью ИИ и выявляет первопричину медленно работающих или ошибочных SQL-запросов. Глубокий анализ кода в сочетании с облачным мониторингом серверов баз данных поможет вам обеспечить надежную производственную среду.

Расширение Oracle Database дополняет информацию об использовании базы данных на стороне клиента, обеспечивая возможность наблюдения на стороне сервера, начиная со статистики доступности и производительности и заканчивая отдельными SQL-запросами и данными логов.

Варианты использования

  • Понять зависимости приложений от баз данных: какие запросы выполняются и какова их производительность.
  • Повысить производительность приложений за счёт оптимизации типичных паттернов БД, например проблемы 1+N-запросов.
  • Определить, как приложения нагружают базу данных.
  • Понять, как нехватка ресурсов или ошибки на стороне БД влияют на приложения.
  • Анализировать аудит-логи БД, чтобы выявлять неудачные попытки входа.
  • Отслеживать состояние и производительность серверов Oracle (одиночных или мультиарендных).
  • Отслеживать наиболее ресурсоёмкие запросы.
  • Ускорить диагностику проблем в приложениях, вызванных базой данных.

Начать

Это удалённое расширение, работающее через АктивныйШлюз в вашей среде и подключающееся к каждой базе данных Oracle, которую необходимо отслеживать. Выполняется серия запросов к различным представлениям баз данных, и данные отправляются обратно в Ключ-АСТРОМ.

Начало работы для клиентов Oracle Database:

Если приложение, подключающееся к серверу Oracle Database, работает на виртуальной машине или на физическом сервере, установите на него ЕдиныйАгент, чтобы начать работу.

Если приложение, подключающееся к серверу Oracle Database, работает как рабочая нагрузка в Kubernetes или OpenShift, настройте Ключ-АСТРОМ на Kubernetes или OpenShift .

Активируйте следующие функции ЕдиногоАгента, чтобы получить полную информацию об отслеживании:

  • Node.js Oracle DB
  • PHP Oracle

Начните работу для серверов Oracle Database:

Если ваш сервер Oracle Database работает на виртуальной машине или на аппаратном уровне, установите на нем ЕдиныйАгент, чтобы начать работу с показателями производительности системы.

Активируйте удалённое расширение Oracle Database, чтобы получить полную информацию о состоянии и производительности сервера Oracle Database, включая метрики и события. Расширение собирает данные, напрямую запрашивая представления производительности базы данных, поэтому для его работы требуется подключение к ней.

Для мониторинга рекомендуется создать отдельную учётную запись пользователя. Для удобства скрипты создания пользователей можно найти здесь. Эти скрипты создают пользователя с ролями CREATE_SESSION и разрешениями SELECT для следующих представлений производительности:

  • CDB_DATA_FILES
  • CDB_TABLESPACE_USAGE_METRICS
  • CDB_TABLESPACES
  • CDB_TEMP_FILES
  • GV_$ARCHIVE_DEST
  • GV_$ARCHIVE_DEST_STATUS
  • V_$ASM_DISK_STAT
  • V_$ASM_DISKGROUP_STAT
  • V_$BACKUP_SET_DETAILS
  • GV_$CLUSTER_INTERCONNECTS
  • GV_$CONTAINERS
  • V_$CONTAINERS
  • GV_$CON_SYS_TIME_MODEL
  • GV_$CON_SYSSTAT
  • GV_$DATABASE
  • V_$DATABASE
  • V_$DATABASE_BLOCK_CORRUPTION
  • GV_$DATAFILE
  • V_$DATAFILE
  • GV_$DATAGUARD_STATUS
  • GV_$INSTANCE
  • GV_$INSTANCE_PING
  • GV_$LIBRARYCACHE
  • V_$LOG
  • GV_$METRIC
  • GV_$METRICGROUP
  • GV_$PARAMETER
  • GV_$PDBS
  • GV_$PGASTAT
  • V_$RECOVER_FILE
  • V_$RECOVERY_FILE_DEST
  • GV_$RESOURCE_LIMIT
  • V_$RMAN_BACKUP_JOB_DETAILS
  • GV_$SESSION
  • V_$SESSION
  • GV_$SGASTAT
  • GV_$SQL
  • V_$SQL
  • GV_$SQLAREA
  • V_$SQL_PLAN
  • GV_$SQL_PLAN
  • V_$SQL_PLAN_STATISTICS_ALL
  • GV_$SYSSTAT
  • GV_$SYSTEM_EVENT
  • GV_$SYSTEM_WAIT_CLASS
  • V_$TABLESPACE
  • V_$TEMPFILE

В качестве альтернативы SELECT_CATALOG_ROLE можно назначить пользователю, осуществляющему мониторинг.

Для мониторинга мультиарендной конфигурации Oracle DB убедитесь, что расширение указывает на CDB. Обнаружение и мониторинг PDB будут выполняться автоматически. В этом случае необходимы явные разрешения на доступ к данным во всех контейнерах:

alter user <your_username> set container_data=all container = current;

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

Пользователям приложения Базы данных, желающим использовать планы выполнения запросов, также необходимо предоставить разрешение для представлений V$SQL_PLAN, V$SESSION, V$SQL_PLAN_STATISTICS_ALL и V$SQL. Эти разрешения включены в скрипты создания пользователей. Подробнее см. в разделе Мониторинг планов выполнения ниже.

Наконец, активируйте мониторинг логов, чтобы получить полную картину логов.

Примечание:

При использовании набора функций TopN расширение выводит отчеты о наиболее затратных по времени запросах на странице сущностей экземпляра Oracle в разделе Логи. Включение этой функции может привести к раскрытию конфиденциальных данных в отчетах о запросах.

Подробности

Этот пакет расширения содержит:

  • Определения топологии и взаимосвязей для кластеров RAC, заданий резервного копирования, баз данных, экземпляров, дисков ASM и групп дисков ASM.
  • Классический и новый дашборд, предлагающий обзор мониторинга среды Oracle Database.
  • Оповещения об ошибках резервного копирования, недоступных PDB, недоступных экземплярах, высоком использовании табличного пространства и т.д.
  • Страница унифицированного анализа для вышеупомянутой топологии

Информация о совместимости

Поддерживаются следующие версии Oracle:

  • Oracle DB 12.2+

Поддерживаются следующие архитектуры:

  • Автономные серверы Oracle
  • Oracle Multitenant (CDB/PDB)
    • Настройка мониторинга CDB для обнаружения всех PDB
  • Oracle AWS RDS
  • Oracle RAC
    • Настройка мониторинга для SCAN обнаружения всех экземпляров и баз данных.

Управление логами и аналитика

Отслеживание файлов логов аудита

Проверка местоположения файла логов

  • SELECT name, value FROM v$parameter WHERE name = 'audit_trail';

OS означает, что логи аудита хранятся локально в файле.

  • SELECT value FROM v$parameter WHERE name = 'audit_file_dest';

указывает местоположение файла логов

Добавить правила безопасности LogAgent

Настройте правила безопасности LogAgent, чтобы разрешить доступ к локальным файлам, добавив файл oracle.json в:

  • в Linux/UNIX: /var/lib/astromkey/oneagent/agent/config/logmodule
  • в Windows: %PROGRAMDATA%\astromkey\oneagent\agent\config\logmodule
{
    "@version": "1.0.0",
    "allowed-log-paths-configuration": [
        {
            "directory-pattern": "/u01/app/oracle/admin/oracle_standalone/adump/",
            "file-pattern": "*.aud",
            "action": "INCLUDE"
        }
    ]
}

Перезапуск агента не требуется, данная конфигурация будет применена в течение 1 минуты.

Настройте собственный источник логов и правила приема логов

Пользовательский источник логов

Используйте местоположение файла логов, полученное с помощью запроса, выполненного на первом этапе, например /u01/app/oracle/admin/oracle_standalone/adump/*.

Правила приема логов

Пример конфигурации, которая включает только сообщения ORA-01017 о попытках входа с недействительным именем пользователя или паролем, можно настроить с помощью: Log content is any of: (.*)RETURNCODE:\[(\d+)\] "1017 AND Log source is any of: /u01/app/oracle/admin/oracle_standalone/adump/*

Доступ к логам

Доступ к логам, собранным описанным выше способом, можно получить с помощью следующего DQL-запроса: fetch logs | filter matchesValue(log.source, "/u01/app/oracle/admin/oracle_standalone/adump/*").

Извлечение метрик

Правило обработки логов

Настройте правило обработки логов для извлечения атрибутов лога из его содержимого:

  • Имя правила: предпочтительное имя
  • Сопоставитель: matchesValue(log.source, "/u01/app/oracle/admin/oracle_standalone/adump/*")
  • Определение процессора:
PARSE(content, "
  DATA ' RETURNCODE:['INT']' SPACE '\"' INT:ora.returncode LD") |
PARSE(content, "
  DATA ' USERID:['INT']'SPACE CSVDQS:ora.userid LD") | 
PARSE(content, "
  DATA ' USERHOST:['INT']'SPACE CSVDQS:ora.userhost LD") 
Извлечение метрических данных

Извлеките показатели из записей логов для включения оповещений:

  • Метрический ключ: например log.oracle.invalid_credentials
  • Сопоставитель: matchesValue(log.source, "/u01/app/oracle/admin/oracle_standalone/adump/*")
  • Метрические измерения: Occurence of logs records
  • Измерения: укажите атрибуты журнала, которые будут использоваться в качестве метрических измерений.

Мониторинг плана выполнения

Для клиентов SaaS, имеющих доступ к приложению «Базы данных», функция мониторинга плана выполнения также доступна при анализе эффективности выполнения выписок.

Для работы функции DBMS_XPLAN пакет должен быть доступен, а пользователь, настроенный в расширении Ключ-АСТРОМ, должен иметь разрешения на вызов функции DISPLAY_CURSOR. Согласно официальной документации, это означает, что для следующих представлений SELECT, READ требуются разрешения:

  • V$SQL_PLAN
  • V$SESSION
  • V$SQL_PLAN_STATISTICS_ALL
  • V$SQL

В дополнение к этому, разрешение SELECT также требуется для V$SQL_PLAN.

Маскировка конфиденциальных данных

Отслеживание производительности запросов может раскрыть конфиденциальные данные в отчётах. Поэтому Ключ-АСТРОМ предоставляет дополнительный механизм, позволяющий маскировать выбранные атрибуты.

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

  • Создать новое правило обработки можно в разделе Настройки -> Мониторинг -> Процессы
    • Определение процесса: USING(INOUT content) | FIELDS_ADD(content: REPLACE_PATTERN(content, "(\"'\"):p1 (LD):p2 (\"'\"):p3", "${p1}${p2|sha1}${p3}"))
  • Или создайте/измените свое собственное расширение для распространения таких правил в вашей среде:
logProcessingRules:
  - ruleName: TopN statements masking
    query: event.group="query_performance"
    enabled: true
    ProcessorDefinition:
      rule: |
        USING(INOUT content) | FIELDS_ADD(content: REPLACE_PATTERN(content, "(\"'\"):p1 (LD):p2 (\"'\"):p3", "${p1}${p2|sha1}${p3}"))
    RuleTesting:
      sampleLog: |
        {
          "event.group": "query_performance",
          "content": "/*dt:ownQuery*/SELECT DECODE(name, 'sessions', value) AS sessions_limit, DECODE(name, 'processes', value) AS processes_limit FROM v$parameter WHERE name IN('sessions', 'processes')"
        }

Измените это правило в соответствии с вашим вариантом использования.

Лицензирование

Метрики, собираемые с помощью этого расширения, используют единицы данных ИИ Ключ-АСТРОМ (см. DDU для метрик).

Грубую оценку количества DDU, потребляемых метрическим методом, можно получить с помощью следующей формулы:

(55 * number of instances * 525.6) + (7 * number of databases * 525.6) + (8 * number of backup jobs per year * 0.005) + (5 * number of ASM disks * 525.6) + (3 * number of ASM disk groups * 525.6)

Для логов действует стандартное потребление DDU для мониторинга логов. В зависимости от вашей модели лицензирования, см. потребление DDU для мониторинга логов.