Zabbix Documentation 3.2

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


ru:manual:config:items:loadablemodules

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
ru:manual:config:items:loadablemodules [2018/07/08 04:48]
dotneft
ru:manual:config:items:loadablemodules [2019/11/27 04:00] (current)
dotneft
Line 31: Line 31:
 Единственная обязательная функции - **zbx_module_api_version()**:​ Единственная обязательная функции - **zbx_module_api_version()**:​
  
-<file c>+<code c>
 int zbx_module_api_version(void);​ int zbx_module_api_version(void);​
-</file>+</code>
  
 Эта функция должна возвращать API версию реализованную в модуле и, чтобы модуль загрузился,​ версия должна совпадать с версией API модулей поддерживаемой Zabbix. Версией API модулей поддерживаемой Zabbix является ZBX_MODULE_API_VERSION. Таким образом эта функция должна возвращать эту константу. Старая константа ZBX_MODULE_API_VERSION_ONE,​ которая ранее использовалась для этих целей, теперь определена равной ZBX_MODULE_API_VERSION для сохранения совместимости исходного кода, но её использование не рекомендуется. Эта функция должна возвращать API версию реализованную в модуле и, чтобы модуль загрузился,​ версия должна совпадать с версией API модулей поддерживаемой Zabbix. Версией API модулей поддерживаемой Zabbix является ZBX_MODULE_API_VERSION. Таким образом эта функция должна возвращать эту константу. Старая константа ZBX_MODULE_API_VERSION_ONE,​ которая ранее использовалась для этих целей, теперь определена равной ZBX_MODULE_API_VERSION для сохранения совместимости исходного кода, но её использование не рекомендуется.
Line 41: Line 41:
 Опциональными функциями являются следующие функции - **zbx_module_init()**,​ **zbx_module_item_list()**,​ **zbx_module_item_timeout()**,​ **zbx_module_history_write_cbs()** и **zbx_module_uninit()**:​ Опциональными функциями являются следующие функции - **zbx_module_init()**,​ **zbx_module_item_list()**,​ **zbx_module_item_timeout()**,​ **zbx_module_history_write_cbs()** и **zbx_module_uninit()**:​
  
-<file c>+<code c>
 int zbx_module_init(void);​ int zbx_module_init(void);​
-</file>+</code>
  
 Эта функция должна выполнять необходимую инициализацию для модуля (если таковые имеются). В случае успеха,​ функция должна вернуть ZBX_MODULE_OK. В противном случае,​ она должна вернуть ZBX_MODULE_FAIL. В последнем случае Zabbix не запустится. Эта функция должна выполнять необходимую инициализацию для модуля (если таковые имеются). В случае успеха,​ функция должна вернуть ZBX_MODULE_OK. В противном случае,​ она должна вернуть ZBX_MODULE_FAIL. В последнем случае Zabbix не запустится.
  
-<file c>+<code c>
 ZBX_METRIC *zbx_module_item_list(void);​ ZBX_METRIC *zbx_module_item_list(void);​
-</file>+</code>
  
 Эта функция должна возвращать список элементов данных,​ поддерживаемых модулем. Каждый элемент данных указывается в структуре ZBX_METRIC, смотрите раздел ниже для подробностей. Список завершается при помощи структуры ZBX_METRIC с полем "​key"​ равным NULL. Эта функция должна возвращать список элементов данных,​ поддерживаемых модулем. Каждый элемент данных указывается в структуре ZBX_METRIC, смотрите раздел ниже для подробностей. Список завершается при помощи структуры ZBX_METRIC с полем "​key"​ равным NULL.
  
-<file c>+<code c>
 void zbx_module_item_timeout(int timeout); void zbx_module_item_timeout(int timeout);
-</file>+</code>
  
 Если модуль экспортирует **zbx_module_item_list()**,​ тогда эта функция используется Zabbix, чтобы задать опцию времени ожидания в файле конфигурации Zabbix, которой проверки элементов данных реализованных в модуле должны подчиняться. Здесь, параметр "​время ожидания"​ задается в секундах. Если модуль экспортирует **zbx_module_item_list()**,​ тогда эта функция используется Zabbix, чтобы задать опцию времени ожидания в файле конфигурации Zabbix, которой проверки элементов данных реализованных в модуле должны подчиняться. Здесь, параметр "​время ожидания"​ задается в секундах.
  
-<file c>+<code c>
 ZBX_HISTORY_WRITE_CBS zbx_module_history_write_cbs(void);​ ZBX_HISTORY_WRITE_CBS zbx_module_history_write_cbs(void);​
-</file>+</code>
  
 Эта функция должна возвращать функции обратного вызова (callback), которые будут использоваться Zabbix сервером или прокси для экспорта истории различных типов данных. Функции обратного вызова представляют собой поля ZBX_HISTORY_WRITE_CBS структуры,​ поля могут быть NULL, если модуль не заинтересован в истории некоторого типа. Эта функция должна возвращать функции обратного вызова (callback), которые будут использоваться Zabbix сервером или прокси для экспорта истории различных типов данных. Функции обратного вызова представляют собой поля ZBX_HISTORY_WRITE_CBS структуры,​ поля могут быть NULL, если модуль не заинтересован в истории некоторого типа.
  
-<file c>+<code c>
 int zbx_module_uninit(void);​ int zbx_module_uninit(void);​
-</file>+</code>
  
 Эта функция должна выполнять необходимые деинициализации (если таковые имеются),​ такие как освобождение выделенных ресурсов,​ закрытие файловых дескрипторов и так далее. Эта функция должна выполнять необходимые деинициализации (если таковые имеются),​ такие как освобождение выделенных ресурсов,​ закрытие файловых дескрипторов и так далее.
Line 77: Line 77:
 Каждый элемент данных определяется в структуре ZBX_METRIC: Каждый элемент данных определяется в структуре ZBX_METRIC:
  
-<file c>+<code c>
 typedef struct typedef struct
 { {
Line 86: Line 86:
 } }
 ZBX_METRIC; ZBX_METRIC;
-</file>+</code>
  
 Здесь, **key** - ключ элемента данных (например,​ "​dummy.random"​),​ **flags** - либо CF_HAVEPARAMS,​ либо 0 (в зависимости от того, принимает ли элемент данных параметры или нет), **function** - C функция,​ которая обрабатывает элемент данных (например,​ "​zbx_module_dummy_random"​),​ и **test_param** - список параметров,​ которые используется когда Zabbix агент запускается с флагом "​-p"​ (например,​ "​1,​1000",​ может быть NULL). Пример определения может выглядеть наподобие этого: Здесь, **key** - ключ элемента данных (например,​ "​dummy.random"​),​ **flags** - либо CF_HAVEPARAMS,​ либо 0 (в зависимости от того, принимает ли элемент данных параметры или нет), **function** - C функция,​ которая обрабатывает элемент данных (например,​ "​zbx_module_dummy_random"​),​ и **test_param** - список параметров,​ которые используется когда Zabbix агент запускается с флагом "​-p"​ (например,​ "​1,​1000",​ может быть NULL). Пример определения может выглядеть наподобие этого:
  
-<file c>+<code c>
 static ZBX_METRIC keys[] = static ZBX_METRIC keys[] =
 { {
Line 96: Line 96:
  { NULL }  { NULL }
 } }
-</file>+</code>
  
 Каждая функция,​ которая обрабатывает элемент данных должна принимать два указателя параметра,​ первый с типом AGENT_REQUEST и второй с типом AGENT_RESULT:​ Каждая функция,​ которая обрабатывает элемент данных должна принимать два указателя параметра,​ первый с типом AGENT_REQUEST и второй с типом AGENT_RESULT:​
  
-<file c>+<code c>
 int zbx_module_dummy_random(AGENT_REQUEST *request, AGENT_RESULT *result) int zbx_module_dummy_random(AGENT_REQUEST *request, AGENT_RESULT *result)
 { {
Line 109: Line 109:
  return SYSINFO_RET_OK;​  return SYSINFO_RET_OK;​
 } }
-</file>+</code>
  
 Эти функции должны возвращать SYSINFO_RET_OK,​ если значение элемента данных получено успешно. В противном случае,​ функции должны возвращать SYSINFO_RET_FAIL. Смотрите пример "​dummy"​ модуля ниже для получения деталей как получать информацию от AGENT_REQUEST и как указывать информацию в AGENT_RESULT. Эти функции должны возвращать SYSINFO_RET_OK,​ если значение элемента данных получено успешно. В противном случае,​ функции должны возвращать SYSINFO_RET_FAIL. Смотрите пример "​dummy"​ модуля ниже для получения деталей как получать информацию от AGENT_REQUEST и как указывать информацию в AGENT_RESULT.
Line 117: Line 117:
 Модуль может задавать функции для экспорта данных истории по типам: Числовой (с плавающей точкой),​ Числовой (целое положительное),​ Символ,​ Текст и Журнал (лог): Модуль может задавать функции для экспорта данных истории по типам: Числовой (с плавающей точкой),​ Числовой (целое положительное),​ Символ,​ Текст и Журнал (лог):
  
-<file c>+<code c>
 typedef struct typedef struct
 { {
Line 127: Line 127:
 } }
 ZBX_HISTORY_WRITE_CBS;​ ZBX_HISTORY_WRITE_CBS;​
-</file>+</code>
  
 Каждый из них должен принимать массив "​history"​ из элементов "​history_num"​ в виде аргументов. В зависимости от экспортируемого типа данных истории,​ "​history"​ является массивом из следующих структур,​ соответственно:​ Каждый из них должен принимать массив "​history"​ из элементов "​history_num"​ в виде аргументов. В зависимости от экспортируемого типа данных истории,​ "​history"​ является массивом из следующих структур,​ соответственно:​
  
-<file c>+<code c>
 typedef struct typedef struct
 { {
Line 180: Line 180:
 } }
 ZBX_HISTORY_LOG;​ ZBX_HISTORY_LOG;​
-</file>+</code>
  
 Обратные вызовы будут использоваться Zabbix сервером или прокси процессами синхронизации истории в конце процедуры синхронизации истории после того, как данные записаны в базу данных Zabbix и сохранены в кэш значений. Обратные вызовы будут использоваться Zabbix сервером или прокси процессами синхронизации истории в конце процедуры синхронизации истории после того, как данные записаны в базу данных Zabbix и сохранены в кэш значений.
Line 236: Line 236:
 После выполнения ./configure в корне дерева исходных кодов Zabbix, как описано ранее, просто выполните **make** для сборки **dummy.so**. После выполнения ./configure в корне дерева исходных кодов Zabbix, как описано ранее, просто выполните **make** для сборки **dummy.so**.
  
-<file c>+<code c>
 /* /*
 ** Zabbix ** Zabbix
Line 526: Line 526:
  return dummy_callbacks;​  return dummy_callbacks;​
 } }
-</file>+</code>
  
 Модуль экпортирует 3 новых элемента данных:​ Модуль экпортирует 3 новых элемента данных:​