http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475158 snmpd: keeps complaining on missing /proc/ stats inside vserver flooding syslog diff -urNp -x '*.orig' net-snmp-5.9.org/agent/mibgroup/hardware/cpu/cpu_linux.c net-snmp-5.9/agent/mibgroup/hardware/cpu/cpu_linux.c --- net-snmp-5.9.org/agent/mibgroup/hardware/cpu/cpu_linux.c 2020-08-14 23:41:47.000000000 +0200 +++ net-snmp-5.9/agent/mibgroup/hardware/cpu/cpu_linux.c 2021-02-28 14:29:33.661445570 +0100 @@ -309,7 +309,7 @@ void _cpu_load_swap_etc( char *buff, net cpu->pageOut = (unsigned long long)pout; } else { if (first) - snmp_log(LOG_ERR, "No page line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No page line in %s\n", STAT_FILE); cpu->pageIn = cpu->pageOut = 0; } b = strstr(buff, "swap "); @@ -319,7 +319,7 @@ void _cpu_load_swap_etc( char *buff, net cpu->swapOut = (unsigned long long)swpout; } else { if (first) - snmp_log(LOG_ERR, "No swap line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No swap line in %s\n", STAT_FILE); cpu->swapIn = cpu->swapOut = 0; } } diff -urNp -x '*.orig' net-snmp-5.9.org/agent/mibgroup/ucd-snmp/diskio.c net-snmp-5.9/agent/mibgroup/ucd-snmp/diskio.c --- net-snmp-5.9.org/agent/mibgroup/ucd-snmp/diskio.c 2020-08-14 23:41:47.000000000 +0200 +++ net-snmp-5.9/agent/mibgroup/ucd-snmp/diskio.c 2021-02-28 14:29:33.661445570 +0100 @@ -1367,7 +1367,8 @@ getstats(void) struct stat stbuf; FILE* parts; time_t now; - + static int first = 1; + now = time(NULL); if (cache_time + CACHE_TIMEOUT > now) { return 0; @@ -1423,7 +1424,11 @@ getstats(void) int rc; parts = fopen("/proc/partitions", "r"); if (!parts) { - snmp_log_perror("/proc/partitions"); + if (first) { + // log error only once + snmp_log_perror("/proc/partitions"); + first = 0; + } return 1; } diff -urNp -x '*.orig' net-snmp-5.9.org/agent/mibgroup/ucd-snmp/vmstat_linux.c net-snmp-5.9/agent/mibgroup/ucd-snmp/vmstat_linux.c --- net-snmp-5.9.org/agent/mibgroup/ucd-snmp/vmstat_linux.c 2020-08-14 23:41:47.000000000 +0200 +++ net-snmp-5.9/agent/mibgroup/ucd-snmp/vmstat_linux.c 2021-02-28 14:29:33.661445570 +0100 @@ -337,7 +337,7 @@ getstat(unsigned long *cuse, unsigned lo sscanf(b, "page %u %u", pin, pout); else { if (first) - snmp_log(LOG_ERR, "No page line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No page line in %s\n", STAT_FILE); *pin = *pout = 0; } b = strstr(buff, "swap "); @@ -345,7 +345,7 @@ getstat(unsigned long *cuse, unsigned lo sscanf(b, "swap %u %u", swpin, swpout); else { if (first) - snmp_log(LOG_ERR, "No swap line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No swap line in %s\n", STAT_FILE); *swpin = *swpout = 0; } }