Yathrib & all,

thanks for your hints, but I guess usind AlarmNotifier is similar to my 
dirty cronjob  that seeks for models with Condition = red - it's hard to 
stay synchronized in a Fault Tolerant environment. :-(

Freundliche Grüße / Best regards

Christian Fieres

Mainova AG
Planung und Betrieb Infrastruktur (M3-ON2)
Service Operation Center
Solmsstraße 38
60623 Frankfurt

Telefon / Phone (069) 2 13-2 36 17
Mobil / Mobile (0170) 5 60 15 63
Telefax / Facsimile (069) 2 13-9 62 36 17
E-Mail [EMAIL PROTECTED]


Mainova Aktiengesellschaft - Solmsstraße 38 - D-60623 Frankfurt am Main
Vorsitzende des Aufsichtsrates: Oberbürgermeisterin Dr. h. c. Petra Roth - 
Vorstand: Dr. Constantin Alsheimer, Lothar Herbst, Joachim Zientek 
Sitz der Aktiengesellschaft: Frankfurt am Main - Amtsgericht Frankfurt HRB 
7173 - USt-ID-Nr. DE 114184034 

----- Weitergeleitet von Christian Fieres/M3-ON/MAINOVA/DE am 14.10.2008 
07:51 -----

yathrib <[EMAIL PROTECTED]> 
13.10.2008 15:53

An
[EMAIL PROTECTED]
Kopie
spectrum <[email protected]>, [EMAIL PROTECTED]
Thema
Re: [spectrum] Outage Report(Virengetestet -> ok) 






On Mon, Oct 13, 2008 at 02:45:18PM +0200, [EMAIL PROTECTED] wrote:
> I need a CSV report (generated daily to import into Excel) that says 
which 
> models were alarmed critical from which time on for how long during 
> yesterday (i.e. an outage report which was AFAIR part of the old Report 
> Generator). As easy as it seems, I have come along a few problems and 
need 
> a little push into the right direction.

 Consider using AlarmNotifier.

 Below is some sample code for logging every event, along with severity, 
time,
model, etc.  Feedback appreciated.

 alarmrc:

    VNM_MAIL_TIMEOUT=600000
    VNM_CONNECT_TIME_LIMIT=60000
    KEEP_ALIVE_TIMEOUT=30000
    KEEP_ALIVE_INTERVAL=60000
    GET_GRAY_INITIAL_ALARMS=false
    GET_EXISTING_ALARMS=false
    UPDATE_EXISTING_ALARMS=true
    USE_DEVICE_NETWORK_ADDRESS=true
    SEND_EVENT_UPDATES=true
    USE_NEW_INTERFACE=true
    EXTRA_ATTRS_AS_ENVVARS=
    EXTRA_ATTRS_AS_ARGS=0x0023000e,0x11f51,0x12022
    UPDATE_ATTRS=0x11f4d,0x12022
    GET_PROBABLE_CAUSES=true
    GET_EVENTS=true
    SHOW_ALL_EVENTS=true
    MSG_TIMESTAMP_FORMAT=%X %x
    LANDSCAPE=1600
    SEND_ALARM_DELAY=1000
    SET_SCRIPT=/tmp/logger/alarm_logger_set.pl
    CLEAR_SCRIPT=/tmp/logger/alarm_logger_clear.pl
    UPDATE_SCRIPT=/tmp/logger/alarm_logger_update.pl

 alarm_logger.pl:

    #!/usr/bin/env perl
    # modify as required, but keep this code light as it's executed for 
every
    # alarm action (set, clear, update).
 
    use warnings;
    use strict;
    my ($action) = ( $0 =~ /alarm_logger_(\w+)\.pl/ );
 
    $action = uc $action;
 
    my @default_args = (
        'Date',             # 08/22/2008
        'Time',             # 13:50:01
        'Model_Type',       # Pingable
        'Model_Name',       # router1
        'Alarm_ID',         # 26671
        #'Global_Alarm_ID',
        'Severity',         # CRITICAL
        'Cause',            # 10009
        'Repair_Person',    #
        'Server',           # server1
        'Landscape',        # 0x9000000
        'Model_Handle',     # 0x9000986
        'Model_Type_Handle',# 0x10290
        'IP_Address',       # 192.168.37.132
        'Security_String',  #
        'Alarm_State',      # NEW
        'Acknowledged',     # FALSE
        'Clearable',        # FALSE
 
        'Dummy',            # FALSE
        'Dummy',            #
        'Dummy',            # 0
        'Dummy',            #
        'Dummy',            # 23150
        'Dummy',            #
 
        'Device_Type',      # IP Device
    );
 
    my @extra_args = qw(
        Cleared_By_User_Name
        Trouble_Ticket_ID
    );
 
    my @args  = (@default_args, @extra_args);
 
    if ( @args != @ARGV ) {
        die "Arglist length mismatch detected: @ARGV\n";
    }
    my %alarm_details;
    @[EMAIL PROTECTED]@ARGV;
 
    $alarm_details{Action}=$action;
    $alarm_details{Prob_Cause}=$ENV{PCAUSE};
    $alarm_details{Prob_Cause}=~s/\n.*//xms;
    $alarm_details{Event_Msg}=$ENV{EVENTMSG};
 
    #use Data::Dumper;
    #warn Dumper \%alarm_details;

    # modify to output fields of interest
    print "LOG:",
                   join(",",@alarm_details{qw(Server Model_Name Date Time 
Action
               Severity Alarm_ID Prob_Cause Acknowledged Trouble_Ticket_ID
               Cleared_By_User_Name)}),
           "\n";

 Running:

    mkdir /tmp/logger
    cp alarm_logger.pl /tmp/logger
    cp alarmrc /tmp/logger
    cd /tmp/logger
    ln -s alarm_logger.pl alarm_logger_set.pl
    ln -s alarm_logger.pl alarm_logger_clear.pl
    ln -s alarm_logger.pl alarm_logger_update.pl
    $SPECROOT/Notifier/AlarmNotifier -r /tmp/logger/alarmrc > 
/tmp/logger/output.log

 Output looks like:

    LOG:server1,router1,10/13/2008,09:45:08,SET,CRITICAL,223507,DEVICE HAS 
STOPPED RESPONDING TO POLLS,FALSE,,N/A

-- 
yathrib


---
To unsubscribe from spectrum, send email to [EMAIL PROTECTED] with the body: 
unsubscribe spectrum [EMAIL PROTECTED]

Reply via email to