net-snmp prend en charge les protocoles d'extension d'agent smux et agentx, permettant aux sous-agents de vivre dans différents processus. Ils ont également un tutoriel sur l'écriture de sous-agents AgentX en C.
Une solution souvent négligée est l'API Agent++, qui m'a l'air plutôt sympa et qui est sous licence Apache. Autant que je sache, vous pouvez modifier cet agent pour répondre à vos propres MIB.
Cela dit, faire un sous-agent n'est pas un si mauvais choix. Vous démarrez le snmpd standard non corrigé (depuis net-snmp). Ensuite, vous vous y connectez avec votre sous-agent, qui n'ajoute que les OID que vous souhaitez qu'il ajoute. Le kit net-snmp pour coder les sous-agents AgentX (comme le protocole est appelé) n'est pas très simple à utiliser, mais pas très difficile non plus. Il existe également un module Perl pour le développement de sous-agents :https://metacpan.org/pod/NetSNMP::agent
La manière traditionnelle de le faire sous Linux est d'utiliser le paquet net-snmp. Assurez-vous d'écrire d'abord la MIB. Tout est basé sur la MIB et les modifications apportées à la MIB entraînent généralement de nombreuses modifications du code. Le codage pour net-snmp n'est pas difficile et il y a beaucoup de documentation pour vous aider à démarrer, par exemple :http://www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials