Skip to content

Обзор монитор баз данных (ODBC)

ODBC — это промежуточный программный интерфейс, написанный на языке программирования C, который позволяет взаимодействовать с системами управления базами данных (СУБД). Этот интерфейс был разработан компанией Microsoft, а затем адаптирован для использования на других платформах.

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

Эта возможность позволяет более эффективно отслеживать различные базы данных для разных целей, например, для проверки конкретных очередей баз данных, анализа статистики использования и т. д.

Glaber поддерживает unixODBC, который является одной из наиболее распространённых реализаций API ODBC с открытым исходным кодом.

Установка unixODBC

Для установки unixODBC рекомендуется использовать репозитории пакетов операционной системы Linux. В большинстве популярных дистрибутивов Linux unixODBC уже включён в репозиторий пакетов. Если же он отсутствует, его можно загрузить с домашней страницы unixODBC.

Для компиляции Glaber с поддержкой unixODBC требуется пакет unixodbc-dev или unixODBC-devel.

Установка unixODBC в операционных системах Ubuntu и Debian с использованием менеджера пакетов apt:

apt install unixodbc unixodbc-dev

Установка unixODBC в системах на базе Red Hat или Fedora осуществляется с помощью менеджера пакетов dnf:

dnf install unixODBC unixODBC-devel

Установка unixODBC в системах на базе SUSE с помощью менеджера пакетов zypper:

zypper in unixODBC-devel

Установка драйверов unixODBC

Для базы данных, которую мы будем отслеживать, нужно установить драйвер базы данных unixODBC.

unixODBC предоставляет список поддерживаемых баз данных и драйверов. В некоторых дистрибутивах Linux драйверы баз данных уже включены в репозитории пакетов.

Установка драйвера базы данных MySQL в системах Ubuntu/Debian с помощью менеджера пакетов apt:

apt install odbc-mariadb

Установка драйвера базы данных MySQL в системах на базе RedHat/Fedora с помощью менеджера пакетов dnf:

dnf install mariadb-connector-odbc

Установка драйвера базы данных MySQL в системах на базе SUSE с помощью менеджера пакетов zypper:

zypper in mariadb-connector-odbc

Настройка unixODBC

Настройка ODBC выполняется путем редактирования файлов odbcinst.ini и odbc.ini. Чтобы проверить расположение файла конфигурации, введите:

odbcinst -j

odbcinst.ini используется для вывода списка установленных драйверов баз данных ODBC:

[mysql]
Description = ODBC for MySQL
Driver      = /usr/lib/libmyodbc5.so

Подробная информация о параметрах:

Атрибут Описание
mysql Имя драйвера базы данных.
Description Описание драйвера базы данных.
Driver Расположение библиотеки драйверов базы данных.

odbc.ini используется для определения источников данных:

[test]
Description = MySQL test database
Driver      = mysql
Server      = 127.0.0.1
User        = root
Password    =
Port        = 3306
Database    = Glaber

Подробная информация о параметрах:

Атрибут Описание
test Имя источника данных (DSN).
Description Описание источника данных.
Driver Имя драйвера базы данных - как указано в odbcinst.ini
Server IP/ DNS сервера базы данных.
User Пользователь базы данных для подключения.
Password Пароль пользователя базы данных.
Port Порт подключения к базе данных.
Database Имя базы данных.

Чтобы проверить, успешно ли работает подключение ODBC, необходимо протестировать подключение к базе данных. Это можно сделать с помощью утилиты isql (входит в пакет unixODBC):

isql test
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

Чтобы включить поддержку ODBC, Glaber необходимо скомпилировать со следующим флагом:

--with-unixodbc[=ARG] # Use ODBC driver against unixODBC package.

Создание и настройка элементов данных в Glaber

При создании элемента данных необходимо указать следующие данные (Рисунок 1):

Название Описание
Тип Выбирается тип элемента данных.
Ключ Введите один из двух поддерживаемых ключей элемента данных: db.odbc.select[<уникальное краткое описание>,,<строка подключения>] — этот элемент данных предназначен для возврата одного значения, то есть первого столбца первой строки результата SQL-запроса. Если запрос возвращает более одного столбца, считывается только первый столбец. Если запрос возвращает более одной строки, считывается только первая строка. db.odbc.get[<уникальное краткое описание>,,<строка подключения>] — этот элемент данных может возвращать несколько строк/столбцов в формате JSON. Таким образом, его можно использовать в качестве основного элемента данных, который собирает все данные за один системный вызов, а предварительная обработка JSONPath может использоваться в зависимых элементах данных для извлечения отдельных значений. Описание будет служить для идентификации элемента данных в триггерах и т. д. Хотя у dsn и строки подключения есть дополнительные параметры, по крайней мере один из них должен присутствовать. Если определены и имя источника данных (DSN), и строка подключения, DSN будет проигнорирован. Имя источника данных, если оно используется, должно быть указано в odbc.ini. Строка подключения может содержать параметры, зависящие от драйвера.
Тип информации Важно знать, какой тип информации будет возвращён запросом, чтобы правильно его выбрать. При неправильном выборе типа информации элемент данных станет неподдерживаемым.
Имя пользователя Введите имя пользователя базы данных. Этот параметр необязателен, если имя пользователя указано в odbc.ini. Если используется строка подключения и поле Имя пользователя не пусто, оно добавляется к строке подключения как UID=
Пароль Введите пароль пользователя базы данных. Этот параметр необязателен, если пароль указан в odbc.ini. Если используется строка подключения и поле «Пароль» не пустое, оно добавляется к строке подключения как PWD=<пароль>.
SQL-запрос Введите SQL-запрос. Обратите внимание, что при использовании db.odbc.select[] элемента данных запрос должен возвращать только одно значение.

image

Рисунок 1 — Настройка элемента данных