You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

400 lines
7.8 KiB
ReStructuredText

.. highlight:: rst
.. _scm:
###
scm
###
**Process monitor.**
Description
===========
scm monitors client activity. scm connects to a certain master and periodically
processes the status messages sent by the clients.
Each client status if forwarded to the plugins loaded by scm. By default
the :ref:`mncursesplugin <scm_ncurses>` is loaded which presents an interface
similar to the gnu program top.
Filters
=======
Plugins might support filtering client status information. To configure filters
each plugin supports a configuration value :confval:`$name.filter`. This filter
is a string which can be constructed from available status info tags and logical
and numerical operators.
List of tags:
.. code-block:: sh
time
privategroup
hostname
clientname
ips
programname
pid
cpuusage
totalmemory
clientmemoryusage
memoryusage
sentmessages
receivedmessages
messagequeuesize
summedmessagequeuesize
averagemessagequeuesize
summedmessagesize
averagemessagesize
objectcount
uptime
responsetime
A filter might look like this:
.. code-block:: sh
memailplugin.filter = "(cpuusage>100 || totalmemory>1000) && hostname==proc-machine"
Numerical operators
-------------------
Numerical operators are applied to a tag name and a constant value.
======== =================
Operator Description
======== =================
== equal
!= not equal
< less than
> greater than
<= less or equal
>= greater or equal
======== =================
Logical operators
-----------------
Logical operators are applied to a group (might be enclosed in brackets) or
numerical expressions.
======== =================
Operator Description
======== =================
! not
&& and
|| or
======== =================
Multiple instances
==================
To monitor different clients sets with different criteria and different plugins
it is common practice to create aliases of scm and to configure each instance
separately
.. code-block:: sh
seiscomp alias create scm_level1 scm
seiscomp alias create scm_level2 scm
where :program:`scm_level1` could monitor all mandatory clients whereas
:program:`scm_level2` monitors all clients which are not crucial for operation.
Plugins
=======
* :ref:`text <scm_text>`
Text output plugin for scm.
* :ref:`email <scm_email>`
Email plugin for scm which sends emails based on client status.
* :ref:`ncurses <scm_ncurses>`
Ncurses output plugin for scm which presents an interactive table of processes.
.. _scm_configuration:
Module Configuration
====================
| :file:`etc/defaults/global.cfg`
| :file:`etc/defaults/scm.cfg`
| :file:`etc/global.cfg`
| :file:`etc/scm.cfg`
| :file:`~/.seiscomp/global.cfg`
| :file:`~/.seiscomp/scm.cfg`
scm inherits :ref:`global options<global-configuration>`.
.. _scm/text:
text extension
--------------
Text output plugin for scm.
.. confval:: mtextplugin.outputDir
Default: ``@LOGDIR@/scm/``
Type: *string*
Output directory where [client].txt is written to. Additionally
an file description.txt will be created to show the order of
tags used in the client status file.
.. _scm/email:
email extension
---------------
Email plugin for scm which sends emails based on client status.
.. confval:: memailplugin.recipients
Type: *list:string*
Defines a comma separated list of email addresses to send
notifications to.
.. confval:: memailplugin.template
Type: *string*
Configures a custom message text that is appended to each message
when clients passed the filter.
.. confval:: memailplugin.filter
Type: *string*
Defines the filter for each client status. A filter is an expression
that can be constructed with all available status tags \(scm \-\-print\-tags\)
and logical and numerical operators. See scm for more information.
.. confval:: memailplugin.requiredClients
Type: *list:string*
*No description available*
.. confval:: memailplugin.reportSilentClients
Default: ``true``
Type: *boolean*
*No description available*
.. confval:: memailplugin.reportSilentClientsTimeSpan
Default: ``1``
Type: *double*
Unit: *min*
*No description available*
.. confval:: memailplugin.reportRequiredClients
Default: ``10``
Type: *double*
Unit: *min*
*No description available*
.. confval:: memailplugin.filterMeanInterval
Default: ``10``
Type: *double*
Unit: *min*
*No description available*
.. confval:: memailplugin.sendEmail
Default: ``false``
Type: *boolean*
Enables sending of emails using mailx shell command.
Command-Line Options
====================
.. program:: scm
:program:`scm [options]`
Generic
-------
.. option:: -h, --help
Show help message.
.. option:: -V, --version
Show version information.
.. option:: --config-file arg
Use alternative configuration file. When this option is
used the loading of all stages is disabled. Only the
given configuration file is parsed and used. To use
another name for the configuration create a symbolic
link of the application or copy it. Example:
scautopick \-> scautopick2.
.. option:: --plugins arg
Load given plugins.
.. option:: -D, --daemon
Run as daemon. This means the application will fork itself
and doesn't need to be started with \&.
.. option:: --auto-shutdown arg
Enable\/disable self\-shutdown because a master module shutdown.
This only works when messaging is enabled and the master
module sends a shutdown message \(enabled with \-\-start\-stop\-msg
for the master module\).
.. option:: --shutdown-master-module arg
Set the name of the master\-module used for auto\-shutdown.
This is the application name of the module actually
started. If symlinks are used, then it is the name of
the symlinked application.
.. option:: --shutdown-master-username arg
Set the name of the master\-username of the messaging
used for auto\-shutdown. If \"shutdown\-master\-module\" is
given as well, this parameter is ignored.
Verbosity
---------
.. option:: --verbosity arg
Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info,
4:debug.
.. option:: -v, --v
Increase verbosity level \(may be repeated, eg. \-vv\).
.. option:: -q, --quiet
Quiet mode: no logging output.
.. option:: --component arg
Limit the logging to a certain component. This option can
be given more than once.
.. option:: -s, --syslog
Use syslog logging backend. The output usually goes to
\/var\/lib\/messages.
.. option:: -l, --lockfile arg
Path to lock file.
.. option:: --console arg
Send log output to stdout.
.. option:: --debug
Execute in debug mode.
Equivalent to \-\-verbosity\=4 \-\-console\=1 .
.. option:: --log-file arg
Use alternative log file.
Messaging
---------
.. option:: -u, --user arg
Overrides configuration parameter :confval:`connection.username`.
.. option:: -H, --host arg
Overrides configuration parameter :confval:`connection.server`.
.. option:: -t, --timeout arg
Overrides configuration parameter :confval:`connection.timeout`.
.. option:: -g, --primary-group arg
Overrides configuration parameter :confval:`connection.primaryGroup`.
.. option:: -S, --subscribe-group arg
A group to subscribe to.
This option can be given more than once.
.. option:: --content-type arg
Overrides configuration parameter :confval:`connection.contentType`.
.. option:: --start-stop-msg arg
Set sending of a start and a stop message.
Monitor
-------
.. option:: -c, --clients list
Comma separated list of clients to monitor.
.. option:: --print-tags
Print available keys for accessing client info data and to
build filter configurations.
.. option:: --no-output-plugins
Do not use output plugins such as mncursesplugin.