Zabbix後端源碼解析一

Zabbix後端源碼解析一

src\zabbix_agent\zabbix_agentd.c為Zabbix客戶端入口int main(int argc, char **argv)

參數解析 parse_commandline(argc, argv, &t);

針對不同參數,將task賦值t->task = ZBX_TASK_PRINT_SUPPORTED;

返回main函數,針對task進行相關操作switch (t.task)

其中case ZBX_TASK_PRINT_SUPPORTED:

  -p --print                      Print known items and exit

通過test_parameters();打印items

void test_parameters()位於src\libs\zbxsysinfo\sysinfo.c

test_parameters()函數中通過test_parameter(key);commands[i].key進行打印

static ZBX_METRIC *commands = NULL;通過void init_metrics()進行初始化

其中例如parameters_agent[i].key,通過add_metric(&meters_agent[i], error, sizeof(error))添加parameters_agent item

parameters_agent 位於src\libs\zbxsysinfo\agent\agent.c中

ZBX_METRIC	parameters_agent[] =
/*	KEY			FLAG		FUNCTION	TEST PARAMETERS */
{
	{"agent.hostname",	0,		AGENT_HOSTNAME,	NULL},
	{"agent.ping",		0,		AGENT_PING, 	NULL},
	{"agent.version",	0,		AGENT_VERSION,	NULL},
	{NULL}
};