Hi David,
As explained, in the email trail : 1. Observium executes a binary called snmpwalk for each host you check. 2. Each time, snmpwalk is run separately (fork). Consequently it is not aware of any previous DNS requests. 3. Snmpwalk uses DNS lookups to resolve the name to IP(s).
Your solution, already mentioned, is to install a local DNS caching service like : apt-get install unscd then look at /etc/nscd.conf. As a result the system will locally cache any DNS lookups. It's a caching daemon. It avoids a lot of consecutive requests by caching the 1st answer but if you update a DNS entry you may have to restart nscd (aka empty the cache) if you cannot wait for the cache to expire.
I am not sure what you mean by 'local log storage'. If it logs too much in the logs then maybe decrease the log level (if acceptable) or *drumroll* modify the code. Good luck.
!google nscd !google linux dns caching
Thomas