diff --git a/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt b/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt index be01dcc..5cef6fc 100644 --- a/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt +++ b/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt @@ -19,7 +19,7 @@ deHottisSmmapdMIB MODULE-IDENTITY " ::= { deHottis 2 } -dhsMIBObjects OBJECT IDENTIFIER ::= { deHottisSmmapdMIB 1 } +dhsSmmapdStats OBJECT IDENTIFIER ::= { deHottisSmmapdMIB 1 } dhsNumber1 OBJECT-TYPE SYNTAX Counter32 @@ -27,7 +27,7 @@ dhsNumber1 OBJECT-TYPE STATUS current DESCRIPTION "number1" - ::= { dhsMIBObjects 1 } + ::= { dhsSmmapdStats 1 } DhsServerStat ::= @@ -53,7 +53,7 @@ dhsServerStat OBJECT-TYPE STATUS current DESCRIPTION "Statistics of the server" - ::= { dhsMIBObjects 2 } + ::= { dhsSmmapdStats 2 } dhsAccepted OBJECT-TYPE @@ -161,6 +161,127 @@ dhsNetStringFailure OBJECT-TYPE ::= { dhsServerStat 13 } +DhsVerifierStat ::= + SEQUENCE { + dhsVCacheEntries Integer32, + dhsVRunningWorkerThreads Integer32, + dhsVWorkerThreads Counter32, + dhsVFailedWorkerThreads Counter32, + dhsVTimedOutWorkerThreads Counter32, + dhsVRunningCheckerThreads Integer32, + dhsVCheckerThreads Counter32, + dhsVFailedCheckerThreads Counter32, + dhsVAnsweredFromCache Counter32, + dhsVReturnedOK Counter32, + dhsVReturnedNOK Counter32, + dhsVReturnedTNOK Counter32 + } + +dhsVerifierStat OBJECT-TYPE + SYNTAX DhsVerifierStat + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Statistics of the verifier" + ::= { dhsSmmapdStats 3 } + + +dhsVCacheEntries OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Entries in verifier cache" + ::= { dhsVerifierStat 1 } + +dhsVRunningWorkerThreads OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Running verifier worker threads" + ::= { dhsVerifierStat 2 } + +dhsVWorkerThreads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "verifier worker threads" + ::= { dhsVerifierStat 3 } + +dhsVFailedWorkerThreads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "failed to start verifier worker threads" + ::= { dhsVerifierStat 4 } + +dhsVTimedOutWorkerThreads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "timed out verifier worker threads" + ::= { dhsVerifierStat 5 } + +dhsVRunningCheckerThreads OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Running verifier checker threads" + ::= { dhsVerifierStat 6 } + +dhsVCheckerThreads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "verifier checker threads" + ::= { dhsVerifierStat 7 } + +dhsVFailedCheckerThreads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "failed to start verifier checker threads" + ::= { dhsVerifierStat 8 } + +dhsVAnsweredFromCache OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "answers taken directly from cache" + ::= { dhsVerifierStat 9 } + +dhsVReturnedOK OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "verifier returned OK" + ::= { dhsVerifierStat 10 } + +dhsVReturnedNOK OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "verifier returned NOK" + ::= { dhsVerifierStat 11 } + +dhsVReturnedTNOK OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "verifier returned TNOK" + ::= { dhsVerifierStat 12 } + END diff --git a/smmapdfw/smmapd/smmapd.ini b/smmapdfw/smmapd/smmapd.ini index 7cd015f..fad04ca 100644 --- a/smmapdfw/smmapd/smmapd.ini +++ b/smmapdfw/smmapd/smmapd.ini @@ -6,7 +6,7 @@ port = 8887 ; plugin_dir = /home/who/Sources/sf/smmapdfw ; plugins = test_worker1 test_worker2 verifier cyruscheck lua_worker plugins = verifier -enable_stats = 1 +enable_stats = 0 enable_snmp = 1 [snmp] diff --git a/smmapdfw/smmapd/snmp_subagent.c b/smmapdfw/smmapd/snmp_subagent.c index fcc3229..fc21c68 100644 --- a/smmapdfw/smmapd/snmp_subagent.c +++ b/smmapdfw/smmapd/snmp_subagent.c @@ -1,3 +1,25 @@ + +/* + Copyright (C) 2004, Wolfgang Hottgenroth + + This file is part of smmapdfw. + + smmapdfw is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + smmapdfw is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with smmapdfw. If not, write to the Free Software Foundation, 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + + #include "config.h" #if ENABLE_NETSNMP==1 @@ -5,6 +27,8 @@ #include #include +#include + #include "stats.h" #include "smmapd.h" @@ -51,13 +75,11 @@ handle_it(netsnmp_mib_handler *handler, u_char type) { int i, cnt, value; - printf("*** handler: %s\n", reginfo->handlerName); for (i=0; ihandlerName, var_cnt_map[i].var)) { cnt = var_cnt_map[i].cnt; break; } - printf("*** cnt: %d\n", cnt); switch(reqinfo->mode) { case MODE_GET: @@ -99,7 +121,7 @@ void map_var_cnt(int cnt, char* var) { num_var_cnt_map++; } -#define NETSNMP_REGISTER_SCALAR(A, B, C) netsnmp_register_scalar(netsnmp_create_handler_registration(#A, B, A##_oid, OID_LENGTH(A##_oid), HANDLER_CAN_RONLY)); map_var_cnt(C, #A); printf("registered: %s\n", #A) +#define NETSNMP_REGISTER_SCALAR(A, B, C) netsnmp_register_scalar(netsnmp_create_handler_registration(#A, B, A##_oid, OID_LENGTH(A##_oid), HANDLER_CAN_RONLY)); map_var_cnt(C, #A) void init_dhsMIBObjects(void) @@ -119,6 +141,19 @@ init_dhsMIBObjects(void) static oid dhsTimeoutFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,2,12 }; static oid dhsNetStringFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,2,13 }; + static oid dhsVCacheEntries_oid[] = { 1,3,6,1,4,1,9676,2,1,3,1 }; + static oid dhsVRunningWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,2 }; + static oid dhsVWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,3 }; + static oid dhsVFailedWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,4 }; + static oid dhsVTimedOutWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,5 }; + static oid dhsVRunningCheckerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,6 }; + static oid dhsVCheckerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,7 }; + static oid dhsVFailedCheckerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,8 }; + static oid dhsVAnsweredFromCache_oid[] = { 1,3,6,1,4,1,9676,2,1,3,9 }; + static oid dhsVReturnedOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,10 }; + static oid dhsVReturnedNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,11 }; + static oid dhsVReturnedTNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,12 }; + DEBUGMSGTL(("dhsMIBObjects", "Initializing\n")); NETSNMP_REGISTER_SCALAR(dhsNumber1, handle_number1, 0); @@ -136,10 +171,24 @@ init_dhsMIBObjects(void) NETSNMP_REGISTER_SCALAR(dhsTimeoutFailure, handle_counter32, SMM_TIMEOUT_NOK+STAT_CNT_OFFSET); NETSNMP_REGISTER_SCALAR(dhsNetStringFailure, handle_counter32, SMM_NETSTRING_UNPARSABLE+STAT_CNT_OFFSET); + NETSNMP_REGISTER_SCALAR(dhsVCacheEntries, handle_integer32, STAT_CNT_VERIFIER_CACHE); + NETSNMP_REGISTER_SCALAR(dhsVRunningWorkerThreads, handle_integer32, STAT_CNT_VERIFIER_WORKER_R_THREADS); + NETSNMP_REGISTER_SCALAR(dhsVWorkerThreads, handle_counter32, STAT_CNT_VERIFIER_WORKER_THREADS); + NETSNMP_REGISTER_SCALAR(dhsVFailedWorkerThreads, handle_counter32, STAT_CNT_VERIFIER_WORKER_THREADS_FAILED); + NETSNMP_REGISTER_SCALAR(dhsVTimedOutWorkerThreads, handle_counter32, STAT_CNT_VERIFIER_WORKER_THREADS_TIMEOUT); + NETSNMP_REGISTER_SCALAR(dhsVRunningCheckerThreads, handle_integer32, STAT_CNT_VERIFIER_CHECKER_R_THREADS); + NETSNMP_REGISTER_SCALAR(dhsVCheckerThreads, handle_counter32, STAT_CNT_VERIFIER_CHECKER_THREADS); + NETSNMP_REGISTER_SCALAR(dhsVFailedCheckerThreads, handle_counter32, STAT_CNT_VERIFIER_CHECKER_THREADS_FAILED); + NETSNMP_REGISTER_SCALAR(dhsVAnsweredFromCache, handle_counter32, STAT_CNT_VERIFIER_ANSWERED_FROM_CACHE); + NETSNMP_REGISTER_SCALAR(dhsVReturnedOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_OK); + NETSNMP_REGISTER_SCALAR(dhsVReturnedNOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_NOK); + NETSNMP_REGISTER_SCALAR(dhsVReturnedTNOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_TNOK); + + } void snmp_subagent_main () { - snmp_enable_stderrlog(); + snmp_disable_log(); netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1); init_agent("smmapd_subagent"); init_dhsMIBObjects();