net-snmp es compatible con los protocolos de extensión de agente smux y agentx, lo que permite que los subagentes vivan en diferentes procesos. También tienen un tutorial sobre cómo escribir subagentes de AgentX en C.
Una solución que a menudo se pasa por alto es la API de Agent ++, que para mí se ve bastante bien y está bajo la licencia de Apache. Según tengo entendido, puede modificar ese agente para que responda a sus propios MIB.
Dicho esto, hacer un subagente no es una mala elección. Inicia el snmpd estándar sin parches (desde net-snmp). Luego se conecta a él con su subagente, que solo agrega los OID que desea que agregue. El kit net-snmp para codificar los subagentes AgentX (como se llama el protocolo) no es muy fácil de usar, pero tampoco es muy difícil. También hay un módulo Perl para el desarrollo de subagentes:https://metacpan.org/pod/NetSNMP::agent
La forma tradicional de hacer esto en Linux es usar el paquete net-snmp. Asegúrese de escribir el MIB primero. Todo se basa en la MIB y los cambios en la MIB generalmente generan muchos cambios en el código. La codificación para net-snmp no es difícil y hay mucha documentación para comenzar, por ejemplo:http://www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials