千家信息网

zabbix中 init_selfmon_collector函数的作用是什么

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇文章给大家分享的是有关zabbix中 init_selfmon_collector函数的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一
千家信息网最后更新 2025年12月04日zabbix中 init_selfmon_collector函数的作用是什么

本篇文章给大家分享的是有关zabbix中 init_selfmon_collector函数的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

zbx_free_config();

init_database_cache();

init_configuration_cache();//将配置放到缓存

init_selfmon_collector(); //初始本身进程监控收集

void init_selfmon_collector(void)

{

const char *__function_name = "init_selfmon_collector";

size_t sz, sz_array, sz_process[ZBX_PROCESS_TYPE_COUNT], sz_total;

key_t shm_key;

char *p;

clock_t ticks;

struct tms buf;

unsigned char proc_type;

int proc_num, process_forks;

zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __function_name);

sz_total = sz = sizeof(zbx_selfmon_collector_t);

sz_total += sz_array = sizeof(zbx_stat_process_t *) * ZBX_PROCESS_TYPE_COUNT;

for (proc_type = 0; ZBX_PROCESS_TYPE_COUNT > proc_type; proc_type++)

sz_total += sz_process[proc_type] = sizeof(zbx_stat_process_t) * get_process_type_forks(proc_type);

zabbix_log(LOG_LEVEL_DEBUG, "%s() size:" ZBX_FS_SIZE_T, __function_name, (zbx_fs_size_t)sz_total);

if (-1 == (shm_key = zbx_ftok(CONFIG_FILE, ZBX_IPC_SELFMON_ID)))

{

zabbix_log(LOG_LEVEL_CRIT, "cannot create IPC key for a self-monitoring collector");

exit(EXIT_FAILURE);

}

if (FAIL == zbx_mutex_create_force(&sm_lock, ZBX_MUTEX_SELFMON))

{

zbx_error("unable to create mutex for a self-monitoring collector");

exit(EXIT_FAILURE);

}

if (-1 == (shm_id = zbx_shmget(shm_key, sz_total)))

{

zabbix_log(LOG_LEVEL_CRIT, "cannot allocate shared memory for a self-monitoring collector");

exit(EXIT_FAILURE);

}

if ((void *)(-1) == (p = shmat(shm_id, NULL, 0)))

{

zabbix_log(LOG_LEVEL_CRIT, "cannot attach shared memory for a self-monitoring collector: %s",

zbx_strerror(errno));

exit(EXIT_FAILURE);

}

collector = (zbx_selfmon_collector_t *)p; p += sz;

collector->process = (zbx_stat_process_t **)p; p += sz_array;

ticks = times(&buf);

for (proc_type = 0; ZBX_PROCESS_TYPE_COUNT > proc_type; proc_type++)

{

collector->process[proc_type] = (zbx_stat_process_t *)p; p += sz_process[proc_type];

memset(collector->process[proc_type], 0, sz_process[proc_type]);

process_forks = get_process_type_forks(proc_type);

for (proc_num = 0; proc_num < process_forks; proc_num++)

{

collector->process[proc_type][proc_num].last_ticks = ticks;

collector->process[proc_type][proc_num].last_state = ZBX_PROCESS_STATE_BUSY;

}

}

zabbix_log(LOG_LEVEL_DEBUG, "End of %s() collector:%p", __function_name, collector);

}

以上就是zabbix中 init_selfmon_collector函数的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

作用 函数 更多 知识 篇文章 实用 就是 工作会 文章 看吧 知识点 缓存 行业 详情 资讯 资讯频道 跟着 进程 部分 频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器与数据库服务器 软件开发与定制丽水 慢钱网络技术有限公司 微信服务器可以保留多久聊天记录 软件开发比例 前端后端 合一财税互联网科技有限公司 报送网络安全机制流程 打印机服务器端口 成都华为软件开发工资待遇 消防网络技术 自学网络安全知识需要什么 华为软件开发招聘流程管理 沈阳子墨网络技术有限公司 互联网金融规模数据库 独立服务器需要监控么 华北电力大学无线网络技术试卷 新龙网络安全学院灵寿 scut服务器搭建 微信登陆服务器地址 d网络安全靠大家手抄报 mysql管理的是什么数据库 对于网络安全发表自己的见解 网络安全应急指挥中心公文 如何培养青少年网络安全意识 云数据股票软件开发 迁安媒体网络技术诚信合作 魅族通话出现无法连接服务器 怎么样自学网络技术 超级新闻网络安全大会 定州市委网络安全
0