ODBC мониторинг соответствует типу элемента данных Монитор баз данных в веб-интерфейсе Zabbix.
ODBC - язык программирования на C, промежуточная прослойка API для доступа к системам управления баз данных (DBMS). Концепт ODBC был разработан Microsoft и в дальнейшем портирован на другие платформы.
Zabbix может выполнять запросы к любой базе данных, которая поддерживается ODBC. Чтобы это сделать, Zabbix не подключается напрямую к базам данных, он использует интерфейс ODBC и драйвера установленные в ODBC. Эта функция позволяет мониторить различные базы данных с различными целями с большей эффективностью - например, проверка специфичных запросов к базе данных, статистика использования и прочее. Zabbix поддерживает unixODBC, которая наиболее часто используются в реализациях ODBC API с открытым исходным кодом.
Предлагаемый вариант установки unixODBC состоит из использования репозитариев пакетов по умолчанию в Linux операционной системы. В наиболее популярные дистрибутивы Linux unixODBC включен в репозитарии пакетов по умолчанию. Если он недоступен, вы можете обратиться к домашней странице UnixODBC: http://www.unixodbc.org/download.html.
Установка unixODBC на системы на базе RedHat/Fedora с использованием менеджера пакетов yum:
Установка unixODBC на системы на базе SUSE с использованием менеджера пакетов zypper:
Пакет unixODBC-devel требуется для компиляции Zabbix с поддержкой unixODBC.
Драйвер unixODBC базы данных должен быть установлен для базы данных, которая будет наблюдаться. unixODBC имеет список поддерживаемых баз данных и драйверов: http://www.unixodbc.org/drivers.html. В некоторых дистрибутивах Linux драйвера баз данных включены в репозитарии пакетов. Драйвера MySQL базы данных на системы на базе RedHat/Fedora можно установить с помощью менеджера пакетов yum:
Установка MySQL драйвера на системы на базе SUSE с использованием менеджера пакетов zypper:
Настройка ODBC выполняется редактированием файлов odbcinst.ini и odbc.ini. Для проверки размещения этих файлов введите:
odbcinst.ini используется для перечисления установленных драйверов баз данных ODBC:
Подробная информация:
| Атрибут | Описание |
|---|---|
| mysql | Имя драйвера базы данных. |
| Description | Описание драйвера базы данных. |
| Driver | Размещение библиотеки драйвера базы данных. |
odbc.ini используется для определения источников данных:
[test]
Description = MySQL test database
Driver = mysql
Server = 127.0.0.1
User = root
Password =
Port = 3306
Database = zabbixПодробная информация:
| Атрибут | Описание |
|---|---|
| test | Имя источника данных (DSN). |
| Description | Описание источника данных. |
| Driver | Имя драйвера базы данных - как указано в odbcinst.ini |
| Server | IP/DNS сервера базы данных. |
| User | Пользователь базы данных для подключения. |
| Password | Пароль к базе данных. |
| Port | Порт подключения к базе данных. |
| Database | Имя базы данных. |
Для проверки работает ли соединение ODBC корректно, подключение к базе данных необходимо протестировать. Для этого можно воспользоваться утилитой isql (включена в пакет unixODBC):
shell> isql test
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>Для включения поддержки ODBC, Zabbix должен быть скомпилирован со следующим флагом:
Смотрите более подробную информацию о установке Zabbix из исходных кодов.
Настройка элемента данных для мониторинга базы данных.

Все обязательные поля ввода отмечены красной звёздочкой.
Специально для элементов данных мониторинга баз данных вы должны указать:
| Тип | Выберите здесь Монитор баз данных. |
| Ключ | Введите db.odbc.select[уникальное_описание,имя_источника_данных] Уникальное описание будет служить идентификатором элемента данных в триггерах и тому подобном. Имя источника данных (DSN) должно быть указано как в настройках odbc.ini. |
| Имя пользователя | Введите имя пользователя для доступа к базе данных (опционально, если пользователь указан в odbc.ini) |
| Пароль | Введите пароль пользователя для доступа к базе данных (опционально, если пароль указан в odbc.ini) |
| SQL запрос | Введите необходимый SQL запрос |
| Тип информации | Очень важно знать какой тип информации будет возвращаться указанным запросом, то есть выберите корректный тип информации здесь. С некорректным типом информации элемент данных станет неподдерживаемым. |
select .... Синтаксис запроса будет зависеть от RDBMS, которая обрабатывает эти запросы. Синтаксис запроса к хранимым процедурам должен начинаться с ключевого слова call.Сообщения об ошибках ODBC скомпонованы в поля для предоствления подробной информации. Например:
Cannot execute ODBC query: [SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]
└───────────┬───────────┘ └────┬────┘ └──┬──┘└┬┘└─────────────────────────────┬─────────────────────────────────────┘
│ │ │ └─ Родной код ошибки └─ Родное сообщение об ошибке
│ │ └─ SQLState
└─ Zabbix сообщение └─ ODBC возвращаемый кодОбратите внимание, что длина сообщения об ошибке ограничена 2048 байтами, поэтому сообщение может быть укорочено. Если есть более одной ODBC диагностической записи, Zabbix пытается их скомпоновать (разделяя символом |) на сколько позволяет максимальная длина сообщения.