# Support module for external message modification modules

Module Name: | mmexternal
Author: | Rainer Gerhards <rgerhards@adiscon.com>
Available since: | 8.3.0

## Purpose

This module permits to integrate external message modification plugins into rsyslog.

For details on the interface specification, see rsyslog’s source in the ./plugins/external/INTERFACE.md.

## Configuration Parameters

Note

Parameter names are case-insensitive.

### Action Parameters

#### binary

type | default | mandatory | `obsolete legacy` directive
--- | --- | --- | ---
string | none | yes | none

The name of the external message modification plugin to be called. This can be a full path name.

#### interface.input

type | default | mandatory | `obsolete legacy` directive
--- | --- | --- | ---
string | msg | no | none

This can either be “msg”, “rawmsg” or “fulljson”. In case of “fulljson”, the message object is provided as a json object. Otherwise, the respective property is provided. This setting must match the external plugin’s expectations. Check the external plugin documentation for what needs to be used.

#### output

type | default | mandatory | `obsolete legacy` directive
--- | --- | --- | ---
string | none | no | none

This is a debug aid. If set, this is a filename where the plugins output is logged. Note that the output is also being processed as usual by rsyslog. Setting this parameter thus gives insight into the internal processing that happens between plugin and rsyslog core.

#### forceSingleInstance

type | default | mandatory | `obsolete legacy` directive
--- | --- | --- | ---
binary | off | no | none

This is an expert parameter, just like the equivalent omprog parameter. See the message modification plugin’s documentation if it is needed.

## Examples

### Execute external module

The following config file snippet is used to write execute an external message modification module “mmexternal.py”. Note that the path to the module is specified here. This is necessary if the module is not in the default search path.

    module (load="mmexternal") # needs to be done only once inside the config

    action(type="mmexternal" binary="/path/to/mmexternal.py")

See also

Help with configuring/using `Rsyslog`:

- Mailing list - best route for general questions

- GitHub: rsyslog source project - detailed questions, reporting issues that are believed to be bugs with `Rsyslog`

- Stack Exchange (View, Ask) - experimental support from rsyslog community

See also

Contributing to `Rsyslog`:

- Source project: rsyslog project README.

- Documentation: rsyslog-doc project README

Copyright 2008-2020 Rainer Gerhards (Großrinderfeld), and Others.