scmaster¶
The messaging system
Module Configuration¶
etc/defaults/global.cfg
etc/defaults/scmaster.cfg
etc/global.cfg
etc/scmaster.cfg
~/.seiscomp/global.cfg
~/.seiscomp/scmaster.cfg
scmaster inherits global options.
Note
Modules/plugins may require a license file. The default path to license
files is @DATADIR@/licenses/
which can be overridden by global
configuration of the parameter gempa.licensePath
. Example:
gempa.licensePath = @CONFIGDIR@/licenses
- defaultGroups¶
Default:
AMPLITUDE, PICK, LOCATION, MAGNITUDE, FOCMECH, EVENT, QC, PUBLICATION, GUI, INVENTORY, CONFIG, LOGGING, SERVICE_REQUEST, SERVICE_PROVIDE, STATUS_GROUP
Type: list:string
The default set of message groups for each queue. Only used if a queues group list is unset (note: empty is not unset).
- queues¶
Default:
production, playback
Type: list:string
Enable messaging queues defined as profile in queues. The profile names are the final queue names.
Note
interface.* Control the messaging interface. The default protocol is “scmp” but “scmps” (secure protocol) is used when valid SSL certificate and key are configured.
- interface.bind¶
Default:
0.0.0.0:18180
Type: ipbind
Local bind address and port of the messaging system. 0.0.0.0:18180 accepts connections from all clients, 127.0.0.1:18180 only from localhost.
- interface.acl¶
Type: list:ipmask
The IP access control list for clients which are allowed to connect to the interface. Separate each IP with a space and put the entire list in double quotes, e.g. "127.0.0.1 192.168.1.2 192.168.0.0/16".
- interface.socketPortReuse¶
Default:
true
Type: boolean
SO_REUSEADDR socket option for the TCP listening socket.
Note
interface.ssl.* SSL encryption is used if key and certificate are configured.
- interface.ssl.bind¶
Default:
0.0.0.0:-1
Type: ipbind
Additional local bind address and port of the messaging system in case SSL encryption is active.
- interface.ssl.acl¶
Type: list:ipmask
The IP access control list for clients which are allowed to connect to the interface. See interface.acl for further details.
- interface.ssl.socketPortReuse¶
Default:
true
Type: boolean
SO_REUSEADDR socket option for the TCP listening socket.
- interface.ssl.key¶
Type: path
- interface.ssl.certificate¶
Type: path
- interface.ssl.verifyPeer¶
Default:
false
Type: boolean
If enabled then the certificate of a connecting client is verified against the servers certificate. It is required that the client certificate is signed by the server certificate otherwise the connection is refused.
Note
queues.* Set the parameters for each messaging queue. The queues are used when listed in the “queues” parameter. Several queues can be used in parallel. For queues with without databases leave the processor parameters empty.
Note
queues.$name.*
$name is a placeholder for the name to be used and needs to be added to queues
to become active.
queues = a,b
queues.a.value1 = ...
queues.b.value1 = ...
# c is not active because it has not been added
# to the list of queues
queues.c.value1 = ...
- queues.$name.groups¶
Type: list:string
Define the list of message groups added to the queue. If unset, then the defaultGroups will be used. A queue will always add the default group "STATUS_GROUP". This parameter overrides defaultGroups.
- queues.$name.acl¶
Default:
0.0.0.0/0
Type: list:ipmask
The IP access control list for clients which are allowed to join the queue. See interface.acl for further details.
- queues.$name.maximumPayloadSize¶
Default:
1048576
Unit: B
Type: int
The maximum size in bytes of a message to be accepted. Clients which send larger messages will be disconnected. The default is 1MB.
- queues.$name.plugins¶
Type: list:string
List of plugins required by this queue. This is just a convenience parameter to improve configurations readability. The plugins can also be added to the global list of module plugins.
Example: dbstore
- queues.$name.processors.messages¶
Type: string
Interface name. For now, use "dbstore"to use a database.
Use empty for testing or playbacks without a database.
Note
queues.$name.processors.messages.dbstore.* Define the database connection parameters.
- queues.$name.processors.messages.dbstore.driver¶
Type: string
Selected the database driver to use. Database drivers are available through plugins. The default plugin is dbmysql which supports the MYSQL database server. It is activated with the core.plugins parameter.
- queues.$name.processors.messages.dbstore.read¶
Type: string
Set the database read connection which is reported to clients that connect to this server. If a remote setup should be implemented, ensure that the hostname is reachable from the remote computer.
- queues.$name.processors.messages.dbstore.write¶
Type: string
Set the database write connection which is private to scmaster. A separate write connection enables different permissions on the database level for scmaster and clients.
- queues.$name.processors.messages.dbstore.proxy¶
Default:
false
Type: boolean
If enabled then the database connection as configured in ‘read’ is not being returned to the client but the URL "proxy://". This URL tells the client to open the database via the websocket proxy at the messaging address, e.g. http://localhost/production/db. The same hostname and queue must be used as for the initial messaging connection.
- queues.$name.processors.messages.dbstore.strictVersionMatch¶
Default:
true
Type: boolean
If enabled, the plugin will check the database schema version and refuse to start if the version doesn’t match the latest version. If disabled and the an object needs to be stored, which is incompatible with the database schema, this object is lost. Leave this option enabled unless you know exactly what are you doing and what the consequences are.
- http.filebase¶
Default:
@DATADIR@/scmaster/http/
Type: path
The directory served by the http server at staticPath.
- http.staticPath¶
Default:
/
Type: string
The URL path at which html files and assets are available. All files under filebase will be served at this URL path.
- http.brokerPath¶
Default:
/
Type: string
The URL path at which the broker websocket is available.
toastd plugin¶
scmaster extension plugin to handle TOAST (Tsunami) related messages and operations.
Note
$name.* $name is a placeholder for the name to be used.
- $name.processors.messages.toastd.source¶
Type: string
Replaces source.address if not set.
- $name.processors.messages.toastd.database¶
Type: string
Configure the source database URL to read tsunami related objects from. If not given then it will be retrieved when connecting to this queue if the dbstore plugin is configured.
- $name.processors.messages.toastd.targetGroup¶
Default:
TSUNAMI
Type: string
Defines the messaging target group to send messages to. Note that the group must be part of this queue.
Note
$name.processors.messages.toastd.source.* Grouped configuration options for the SeisComP source connection.
- $name.processors.messages.toastd.source.address¶
Type: string
Configure the SeisComP connection URL. If the string starts with a slash then it is taken as relative queue name of this instance.
- $name.processors.messages.toastd.source.subscriptions¶
Type: list:string
List of groups to subscribe to or to ignore. A group with a prepended dash will be ignored. If no group is defined then all available groups will be subscribed.
Note
$name.processors.messages.toastd.bulletins.* Configuration of bulletin templates in a tree like fashion.
- $name.processors.messages.toastd.bulletins.variables¶
Type: list:string
Defines a list of context variables for the bulletin generation. Each variable must be defined with a Variable type.
- $name.processors.messages.toastd.bulletins.templates¶
Type: list:string
Defines the ordered list of templates.
- $name.processors.messages.toastd.bulletins.groups¶
Type: list:string
Defines the ordered list of templates groups.
Note
$name.processors.messages.toastd.bulletins.variable.$name.*
Define a template context variable.
$name is a placeholder for the name to be used and needs to be added to variables
to become active.
variables = a,b
$name.processors.messages.toastd.bulletins.variable.a.value1 = ...
$name.processors.messages.toastd.bulletins.variable.b.value1 = ...
# c is not active because it has not been added
# to the list of variables
$name.processors.messages.toastd.bulletins.variable.c.value1 = ...
- $name.processors.messages.toastd.bulletins.variable.$name.name¶
Type: string
Name of the variable as being accessed in the template.
- $name.processors.messages.toastd.bulletins.variable.$name.value¶
Type: string
The optional initial value of the variable.
Note
$name.processors.messages.toastd.bulletins.template.$name.*
Adds a template which must be linked through
the “templates” parameter.
$name is a placeholder for the name to be used and needs to be added to templates
to become active.
templates = a,b
$name.processors.messages.toastd.bulletins.template.a.value1 = ...
$name.processors.messages.toastd.bulletins.template.b.value1 = ...
# c is not active because it has not been added
# to the list of templates
$name.processors.messages.toastd.bulletins.template.c.value1 = ...
- $name.processors.messages.toastd.bulletins.template.$name.id¶
Type: string
ID of the template.
- $name.processors.messages.toastd.bulletins.template.$name.name¶
Type: string
Name of the template.
- $name.processors.messages.toastd.bulletins.template.$name.file¶
Type: path
Path to template file.
- $name.processors.messages.toastd.bulletins.template.$name.requireSimulation¶
Default:
false
Type: boolean
Whether a simulation is required or not to render a bulletin from this template.
- $name.processors.messages.toastd.bulletins.template.$name.isInclude¶
Default:
false
Type: boolean
Defines if this template is an include template. Include templates are hidden from live tabs.
Note
$name.processors.messages.toastd.bulletins.group.$name.*
Adds a template group which must be linked
through the “groups” parameter.
$name is a placeholder for the name to be used and needs to be added to groups
to become active.
groups = a,b
$name.processors.messages.toastd.bulletins.group.a.value1 = ...
$name.processors.messages.toastd.bulletins.group.b.value1 = ...
# c is not active because it has not been added
# to the list of groups
$name.processors.messages.toastd.bulletins.group.c.value1 = ...
- $name.processors.messages.toastd.bulletins.group.$name.name¶
Type: string
Name of the group.
- $name.processors.messages.toastd.bulletins.group.$name.isInclude¶
Default:
false
Type: boolean
Sets the include flag default value for all child templates and child groups.
- $name.processors.messages.toastd.bulletins.group.$name.templates¶
Type: list:string
Defines the ordered list of templates.
- $name.processors.messages.toastd.bulletins.group.$name.groups¶
Type: list:string
Defines the ordered list of templates groups.
Note
$name.processors.messages.toastd.bulletins.group.$name.template.$name.*
Adds a template which must be linked through
the “templates” parameter.
$name is a placeholder for the name to be used and needs to be added to templates
to become active.
templates = a,b
$name.processors.messages.toastd.bulletins.group.$name.template.a.value1 = ...
$name.processors.messages.toastd.bulletins.group.$name.template.b.value1 = ...
# c is not active because it has not been added
# to the list of templates
$name.processors.messages.toastd.bulletins.group.$name.template.c.value1 = ...
- $name.processors.messages.toastd.bulletins.group.$name.template.$name.id¶
Type: string
ID of the template.
- $name.processors.messages.toastd.bulletins.group.$name.template.$name.name¶
Type: string
Name of the template.
- $name.processors.messages.toastd.bulletins.group.$name.template.$name.file¶
Type: path
Path to template file.
- $name.processors.messages.toastd.bulletins.group.$name.template.$name.requireSimulation¶
Default:
false
Type: boolean
Whether a simulation is required or not to render a bulletin from this template.
- $name.processors.messages.toastd.bulletins.group.$name.template.$name.isInclude¶
Default:
false
Type: boolean
Defines if this template is an include template. Include templates are hidden from live tabs.
Note
$name.processors.messages.toastd.bulletins.group.$name.group.$name.*
Adds a template group which must be linked
through the “groups” parameter.
$name is a placeholder for the name to be used and needs to be added to groups
to become active.
groups = a,b
$name.processors.messages.toastd.bulletins.group.$name.group.a.value1 = ...
$name.processors.messages.toastd.bulletins.group.$name.group.b.value1 = ...
# c is not active because it has not been added
# to the list of groups
$name.processors.messages.toastd.bulletins.group.$name.group.c.value1 = ...
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.name¶
Type: string
Name of the group.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.templates¶
Type: list:string
Defines the ordered list of templates.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.groups¶
Type: list:string
Defines the ordered list of templates groups.
Note
$name.processors.messages.toastd.bulletins.group.$name.group.$name.template.$name.*
Adds a template which must be linked through
the “templates” parameter.
$name is a placeholder for the name to be used and needs to be added to templates
to become active.
templates = a,b
$name.processors.messages.toastd.bulletins.group.$name.group.$name.template.a.value1 = ...
$name.processors.messages.toastd.bulletins.group.$name.group.$name.template.b.value1 = ...
# c is not active because it has not been added
# to the list of templates
$name.processors.messages.toastd.bulletins.group.$name.group.$name.template.c.value1 = ...
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.template.$name.id¶
Type: string
ID of the template.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.template.$name.name¶
Type: string
Name of the template.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.template.$name.file¶
Type: path
Path to template file.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.template.$name.requireSimulation¶
Default:
false
Type: boolean
Whether a simulation is required or not to render a bulletin from this template.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.template.$name.isInclude¶
Default:
false
Type: boolean
Defines if this template is an include template. Include templates are hidden from live tabs.
Note
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.*
Adds a template group which must be linked
through the “groups” parameter.
$name is a placeholder for the name to be used and needs to be added to groups
to become active.
groups = a,b
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.a.value1 = ...
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.b.value1 = ...
# c is not active because it has not been added
# to the list of groups
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.c.value1 = ...
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.name¶
Type: string
Name of the group.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.templates¶
Type: list:string
Defines the ordered list of templates.
Note
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.$name.*
Adds a template which must be linked through
the “templates” parameter.
$name is a placeholder for the name to be used and needs to be added to templates
to become active.
templates = a,b
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.a.value1 = ...
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.b.value1 = ...
# c is not active because it has not been added
# to the list of templates
$name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.c.value1 = ...
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.$name.id¶
Type: string
ID of the template.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.$name.name¶
Type: string
Name of the template.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.$name.file¶
Type: path
Path to template file.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.$name.requireSimulation¶
Default:
false
Type: boolean
Whether a simulation is required or not to render a bulletin from this template.
- $name.processors.messages.toastd.bulletins.group.$name.group.$name.group.$name.template.$name.isInclude¶
Default:
false
Type: boolean
Defines if this template is an include template. Include templates are hidden from live tabs.
Note
$name.processors.messages.toastd.gss.* gempa simulation server related settings
- $name.processors.messages.toastd.gss.url¶
Type: string
The GSS request URL for the native protocol.
- $name.processors.messages.toastd.gss.browserURL¶
Type: string
The HTTP URL to browse products.
- $name.processors.messages.toastd.gss.timeout¶
Default:
-1
Unit: s
Type: int
Timeout in seconds which is used to detect dead connections and to attempt a reconnections. If the GSS connection does neither read nor write within the given timeout, a ping request will be sent. If a second ping request should be sent while the first hasn’t been answered to by GSS then the connection to GSS will be reconnected.
Note
$name.processors.messages.toastd.matching.* Configure matching criteria which decide whether a similar simulation already exists or if a new simulation should be created. This is useful to reduce the number of simulations which are created in order to save disk space and computing time and to make the selection of the best simulation easier.
- $name.processors.messages.toastd.matching.magnitude.variance¶
Default:
0.1
Type: double
Maximum magnitude variance. The matching options control whether a new simulation (scenario) is actually generated. It is not generated if a simulation already exists for which magnitude, depth, location and fault plane all are within the configured variance with respect to the new simulation.
- $name.processors.messages.toastd.matching.depth.variance¶
Default:
30.0
Unit: km
Type: double
Maximum depth variance. For more information see the config option matching.magnitude.variance.
- $name.processors.messages.toastd.matching.location.variance¶
Default:
0.1
Unit: degree
Type: double
Maximum location variance. For more information see the config option matching.magnitude.variance.
- $name.processors.messages.toastd.matching.faultPlane.variance¶
Default:
0.15
Unit: 0, 1
Type: double
Maximum fault plane orientation residual in the range [0, 1]. If set to 0, only identical fault planes are considered to match, if set to 1, fault planes are always considered to match. The residual is computed by mapping the rotation angle between fault planes from [0°, 90°] to [0, 1] using a sigmoid (angles larger than 90° are mapped to 1). For more information see the config option matching.magnitude.variance.
- $name.processors.messages.toastd.profiles.automatic¶
Type: list:string
A list of simulation profile names which are executed automatically when an incident is created by toastd or if the incident updates outside of the matching criteria.
Note
$name.processors.messages.toastd.profiles.automatic.* Configure automatic simulation profiles.
Note
$name.processors.messages.toastd.profiles.automatic.$name.*
$name is a placeholder for the name to be used and needs to be added to automatic
to become active.
automatic = a,b
$name.processors.messages.toastd.profiles.automatic.a.value1 = ...
$name.processors.messages.toastd.profiles.automatic.b.value1 = ...
# c is not active because it has not been added
# to the list of automatic
$name.processors.messages.toastd.profiles.automatic.c.value1 = ...
- $name.processors.messages.toastd.profiles.automatic.$name.backend¶
Type: string
The simulation backend to be used. Spelling as shown in the backend selection of the manual simulation dialog. Examples: "EasyWave2", "Geoware TTT". As always, use quotation marks if expression contains spaces.
- $name.processors.messages.toastd.profiles.automatic.$name.parameters¶
Type: list:string
A list of custom key-value items (separated by comma) which are forwarded to the backend. Example for EasyWave2: maxTime:120,gpu:true.
Note
$name.processors.messages.toastd.patches.* Configure settings for the automatic patches (rupture plane) generation.
- $name.processors.messages.toastd.patches.width¶
Default:
50
Unit: km
Type: int
The patch width option is not used at this time.
- $name.processors.messages.toastd.patches.depthMode¶
Default:
1
Type: int
Mode of the automatic depth correction. The following modes are available: 0 = Off, 1 = Adjust the depth to avoid negative z-top, 2 = Abort the patch generation in case of negative z-top
- $name.processors.messages.toastd.patches.maxFaultDist¶
Default:
1
Unit: degree
Type: double
Maximum horizontal distance between epicenter and closest fault point allowed for automatic patch generation.
- $name.processors.messages.toastd.patches.maxFootWallDist¶
Default:
-1
Unit: degree
Type: double
Deprecated: Maximum distance between epicenter and closest fault point if epicenter is on foot wall. Note that this parameter is deprecated, use ‘maxFaultDist’ instead.
- $name.processors.messages.toastd.patches.maxHangingWallDist¶
Default:
-1
Unit: degree
Type: double
Deprecated: Maximum distance between epicenter and closest fault point if epicenter is on hanging wall. Note that this parameter is deprecated, use ‘maxFaultDist’ instead.
- $name.processors.messages.toastd.patches.maxDip¶
Default:
80.0
Unit: degree
Type: double
Maximum dip in degree.
- $name.processors.messages.toastd.patches.maxRakeVariance¶
Default:
20.0
Unit: degree
Type: double
Maximum variance of the rake from 90 degree.
- $name.processors.messages.toastd.patches.extrapolateFault¶
Default:
false
Type: boolean
Selection of this option will extrapolate fault lines beyond their endpoints, so that they can provide patch generation information for epicenters otherwise not covered.
Note
$name.processors.messages.toastd.trigger.* Configure trigger criteria which control whether an incident or a simulation is created automatically.
- $name.processors.messages.toastd.trigger.incident.enable¶
Default:
true
Type: boolean
If activated then incidents will be triggered automatically from SeisComP events based on defined criteria.
- $name.processors.messages.toastd.trigger.incident.maximumDepth¶
Default:
100
Unit: km
Type: double
Maximum depth of an event to trigger the automatic incident creation.
- $name.processors.messages.toastd.trigger.incident.minimumMagnitude¶
Default:
6.0
Type: double
Minimum magnitude of an event to trigger the automatic incident creation.
- $name.processors.messages.toastd.trigger.origin.mode¶
Type: string
Evaluation mode of origins to trigger simulations for. Supported modes are manual and automatic. If no mode is specified, no filter is applied.
- $name.processors.messages.toastd.trigger.simulation.maximumAge¶
Default:
1800
Unit: s
Type: int
Maximum age of events in seconds to start a simulation automatically. If the value is negative the age of an event is ignored.
- $name.processors.messages.toastd.trigger.simulation.minimumMagnitude¶
Default:
6.0
Type: double
Minimum magnitude to start a simulation automatically.
Command-Line Options¶
scmaster [options]
Generic¶
- -h, --help¶
Show help message.
- -V, --version¶
Show version information.
- --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.
- --plugins arg¶
Load given plugins.
- -D, --daemon¶
Run as daemon. This means the application will fork itself and doesn’t need to be started with &.
Verbosity¶
- --verbosity arg¶
Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info, 4:debug.
- -v, --v¶
Increase verbosity level (may be repeated, eg. -vv).
- -q, --quiet¶
Quiet mode: no logging output.
- --component arg¶
Limit the logging to a certain component. This option can be given more than once.
- -s, --syslog¶
Use syslog logging backend. The output usually goes to /var/lib/messages.
- -l, --lockfile arg¶
Path to lock file.
- --console arg¶
Send log output to stdout.
- --debug¶
Execute in debug mode. Equivalent to --verbosity=4 --console=1 .
- --log-file arg¶
Use alternative log file.
- --print-component arg¶
For each log entry print the component right after the log level. By default the component output is enabled for file output but disabled for console output.
- --trace¶
Execute in trace mode. Equivalent to --verbosity=4 --console=1 --print-component=1 --print-context=1 .
Wired¶
- --bind arg¶
The non-encrypted bind address. Format [ip:]port
- --sbind arg¶
The encrypted bind address. Format: [ip:]port