Sorting Alarm Messages

[posted 2004/11/16]

[Notes issued with the release of PIKT 1.18.0pre3, which introduced the new feature:  sorting alarm messages by syslog level.]

Until now, alarm output has been ordered within alert messages according to the sequence you specify in alerts.cfg.  If, for example, your alerts.cfg has

	...

	alarms

		SysReboot
		PiktcSvcLogScan
		ProcessSystemDead
		LoadAverage
		...

then the alert message might look like

CRITICAL:
    SysReboot
        Scan the 'last' command output for signs of recent system reboots

        ...

WARNING:
    PiktcSvcLogScan
        Scan the PIKT piktc_svc.log for noteworthy entries

        ...

EMERGENCY:
    ProcessSystemDead
        Report or restart 'dead' crucial system processes

        ...

URGENT:
    LoadAverage
        Report perilously high system load averages

        ...

Beginning with pikt-1.18.0pre3, by default and regardless of how you have ordered the alarms in alerts.cfg, we sort alarm messages by syslog level--emergency (first, highest), alert (in Pikt-Speak, "urgent"), critical, error, warning, notice, info, debug (last, lowest):

EMERGENCY:
    ProcessSystemDead
        Report or restart 'dead' crucial system processes

        ...

URGENT:
    LoadAverage
        Report perilously high system load averages

        ...

CRITICAL:
    SysReboot
        Scan the 'last' command output for signs of recent system reboots

        ...

WARNING:
    PiktcSvcLogScan
        Scan the PIKT piktc_svc.log for noteworthy entries

        ...

Recall that you specify an alarm's importance using the "level" statement in a Pikt script, for example:

SysReboot

        init
                status active
                level critical
                task "Scan the 'last' command output for signs of recent system
                      reboots"
                ...

The idea here is to have more important alarm output appear toward the beginning of alerts messages, and less important alarm output appear toward the end.

If for some reason you prefer the traditional behavior where the sequence in alerts.cfg determines the order of alarm output, you may override the default by adding this new directive in PIKT.conf:

sort_messages                 NO	[or: FALSE, OFF, ...;
                                         defaults to YES, ...]

Sorting alarm messages according to syslog level was part of the original PIKT design specification, but for some reason it got overlooked and was not implemented until now.

pikt-1.18.0pre3 introduces the '#setdef <ident> = [!] [<proc>]' and (in defines.cfg) '<ident> [<proc>]' variants, for example:

#setdef paranoid = [test `hostname` = "kerberos"]

and (in defines.cfg):

dst     // TRUE if Daylight Savings Time now applies, FALSE otherwise
        // at our site, `date +%Z` returns "CDT" if DST is in effect,
        // "CST" otherwise; substitute your own time zone string as needed
        [test `date +%Z` = "CDT"]

With these new variants, you no longer have to hard-code define values beforehand (e.g., TRUE, FALSE, ...); you can now set them dynamically according to some process output (typically a test whether some expression is true or false).

As always, we invite bug reports, suggestions, and feedback.

For more examples, see Developer's Notes.

 
Home | FAQ | News | Intro | Samples | Tutorial | Reference | Software
Developer's Notes | Licensing | Authors | Pikt-Users | Pikt-Workers | Related Projects | Site Index | Privacy Policy | Contact Us
Page best viewed at 1024x768 or greater.   Page last updated 2019-01-12.   This site is PIKT® powered.
Copyright © 1998-2019 Robert Osterlund. All rights reserved.
Home FAQ News Intro Samples Tutorial Reference Software
PIKT Logo
PIKT Page Title
See how to
automatically kill
idle user sessions