ASNMTAP
view release on metacpan or search on metacpan
plugins/templates/check_template-SNMPTT.pl view on Meta::CPAN
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my $uKey = $objectPlugins->getOptionsArgv ('uKey');
my $community = $objectPlugins->getOptionsArgv ('community');
my $hostname = $objectPlugins->getOptionsArgv ('host');
my $category = 'ASNMTAP';
my $environment = $objectPlugins->getOptionsArgv ('environment');
my $debug = $objectPlugins->getOptionsValue ('debug');
my $onDemand = $objectPlugins->getOptionsValue ('onDemand');
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my $environmentText = $objectPlugins->getOptionsValue ('environment');
my ($prefix, $suffix) = split ( /(snmp|v10)_/, $community );
my $domainname = ( defined $suffix ) ? $suffix : $prefix;
if ( defined $uKey ) {
my $message = $objectPlugins->pluginValue ('message') .' for uKey '. $uKey;
$objectPlugins->pluginValue ( message => $message );
}
my $tMessage = 'SNMP Trap Translator Database';
my $tHostname = ( defined $hostname ? "and hostname='$hostname'" : '' );
$hostname = 'undef' unless ( defined $hostname ) ;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my $serverHost = "dtbs.citap.be";
my $serverPort = "3306";
my $serverUser = "asnmtap";
my $serverPass = "<password>";
my $serverDb = "snmptt";
my $serverTact = "<password>";
my $serverTarc = "snmptt_archive";
my $outOffDate = 1800; # seconds
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my ($dbh, $sth, $sthDO, $rv, $query);
$rv = 1;
$dbh = DBI->connect ( "dbi:mysql:$serverDb:$serverHost:$serverPort", "$serverUser", "$serverPass" ) or $rv = errorTrapDBI ( \$objectPlugins, 'Sorry, cannot connect to the database' );
if ( $dbh and $rv ) {
my ($id, $eventname, $eventid, $trapoid, $enterprise, $agentip, $severity, $uptime, $traptime, $formatline, $system_running_SNMPTT, $trapread);
# check the depending problems from the 'SNMP Trap Translator'
my $currentTimeslot = timelocal ( 0, (localtime)[1,2,3,4,5] );
my $tEpochtime = $currentTimeslot;
my $tSeverity = $ERRORS{OK};
$query = "SELECT SQL_NO_CACHE id, eventname, eventid, trapoid, enterprise, agentip, severity, uptime, traptime, formatline, system_running_SNMPTT, trapread FROM `$serverTact` WHERE community='$community' $tHostname and category='$category' order by...
$sth = $dbh->prepare($query) or $rv = errorTrapDBI ( \$objectPlugins, 'Cannot dbh->prepare: '. $query ) if ( $rv );
$rv = $sth->execute() or $rv = errorTrapDBI ( \$objectPlugins, 'Cannot sth->execute: '. $query ) if ( $rv );
$sth->bind_columns( \$id, \$eventname, \$eventid, \$trapoid, \$enterprise, \$agentip, \$severity, \$uptime, \$traptime, \$formatline, \$system_running_SNMPTT, \$trapread ) or $rv = errorTrapDBI ( \$objectPlugins, 'Cannot sth->bind_columns: '. $quer...
if ( $rv ) {
my ($debugfileMessage, %tableVirtualServers, %tableVirtualServersDetail, %tableVirtualServersUniqueProblemSeverity);
if ( $sth->rows() ) {
my ( $uniqueProblem, $codeBefore, $codeAfter );
$debugfileMessage = "\n<HTML><HEAD><TITLE>$tMessage \@ $APPLICATION</TITLE><style type=\"text/css\">\n.statusOdd { font-family: arial,serif; font-size: 10pt; background-color: #DBDBDB; }\n.statusEven { font-family: arial,serif; font-size: 10pt...
$debugfileMessage .= "<TABLE WIDTH=\"100%\"><TR><TD>\n<H2 style=\"margin-bottom: 0.5em; font: bold 90% verdana,arial,helvetica\">Domain: $domainname ($environmentText), BOLD: are the new traps</H2></TD></TR></TABLE>";
while( $sth->fetch() ) {
my ($_eventname, $detailLine, $uniqueTrap, $trapServerName, $trapMonitorType, $trapMBeanName, $trapMBeanType, $trapAttributeName) = ($eventname, $formatline, 'NULL', $tEpochtime);
for ( $eventname ) {
/^wlsLogNotification$/ && do {
$uniqueTrap = 'wlsLogNotification';
last; };
/^wlsServerStart$/ && do {
$_eventname = 'wlsServerShutDown or wlsServerStart';
$formatline =~ /^This trap is generated when the server (\w+) was started on /;
$trapServerName = $1 if ( defined $1 );
$uniqueTrap = 'wlsServerRestart';
last; };
/^wlsServerShutDown$/ && do {
$_eventname = 'wlsServerShutDown or wlsServerStart';
$formatline =~ /^This trap is generated when the server (\w+) has been shut down /;
$trapServerName = $1 if ( defined $1 );
$uniqueTrap = 'wlsServerRestart';
last; };
/^wlsMonitorNotification$/ && do {
my (undef, $variables, ) = split ( /: /, $formatline );
($trapServerName, $trapMonitorType, $trapMBeanName, $trapMBeanType, $trapAttributeName) = split ( /, /, $variables );
if ( $trapMonitorType =~ /^(jmx.monitor)\.(\w+)\.(\w+)$/ ) {
$uniqueTrap = "$trapMBeanName|$trapAttributeName|$trapMBeanType|$1.$2";
$detailLine = "$trapMBeanName, $trapAttributeName, $trapMBeanType, $1.$2.$3";
}
last; };
/^wlsAttributeChange$/ && do {
$uniqueTrap = 'wlsAttributeChange';
last; };
}
$uniqueProblem = "$trapServerName|$_eventname|$uniqueTrap";
$tableVirtualServersUniqueProblemSeverity { $uniqueProblem } = $severity unless ( defined $tableVirtualServersUniqueProblemSeverity { $uniqueProblem } );
if ( $debug ) {
if ( $debug >= 2 ) {
print "\nid : $id\neventname : $eventname\neventid : $eventid\ntrapoid : $trapoid\nenterprise : $enterprise\ncommunity : $community\nhostname : $hostname\nagentip : $agentip\ncategory : $category\n...
} else {
print "\n$id, $eventname, $eventid, $trapoid, $enterprise, $community, $hostname, $agentip, $category, $severity (". $tableVirtualServersUniqueProblemSeverity { $uniqueProblem } ."), $uptime, $traptime, $formatline, $system_running_SNMPTT...
}
}
if ( $severity ne 'OK' ) {
if ( defined $tableVirtualServers { $trapServerName } ) {
$tableVirtualServers { $trapServerName }++;
} else {
$tableVirtualServers { $trapServerName } = 1;
}
( run in 1.508 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )