This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ru:manual:config:items:loadablemodules [2016/12/09 11:34] dotneft |
ru:manual:config:items:loadablemodules [2018/07/08 04:48] (current) dotneft |
||
---|---|---|---|
Line 18: | Line 18: | ||
Подгружаемые модули имеют много преимуществ. Отличная производительность и возможность внедрения в любую логику что очень важно, но возможно наиболее важное преимущество - возможность развития, использования и распространения Zabbix модулей. Это поспособствует безпроблемному обслуживанию и поможет вносить новую функциональность легче и независимо от кода ядра Zabbix. | Подгружаемые модули имеют много преимуществ. Отличная производительность и возможность внедрения в любую логику что очень важно, но возможно наиболее важное преимущество - возможность развития, использования и распространения Zabbix модулей. Это поспособствует безпроблемному обслуживанию и поможет вносить новую функциональность легче и независимо от кода ядра Zabbix. | ||
- | === - API модуль === | + | Лицензирование и распространение модулей в бинарной форме регламентируется GPL лицензией (модули линкуются с Zabbix во время выполнения и используют заголовки Zabbix; в настоящее время весь код Zabbix лицензируется под GPL лицензией). Бинарная совместимость не гарантируется Zabbix'ом. |
+ | |||
+ | Постоянство API модулей гарантируется в пределах одного цикла Zabbix LTS (Долгосрочная поддержка) [[http://www.zabbix.com/life_cycle_and_release_policy|выпуска]]. Постоянство Zabbix API не гаратируется (технически имеется возможность вызова внутренних функций Zabbix из модуля, но гарантии, что такие модули будут работать нет). | ||
+ | |||
+ | === - API модулей === | ||
Для того чтобы разделяемая библиотека обрабатывалась как Zabbix модуль, она должна реализовывать и экспортировать несколько функций. На данный момент имеется пять функций в API модулей Zabbix, две из которых обязательны, а остальные три - опциональны. | Для того чтобы разделяемая библиотека обрабатывалась как Zabbix модуль, она должна реализовывать и экспортировать несколько функций. На данный момент имеется пять функций в API модулей Zabbix, две из которых обязательны, а остальные три - опциональны. | ||
Line 38: | Line 42: | ||
Эта функция должна выполнять необходимую инициализацию для модуля (если таковые имеются). В случае успеха, функция должна вернуть ZBX_MODULE_OK. В противном случае, она должна вернуть ZBX_MODULE_FAIL. | Эта функция должна выполнять необходимую инициализацию для модуля (если таковые имеются). В случае успеха, функция должна вернуть ZBX_MODULE_OK. В противном случае, она должна вернуть ZBX_MODULE_FAIL. | ||
+ | |||
+ | Эти две функции являются обязательными в том смысле, что если одна из этих функций отсутствует в API модуле или любая из них возвращает неприемлемый результат при вызове из любого модуля в списке загружаемых модулей, тогда Zabbix не запустится. | ||
== - Опциональный интерфейс == | == - Опциональный интерфейс == | ||
Line 47: | Line 53: | ||
</code> | </code> | ||
- | Эта функция должна возвращать список элементов данных, поддерживаемых модулем. Каждый элемент данных, указанный в структуре ZBX_METRIC, смотрите раздел ниже для подробностей. Список завершается с помощью структуры ZBX_METRIC с полем "key" равным NULL. | + | Эта функция должна возвращать список элементов данных, поддерживаемых модулем. Zabbix читает список поддерживаемых элементов данных только один раз при запуске. Каждый элемент данных, указанный в структуре ZBX_METRIC, смотрите раздел ниже для подробностей. Список завершается с помощью структуры ZBX_METRIC с полем "key" равным NULL. Если эта функция отсутствует в API модуля, Zabbix выгрузит модуль и продолжит загрузку других модулей. |
<code c> | <code c> | ||
Line 138: | Line 144: | ||
=== - Пустой модуль === | === - Пустой модуль === | ||
- | Zabbix 2.4 включает простой модуль, написанный на языке С. Модуль находиться в src/modules/dummy: | + | Zabbix включает простой модуль, написанный на языке С. Модуль находиться в src/modules/dummy: |
[email protected]:~trunk/src/modules/dummy$ ls -l | [email protected]:~trunk/src/modules/dummy$ ls -l |