NAME
App::MonM - Simple monitoring tool
VERSION
Version 1.09
SYNOPSIS
# monm checkit
# monm report
# monm show
DESCRIPTION
Simple monitoring tool
FEATURES
Checking availability of sites (http/https)
Checking of database health (DBI)
Checking internal and external counters using system commands and tools
(command)
Supports SMTP, POP3, FTP, SSH protocols, and etc.
Interface for SMS sending
Easy installation and configuration
A small number of system dependencies
SYSTEM REQUIREMENTS
Perl v5.16+
libwww <https://github.com/libwww-perl/libwww-perl>
libnet <https://metacpan.org/dist/libnet>
Email::MIME <https://github.com/rjbs/Email-MIME>
Net-SNMP <https://net-snmp.sourceforge.io/>
To use this module in full powerful, you must have Net-SNMP installed
on your system. More specifically you need the Perl modules that come
with it.
DO NOT INSTALL SNMP or Net::SNMP from CPAN!
The SNMP module is matched to an install of net-snmp, and must be
installed from the net-snmp source tree.
The Perl module SNMP is found inside the net-snmp distribution. Go to
the perl/ directory of the distribution to install it, or run
./configure --with-perl-modules from the top directory of the
net-snmp distribution.
Net-SNMP can be found at https://net-snmp.sourceforge.io/
INSTALLATION
# sudo cpan install App::MonM
...and then:
# sudo monm configure
CONFIGURATION
By default configuration file located in /etc/monm directory
NOTE: each configuration option (directive) detailed describes in
monm.conf file, see also conf.d/checkit-foo.conf.sample file for
example of MonM checkit configuration
GENERAL DIRECTIVES
DaemonUser, DaemonGroup
DaemonUser monmu
DaemonGroup monmu
Defines a username and groupname for daemon working
Default: monmu
Expires
Expires 1d
Defines the lifetime of a record in the database. After this time,
the record from the database will be deleted automatically.
Format for time can be in any of the following forms:
20 -- in 20 seconds
180s -- in 180 seconds
2m -- in 2 minutes
12h -- in 12 hours
1d -- in 1 day
3M -- in 3 months
2y -- in 2 years
3m -- 3 minutes ago(!)
Default: 1d (1 day)
Interval
Interval 20
Defines worker interval. This interval determines how often the cycle
of checks will be started.
Default: 20
LogEnable
LogEnable on
Activate or deactivate the logging: on/off (yes/no)
Default: off
LogFile
LogFile /var/log/monm.log
Defines path to custom log file
Default: use syslog
LogIdent
LogIdent myProgramName
Defines LogIdent string. We not recommended use it
Default: none
LogLevel
LogLevel warning
Defines log level
Allowed levels: debug, info, notice, warning, error, crit, alert,
emerg, fatal, except
Default: debug
Workers
Workers 3
Defines workers number
Default: 3
USER AND GROUP DIRECTIVES
Group
The "Group" section combines several users into named groups. This
allows you to reduce the lists of recipients of notifications
<Group Foo>
Enable on
User Bob, Alice
User Ted
</Group>
Each group has a status - enabled/disabled (see Enable directive)
User
The User section allows you to define the user name and settings.
<User Bob>
Enable on
At Sun[off];Mon-Thu[08:30-12:30,13:30-18:00];Fri[10:00-20:30];Sat[off]
<Channel SendMail>
To bob@example.com
</Channel>
<Channel SMSGW>
To +1-424-254-5301
At Mon-Fri[08:30-18:30]
</Channel>
</User>
Each user has a status - enabled/disabled (see Enable directive).
User settings are disabled by default. User settings contains channel
sections, the settings of which are taken either from globally
defined channel sections or from those defines within the scope of
this user only
CHANNEL DIRECTIVES
See "CONFIGURATION DIRECTIVES" in App::MonM::Channel
CHECKIT DIRECTIVES
See "CONFIGURATION DIRECTIVES" in App::MonM::Checkit
CRONTAB
To automatically launch the program, you can using standard
scheduling tools, such as crontab
* * * * * monm checkit >/dev/null 2>>/var/log/monm-error.log
For daily reporting:
0 8 * * * monm report >/dev/null 2>>/var/log/monm-error.log
INTERNAL METHODS
again
The CTK method for classes extension. For internal use only!
See "again" in CTK
notifier
my $notifier = $app->notifier;
Returns the Notifier object
notify
$app->notify();
Sends notifications
raise
return $app->raise("Red message");
Sends message to STDERR and returns 0
store
my $store = $app->store();
Returns store object
trigger
my @errors = $app->trigger();
Runs triggers
HISTORY
See Changes file
TO DO
See TODO file
SEE ALSO
CTK, Email::MIME
AUTHOR
Serż Minus (Sergey Lepenkov) https://www.serzik.com <abalama@cpan.org>
COPYRIGHT
Copyright (C) 1998-2022 D&D Corporation. All Rights Reserved
LICENSE
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See LICENSE file and https://dev.perl.org/licenses/