??????? ?????? ?????? ?????? ????? ??????? ?????? Áú»¢¶Ä²© ????????????.
?? ??? ????? ?????? ?? ????????????? ?? Áú»¢¶Ä²© ???????:
system.run[]
Áú»¢¶Ä²© ???? item.?? ?????? ??? ????, ??? ?? ??? ?????? ???? ???, ????? fork(). ?????? ???? ???? ????? ??? ??? ??? ???? ???? ???? ?????, ????? ?? ??? ????????. ?? ?? ????? ???? ???? ???, ??? ?? ????? ????? ???? ?????? ??? ????? ?????? ???????, ???? ? ???? ?? ?? ??????? ??????? ?? ???????? ????? ?? ?????? ????? ?? ??? ????? ????.
????? ???????? ??????? ?????? ????? ????? ?????? ???? Áú»¢¶Ä²©, ??? ?-proxy ???? ?????? ?? ????????.
????? ???? ?????? ??? ???? ?????? ?????? ?????? ?? Áú»¢¶Ä²© daemon ????? ??????. ??????? ????? ????? ???????? ???????, ?? ?????? Áú»¢¶Ä²© ???? ????? ?????? ??? ??? ????? ???? ???? ?????? ?????? ??.
???????? ??????? ?????? ?? ???? ???????. ??????? ?????? ? ?????? ????? ?? ?????? ?????? ????, ??? ???? ??? ????? ???? ??? ?????? ????, ?????? ????? ?? Áú»¢¶Ä²© ???????. ?? ???? ??????? ??? ????? ????? ???? ???????????? ???? ??? ???? ???? ???? ????? ????? ?? Áú»¢¶Ä²©.
????? ????? ?? ??????? ????? ??????? ?????? ?-GPL ?????? (??????? ?????? ?? Áú»¢¶Ä²© ???? ???? ???????? ?- Áú»¢¶Ä²© ??????; ???? ?? ??? Áú»¢¶Ä²© ????? ??? ?????? GPL). ?????? ??????? ???? ?????? ?? ??? Áú»¢¶Ä²©.
?????? API ?? ????? ?????? ????? Áú»¢¶Ä²© LTS ??? (????? ???? ?????) ?????. ??????? ?? Áú»¢¶Ä²© API ???? ?????? (????? ?? ???? ????? ????????? ??????? ?? Áú»¢¶Ä²© ??????, ??? ?? ??? ????? ???????? ???? ?????).
?? ??? ??????? ?????? ????? ?????? Áú»¢¶Ä²©, ?? ???? ????? ?????? ???? ????????. ???? ?? ???? ???????? ?-API ?? ????? Áú»¢¶Ä²©, ??? ??? ??? ??? ???? ? ???? ?????? ?? ???????????.
???????? ????? ?????? ??? zbx_module_api_version():
??????? ?? ????? ?????? ?? ???? ?-API ??????? ?? ??? ????? ?? ???? ??????? ????? ???? ?? ????? ?????? ?????? ???? API ????? ?? ??? Áú»¢¶Ä²©. ???? ?? ????? API ????? ?? ??? Áú»¢¶Ä²© ??? ZBX_MODULE_API_VERSION. ?? ???????? ??? ????? ?????? ?? ?? ???????. ???? ??? ZBX_MODULE_API_VERSION_ONE ????? ??? ????? ?????? ??? ???? ?-ZBX_MODULE_API_VERSION ?????? ?????? ????, ?? ?????? ?? ???? ?????.
????????? ???????????? ?? zbx_module_init(), zbx_module_item_list(), zbx_module_item_timeout(), zbx_module_history_write_cbs() ?-zbx_module_uninit():
??????? ?? ????? ???? ?? ?????? ????? ???? ?????? (?? ????). ?? ?? ?????, ?? ???? ?????? ?? ZBX_MODULE_OK. ???? ?? ???? ?????? ?? ZBX_MODULE_FAIL. ????? ?????? Áú»¢¶Ä²© ?? ????????.
??????? ?? ????? ?????? ????? ?? ?????? ??????? ?? ??? ??????. ?? ???? ????? ????? ZBX_METRIC, ???? ????? ???? ??????. ?????? ??????? ?? ??? ???? ZBX_METRIC ?? ??? "????" ?? NULL.
?? ?????? ????? ?? zbx_module_item_list() ?? ???????? ??? ??? ?????? ?? ??? Áú»¢¶Ä²© ??? ????? ?? ?????? ???? ????? ?????? Áú»¢¶Ä²© ???? ??????? ??????? ???????? ?? ??? ?????? ?????? ????? ??. ???, ?????? "??? ???" ??? ??????.
??????? ?? ????? ?????? ???????? ??????? ????? ????? ????? ??? Áú»¢¶Ä²© ????????? ????? ?? ???? ?????? ?????. ???????? ??????? ?????? ??????? ????? ????? ZBX_HISTORY_WRITE_CBS, ????? ?????? ????? NULL ?? ?????? ???? ??????? ????????? ?? ??? ?????.
??????? ?? ????? ???? ?? ????? ?????? ????? (?? ????) ??? ????? ?????? ??????, ????? ????? ????? ???'.
?? ????????? ?????? ??? ??? ?????? ?? Áú»¢¶Ä²© ???? ?????? ????, ???? zbx_module_uninit(), ????? ??? ??? ?????? ?? Áú»¢¶Ä²© ???? ?????? ????.
?? ???? ????? ????? ZBX_METRIC:
???, ???? ??? ???? ????? (????, "dummy.random"), ????? ??? ?? CF_HAVEPARAMS ?? 0 (???? ?? ????? ???? ??????? ?? ??), ??????? ??? ???????? C ??????? ?? ???? (??????, "zbx_module_dummy_random"), ?-test_param ??? ????? ??????? ?????? ???? ???? Áú»¢¶Ä²© ????? ?? ?-"-p" ??? (??????, "1,1000", ???? ????? NULL). ????? ?????? ????? ??????? ?? ???:
?????? ZBX_METRIC ??????[] =
{
{ "dummy.random", CF_HAVEPARAMS, zbx_module_dummy_random, "1,1000" },
{ ??? }
}
?? ??????? ??????? ???? ????? ???? ??? ??????? ???????, ?????? ???? AGENT_REQUEST ????? ?? ???? AGENT_RESULT:
int zbx_module_dummy_random(AGENT_REQUEST *request, AGENT_RESULT *result)
{
...
SET_UI64_RESULT(result, from + rand() % (to - from + 1));
???? SYSINFO_RET_OK;
}
???????? ??? ?????? ?????? ?? SYSINFO_RET_OK, ?? ??? ????? ??? ???? ??????. ????, ?? ?????? ?????? ?? SYSINFO_RET_FAIL. ??? ????? "???" ?????? ???? ?????? ???? ????? ???? ?-AGENT_REQUEST ????? ?????? ???? ????_RESULT.
::: ???? ?? ???? ????? ???????? ??????? ????? ???? ???? ??? ?? ??? ?????? Áú»¢¶Ä²© ??? Áú»¢¶Ä²© 4.0.0. :::
????? ???? ????? ???????? ?????? ????? ???????? ??? ???: ????? (??), ????? (?? ????), ??, ???? ?????:
???? typedef
{
void (*history_float_cb)(const ZBX_HISTORY_FLOAT *history, int history_num);
void (*history_integer_cb)(const ZBX_HISTORY_INTEGER *history, int history_num);
void (*history_string_cb)(const ZBX_HISTORY_STRING *history, int history_num);
void (*history_text_cb)(const ZBX_HISTORY_TEXT *history, int history_num);
void (*history_log_cb)(const ZBX_HISTORY_LOG *history, int history_num);
}
ZBX_HISTORY_WRITE_CBS;
?? ??? ??? ???? ???? ???? "????????" ?? ????? "????????_num" ? ???????. ????? ???? ????? ????????? ??? ?????, "????????" ??? ???? ?? ?????? ?????, ??????:
???? typedef
{
zbx_uint64_t itemid;
???? int;
int ns;
??? ????;
}
ZBX_HISTORY_FLOAT;
???? typedef
{
zbx_uint64_t itemid;
???? int;
int ns;
??? zbx_uint64_t;
}
ZBX_HISTORY_INTEGER;
???? typedef
{
zbx_uint64_t itemid;
???? int;
int ns;
const char *???;
}
ZBX_HISTORY_STRING;
???? typedef
{
zbx_uint64_t itemid;
???? int;
int ns;
const char *???;
}
ZBX_HISTORY_TEXT;
???? typedef
{
zbx_uint64_t itemid;
???? int;
int ns;
const char *???;
const char *????;
????? ??? int;
int logeventid;
????? ????;
}
ZBX_HISTORY_LOG;
????????? ?????? ????? ?? ?????? ??????? ????????? ?? ??? Áú»¢¶Ä²© ?- ??? ???? ?????? ????????? ???? ????? ??????? ???? ??????? ?? Áú»¢¶Ä²© ????? ?-value cache.
:::???? ???? ????? ?? ????? ?????? ?????? ????? ?????????, ????? ??????? ????? ????? ??? ???? ?? ????? ?? ?????? ???? ?? ???? ??????, ??? ????? ?????? ????? ??? ?????? ???? Áú»¢¶Ä²© ?????? ?????. :::
??????? ?????? ??? ??????? ???? ?? ????? ?? Áú»¢¶Ä²©, ?????? ??-API ?? ?????? ???? ????? ?????? ??????? ???????? ??????? Áú»¢¶Ä²©.
?????? ?????? ????? ???? ??????? ??????? ?????? ??? include/module.h, ??? ????? ?? ???? ??????? ????. ?????? ????? ?????? ????? ?? ???? include/module.h ??? ????? ????? ?? stdlib.h ? stdint.h.
?? ???? ?? ??????, ??? ???? ???? ?????? ????. ?????? ???? ????? stdlib.h, stdint.h ? module.h, ??????? ?-build ?????? ????? ??????? ???? ????? ?????. ??? ????? "???" ?????? ???? ??????.
????? ??????? ????? ??? include/log.h, ??????? ???????? zabbix_log(), ????? ?????? ?? ?????? ?????? ????? ?????.
???? Áú»¢¶Ä²©, ??? ??????? ?????? ?????? ??????? ??????? ???? ???????:
??????, ??? ?????? ?? ???? Áú»¢¶Ä²© ???? ?????? ?? ?????? ????? ???????:
LoadModulePath=/usr/local/lib/zabbix/agent/
LoadModule=mariadb.so
LoadModule=apache.so
LoadModule=kernel.so
LoadModule=/usr/local/lib/zabbix/dummy.so
?? ????? ????? ??? ???? ?? ?-mariadb.so, apache.so ?-kernel.so ??????? ???????? /usr/local/lib/zabbix/agent ???? dummy.so ????? ?-/usr/local/lib/zabbix. ?? ????? ?? ????? ??? ???, ????? ?? ?????? ?????? ?? ?? ?????? ?????? ???? ? ????? Áú»¢¶Ä²©.
??????? ??????? ?????? ?????? ?? ??? ???? Áú»¢¶Ä²©, ??? ???????. ???, ??? ????? ????? ???? ?? Áú»¢¶Ä²© ???? ???? ?????? ???? ????. ?? ?????? ???? ?????, ?? ??? ????? ???? ????? "???? Áú»¢¶Ä²©" ?? "???? Áú»¢¶Ä²© (????)". ?? ?????? ??? ???? ???? ?? ?-proxy, ?? ??? ????? ???? ????? "???? ?????".
????? ???????? ??? ?????? Áú»¢¶Ä²© ???? ???? ??? ???? ????????. ?? ?????? ???? ?????? ?? ??? ??? ? ???? ??????? zbx_module_history_write_cbs() ??????? ????? ???????? ??????? ????? ??? ????? NULL ??? ????? ????????? ???? ????? ????????.
??????? ??????? ?????? ?????? ?? ??? ???? Áú»¢¶Ä²©, ??? ???????. ???, ??? ????? ????? ???? ?? Áú»¢¶Ä²© ???? ???? ?????? ???? ????. ?? ?????? ???? ?????, ?? ??? ????? ???? ????? "???? Áú»¢¶Ä²©" ?? "???? Áú»¢¶Ä²© (????)". ?? ?????? ??? ???? ???? ?? ?-proxy, ?? ??? ????? ???? ????? "???? ?????".
????? ???????? ??? ?????? Áú»¢¶Ä²© ???? ???? ??? ???? ????????. ?? ?????? ???? ?????? ?? ??? ??? ? ???? ??????? zbx_module_history_write_cbs() ??????? ????? ???????? ??????? ????? ??? ????? NULL ??? ????? ????????? ???? ????? ????????.
????? ???????? ??????? ?????? ?????? ???? ???????? Unix ????. ?? ???? ??? ?? ???? ???? ????? Windows.
?????? ??????? ????? ?????? ????? ????? ????? ?????? ?????? ??????? ?-zabbix_agentd.conf. ?? ?? ???? ????. ?? ??? ???? ?? ?????? ??? ??? ?????? ???? ??????? ?? ????? ???? ???? ????? ????? ????? ?? ???? ????? ?????? ??????.