通过API进行snmp配置

news/2024/11/16 21:51:51/

SNMP 是专门用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。

通过API进行snmp配置

#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <stdio.h>
#include <string.h>// 自定义MIB节点
#define SERVICE_STATUS_OID ".1.3.6.1.4.1.12345.1.1"
#define SERVICE_STATUS_DESC "Service Status"// 全局变量
int service_status = 0; // 0 = Stopped, 1 = Running// 处理service_status节点的请求
int handle_service_status(netsnmp_mib_handler *handler,netsnmp_handler_registration *reginfo,netsnmp_agent_request_info *reqinfo,netsnmp_request_info *requests)
{switch (reqinfo->mode) {case MODE_GET:snmp_set_var_typed_integer(requests->requestvb, ASN_INTEGER, service_status);break;case MODE_SET_RESERVE1:if (*(requests->requestvb->val.integer) != 0 && *(requests->requestvb->val.integer) != 1) {snmp_set_var_typed_value(requests->requestvb, ASN_NULL, (const u_char *)&service_status, sizeof(service_status));return SNMP_ERR_WRONGVALUE;}break;case MODE_SET_COMMIT:service_status = *(requests->requestvb->val.integer);break;default:snmp_log(LOG_WARNING, "Unsupported mode for service_status\n");return SNMP_ERR_GENERR;}return SNMP_ERR_NOERROR;
}// 注册MIB节点
void register_service_mib()
{oid service_status_oid[] = {1, 3, 6, 1, 4, 1, 12345, 1, 1};netsnmp_register_scalar(netsnmp_create_handler_registration("service_status",handle_service_status,service_status_oid,OID_LENGTH(service_status_oid),HANDLER_CAN_RWRITE));
}// 启动SNMP代理
void start_snmp_agent()
{init_agent("service_agent");init_snmp("service_agent");// 注册自定义MIB节点register_service_mib();// 进入主循环agent_check_and_process(1);
}
int main(int argc, char **argv)
{// 初始化SNMP子系统netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_NO_ROOT_ACCESS, 1);// 启动SNMP代理start_snmp_agent();return 0;
}

http://www.ppmy.cn/news/977686.html

相关文章

会员系统怎么搭建,适合门店的会员系统有哪些?

会员系统是一种为企业和门店提供会员管理和服务的工具。会员系统可以通过提供专属优惠、积分奖励、个性化推荐等方式&#xff0c;激励顾客成为会员并保持长期关系。 我们在自己搭建或选择会员系统时&#xff0c;需要考虑门店的特定需求以及系统的功能、可靠性、易用性和成本等因…

机器人导航(3):导航相关消息

文章目录 地图nav_msgs/MapMetaDatanav_msgs/OccupancyGrid 里程计坐标变换定位目标点与路径规划激光雷达相机深度图像转激光数据depthimage_to_laserscan简介depthimage_to_laserscan节点说明depthimage_to_laserscan使用 地图 地图相关的消息主要有两个: nav_msgs/MapMetaD…

MySQL基础(二)SQL语句

目录 前言 一、SQL语句类型 二、数据库操作 查看 创建 进入 删除 更改 三、数据表操作 &#xff08;一&#xff09;、数据类型 1.数值类型 2.时间\日期类型 3.字符串类型 4.二进制类型 &#xff08;二&#xff09;、查看 1.查看表内的数据 2.查看表格的属性 &…

java 相关问题集锦, 持续更新

一.当HashMap中存在大量哈希冲突时&#xff0c;可以采取以下几种方法来处理&#xff1a; 调整HashMap的初始容量和负载因子&#xff1a;HashMap的初始容量和负载因子是影响哈希冲突的重要因素。初始容量是指HashMap在创建时的容量大小&#xff0c;负载因子是指HashMap在达到容量…

软件工程学术顶会——ICSE 2023 议题(网络安全方向)清单与摘要

按语&#xff1a;IEEE/ACM ICSE全称International Conference on Software Engineering&#xff0c;是软件工程领域公认的旗舰学术会议&#xff0c;中国计算机学会推荐的A类国际学术会议&#xff0c;Core Conference Ranking A*类会议&#xff0c;H5指数74&#xff0c;Impact s…

入门前端监控

背景 前端监控是指通过一系列手段对Web页面或应用程序进行实时监控和数据采集&#xff0c;以了解页面或应用程序的性能状况、用户行为等等&#xff0c;并及时发现和解决潜在的问题。一个完整的前端监控平台可以包括&#xff1a;数据收集与上报、数据整理与存储、数据展示这里仅…

Android onTouchEvent方法不触发ACTION_UP的解决方法

Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN://触摸、按下setImageResource(R.mipmap.ic_music);break;case MotionEvent.ACTION_UP://抬起setImageResource(R.mipmap.ic_launcher);break;}return sup…

typescript前三章编译器,类型系统,类型

typescript编程指南 资料参考来源 O’reilly(Typescript编程Programming Typescript)BorisCherny著 安道 译 第一章 导言 当我使用JavaScript语言时候&#xff0c;检查异常&#xff0c;往往要等到代码运行的时候&#xff0c;才能检查出代码问题所在&#xff0c;这使得我们需要…