net-snmp unterstützt sowohl das smux- als auch das agentx-Agentenerweiterungsprotokoll, sodass Subagenten in verschiedenen Prozessen leben können. Sie haben auch ein Tutorial zum Schreiben von AgentX-Subagenten in C.
Eine oft übersehene Lösung ist die Agent++ API, die für mich ziemlich gut aussieht und unter der Apache-Lizenz steht. Soweit ich weiß, können Sie diesen Agenten so ändern, dass er auf Ihre eigenen MIBs antwortet.
Allerdings ist es keine so schlechte Wahl, einen Subagenten zu machen. Sie starten den standardmäßigen ungepatchten snmpd (von net-snmp). Dann verbinden Sie sich mit Ihrem Subagenten, der nur die OIDs hinzufügt, die Sie hinzufügen möchten. Das net-snmp-Kit zum Codieren von AgentX-Subagenten (wie das Protokoll genannt wird) ist nicht ganz einfach zu verwenden, aber auch nicht sehr schwer. Es gibt auch ein Perl-Modul für die Entwicklung von Unteragenten:https://metacpan.org/pod/NetSNMP::agent
Der traditionelle Weg, dies unter Linux zu tun, ist die Verwendung des net-snmp-Pakets. Stellen Sie sicher, dass Sie zuerst die MIB schreiben. Alles basiert auf der MIB und Änderungen an der MIB führen normalerweise zu vielen Änderungen im Code. Das Codieren für net-snmp ist nicht schwierig und es gibt eine Menge Dokumentation, um Ihnen den Einstieg zu erleichtern, zB:http://www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials