|
| 1 | +# Мониторинг Oracle Database с использованием New Relic |
| 2 | + |
| 3 | +Для мониторинга Oracle Database с использованием агента New Relic выполните следующие шаги. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## Шаг 1: Установка агента инфраструктуры |
| 8 | + |
| 9 | +Убедитесь, что ваш сервер работает на поддерживаемой версии Linux. Инструкции для установки инфраструктурного агента можно найти [здесь](https://docs.newrelic.com/docs/infrastructure/host-integrations/installation/install-infrastructure-host-integrations/#tarball). |
| 10 | + |
| 11 | +Пример установки для RHEL/CentOS: |
| 12 | +```bash |
| 13 | +sudo yum install newrelic-infra -y |
| 14 | +``` |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## Шаг 2: Установка Oracle Instant Client |
| 19 | + |
| 20 | +Для работы интеграции необходим Oracle Instant Client. Пример для Linux x64: |
| 21 | + |
| 22 | +1. Перейдите на [страницу загрузки Oracle Instant Client](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html). |
| 23 | +2. Скачайте RPM-пакет и установите его: |
| 24 | + ```bash |
| 25 | + sudo yum install oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm |
| 26 | + ``` |
| 27 | + |
| 28 | +3. Если вы используете Oracle Instant Client версии 19 или выше, путь к библиотекам настроится автоматически. Для более старых версий добавьте библиотеку в `LD_LIBRARY_PATH`: |
| 29 | + ```bash |
| 30 | + sudo sh -c "echo /usr/lib/oracle/21.1/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf" |
| 31 | + sudo ldconfig |
| 32 | + ``` |
| 33 | + |
| 34 | + Или настройте переменную окружения: |
| 35 | + ```bash |
| 36 | + export LD_LIBRARY_PATH=/usr/lib/oracle/18.5/client64/lib:$LD_LIBRARY_PATH |
| 37 | + ``` |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## Шаг 3: Настройка базы данных Oracle |
| 42 | + |
| 43 | +1. **Создайте пользователя с необходимыми привилегиями**: |
| 44 | + - Для автономной базы данных: |
| 45 | + ```sql |
| 46 | + ALTER SESSION set "_Oracle_SCRIPT"=true; |
| 47 | + CREATE USER USERNAME IDENTIFIED BY "USER_PASSWORD"; |
| 48 | + ``` |
| 49 | + |
| 50 | + - Для мультитенантной базы данных: |
| 51 | + ```sql |
| 52 | + CREATE USER c##USERNAME IDENTIFIED BY "USER_PASSWORD"; |
| 53 | + ALTER USER c##USERNAME SET CONTAINER_DATA=ALL CONTAINER=CURRENT; |
| 54 | + ``` |
| 55 | + |
| 56 | +2. **Предоставьте необходимые привилегии**: |
| 57 | + ```sql |
| 58 | + GRANT CONNECT TO USERNAME; |
| 59 | + GRANT SELECT ON gv_$sysmetric TO USERNAME; |
| 60 | + GRANT SELECT ON v_$database TO USERNAME; |
| 61 | + GRANT SELECT ON gv_$session TO USERNAME; |
| 62 | + -- Добавьте остальные необходимые представления из вашего сценария |
| 63 | + ``` |
| 64 | + |
| 65 | +3. **Настройте файл Listener.ora**: |
| 66 | + Убедитесь, что база данных настроена для удалённого подключения. По умолчанию база данных слушает только локальный хост. |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## Шаг 4: Установка и активация интеграции OracleDB |
| 71 | + |
| 72 | +1. Установите интеграцию: |
| 73 | + ```bash |
| 74 | + sudo yum install nri-oracledb |
| 75 | + ``` |
| 76 | + |
| 77 | +2. Скопируйте шаблон конфигурационного файла или создайте новый файл: |
| 78 | + ```bash |
| 79 | + sudo cp /etc/newrelic-infra/integrations.d/oracledb-config.yml.sample /etc/newrelic-infra/integrations.d/oracledb-config.yml |
| 80 | + ``` |
| 81 | + |
| 82 | +3. Откройте файл `/etc/newrelic-infra/integrations.d/oracledb-config.yml` и добавьте следующие настройки: |
| 83 | + ```yaml |
| 84 | + integrations: |
| 85 | + - name: nri-oracledb |
| 86 | + env: |
| 87 | + SERVICE_NAME: ORACLE |
| 88 | + HOSTNAME: 127.0.0.1 |
| 89 | + PORT: 1521 |
| 90 | + USERNAME: oracledb_user |
| 91 | + PASSWORD: oracledb_password |
| 92 | + ORACLE_HOME: /app/oracle/product/version/database |
| 93 | + interval: 15s |
| 94 | + labels: |
| 95 | + environment: production |
| 96 | + inventory_source: config/oracledb |
| 97 | + ``` |
| 98 | + |
| 99 | +4. Перезапустите агент: |
| 100 | + ```bash |
| 101 | + sudo systemctl restart newrelic-infra |
| 102 | + ``` |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +## Шаг 5: Проверка |
| 107 | + |
| 108 | +После успешной настройки в логах агента появится следующая запись: |
| 109 | +``` |
| 110 | +time="YYYY-MM-DDTHH:MM:SS+03:00" level=info msg="Integration health check finished with success" component=integrations.runner.Runner environment=production integration_name=nri-oracledb runner_uid= |
| 111 | +``` |
| 112 | +
|
| 113 | +Если возникает ошибка **ORA-00000: DPI-1047**, убедитесь в корректности установки Oracle Instant Client. Подробнее см. [документацию Oracle](https://oracle.github.io/odpi/doc/installation.html#linux). |
| 114 | +
|
| 115 | +--- |
| 116 | +
|
| 117 | +## Дополнительная информация |
| 118 | +
|
| 119 | +- Подробная документация по настройке и устранению неполадок: [New Relic OracleDB Integration](https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/oracle-database/oracle-database-integration/). |
| 120 | +- Обратите внимание на безопасность при хранении паролей, используя переменные окружения вместо прямой записи в конфигурации. |
0 commit comments