From c1e7fe83f85155837ace689d1e7253baf73d63fa Mon Sep 17 00:00:00 2001 From: Andreas Legner Date: Wed, 24 Jun 2026 13:41:26 +0200 Subject: [PATCH 1/2] Update to v0.0.15 and add destination kafka Signed-off-by: Andreas Legner --- docs/.obsidian/app.json | 1 + docs/.obsidian/appearance.json | 1 + docs/.obsidian/core-plugins.json | 33 +++++ docs/.obsidian/workspace.json | 202 +++++++++++++++++++++++++++++++ docs/config/dests.md | 47 ++++--- docs/install.md | 6 +- 6 files changed, 267 insertions(+), 23 deletions(-) create mode 100644 docs/.obsidian/app.json create mode 100644 docs/.obsidian/appearance.json create mode 100644 docs/.obsidian/core-plugins.json create mode 100644 docs/.obsidian/workspace.json diff --git a/docs/.obsidian/app.json b/docs/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/docs/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/docs/.obsidian/appearance.json b/docs/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/docs/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/docs/.obsidian/core-plugins.json b/docs/.obsidian/core-plugins.json new file mode 100644 index 0000000..639b90d --- /dev/null +++ b/docs/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/docs/.obsidian/workspace.json b/docs/.obsidian/workspace.json new file mode 100644 index 0000000..46c0191 --- /dev/null +++ b/docs/.obsidian/workspace.json @@ -0,0 +1,202 @@ +{ + "main": { + "id": "4182775c2eda20e3", + "type": "split", + "children": [ + { + "id": "7b2511b9e3794fee", + "type": "tabs", + "children": [ + { + "id": "92b4e36f9ad9db3c", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "contributing.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "contributing" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "65f258b0d21019fb", + "type": "split", + "children": [ + { + "id": "34dec784969177be", + "type": "tabs", + "children": [ + { + "id": "f4485f307d9e4d8f", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "cacb9e427e998d39", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + }, + { + "id": "edadc133f9e07f1c", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "506dfe8741e20d4d", + "type": "split", + "children": [ + { + "id": "0bfebaa9f56f3201", + "type": "tabs", + "children": [ + { + "id": "f552e52f46a610a1", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "contributing.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for contributing" + } + }, + { + "id": "ea38f2c95706facf", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "contributing.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from contributing" + } + }, + { + "id": "332b0622472ebd10", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "5a51c6a1366e9495", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "3b70222425b74599", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "contributing.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of contributing" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false + } + }, + "active": "92b4e36f9ad9db3c", + "lastOpenFiles": [ + "uninstall.md", + "tutorials.md", + "README.md", + "install.md", + "contributing.md", + "_sidebar.md", + "config/messaging.md", + "config/logging.md", + "config/index.md", + "config/format.md", + "config/app.md", + "config/data.md", + "config/dests.md" + ] +} \ No newline at end of file diff --git a/docs/config/dests.md b/docs/config/dests.md index bca423b..ebdfe8f 100644 --- a/docs/config/dests.md +++ b/docs/config/dests.md @@ -22,26 +22,28 @@ Some types have additional properties that they require. Note, to specify a prop you need to prefix the property with `componentOptions.` in your dest.ini configuration file. For example, to specify the option [brokerURL](https://camel.apache.org/components/3.22.x/activemq-component.html#_component_option_brokerURL) for ActiveMQ, you should write the option as `componentOptions.brokerURL=` -| id | Description | Required properties | Commonly used properties | All properties -|------------------|---------------------------------|------------------------------------------------------------| -------------------------------------------------------- |----------------------------------------------------------------------| -| `stdout` | Write all data to standard out. | None. | | https://camel.apache.org/components/3.22.x/stream-component.html | -| `slack` | Send data to a Slack channel | * `webhook`
* `channel` | | https://camel.apache.org/components/3.22.x/slack-component.html | -| `fluentd` | Send data to FluentD | * `tag`
* `host`
* `port` | | | -| `file` | Send data to a file | * `file` | | https://camel.apache.org/components/3.22.x/stream-component.html | -| `dir` | Send data to a directory | * `dir` | | https://camel.apache.org/components/3.22.x/file-component.html | -| `smtp`/`smtps` | Sent data via email | * `server`
* `subject`
* `to`
* `from` | * `port` | https://camel.apache.org/components/3.22.x/mail-component.html | -| `sentry` | Send data into Sentry | * `dsn` | | | -| `twilio` | Send via SMS | * `sid`
* `token`
* `to`
* `from` | | https://camel.apache.org/components/3.22.x/twilio-component.html | -| `loki` | Send data into Grafana Loki | * `url`
* `username`
* `password`
| * `maxLabels` The maximum number of indexed labels each log record can have. The default is 15. If you want to use more than 15 labels, you must also configure this separately on your Grafana Loki instance. However, this is not recommended as it will degrade performance.
* `labels` specifies the labels to be associated with each log record. Each label should be delimited by a space. I.e `labels=REMOTE_PORT SYSTEM_NAME` (In this case `REMOTE_PORT` and `SYSTEM_NAME` should be valid format options on the data source. For example if using Audit Password events). It is strongly recommended to specify this property, because the default option is to add labels for each data attribute that is received. | | -| `http`/`https` | Send data via http/https | * `url` | * `httpMethod`
* `x` where x is any query parameter | https://camel.apache.org/components/3.22.x/http-component.html | -| `activemq` | Send data to ActiveMQ | * `destinationName` | * `destinationType`
* `brokerURL` | https://camel.apache.org/components/3.22.x/activemq-component.html | -| `splunk-hec` | Send data to Splunk | * `splunkUrl`
* `token`
* `index` | * `skipTlsVerify` | https://camel.apache.org/components/3.22.x/splunk-hec-component.html | -| `pagerduty` | Send data to PagerDuty | * `routingKey` | * `component`
* `group`
* `class` | | -| `mezmo` | Send data to Mezmo | * `apiKey` | * `tags`
* `app` | | -| `elasticsearch` | Send data to Elasticsearch | * `endpoint`
* `apiKey`
* `index` | | | -| `otlp` | Send data to OpenTelemetry server | * `url` | * `errorRegex` | | -| `prometheus` | Expose metrics for Prometheus | None. | * `port` (default: 9090)
* `path` (default: /metrics)
* `metricPrefix` (default: manzan_)
* `username`
* `password` | [Prometheus Documentation](examples/prometheus.md) | - +| id | Description | Required properties | Commonly used properties | All properties +|------------------|-----------------------------------|-------------------------------------------------------| -------------------------------------------------------- |----------------------------------------------------------------------| +| `stdout` | Write all data to standard out. | None. | | https://camel.apache.org/components/3.22.x/stream-component.html | +| `slack` | Send data to a Slack channel | * `webhook`
* `channel` | | https://camel.apache.org/components/3.22.x/slack-component.html | +| `fluentd` | Send data to FluentD | * `tag`
* `host`
* `port` | | | +| `file` | Send data to a file | * `file` | | https://camel.apache.org/components/3.22.x/stream-component.html | +| `dir` | Send data to a directory | * `dir` | | https://camel.apache.org/components/3.22.x/file-component.html | +| `smtp`/`smtps` | Sent data via email | * `server`
* `subject`
* `to`
* `from` | * `port` | https://camel.apache.org/components/3.22.x/mail-component.html | +| `sentry` | Send data into Sentry | * `dsn` | | | +| `twilio` | Send via SMS | * `sid`
* `token`
* `to`
* `from` | | https://camel.apache.org/components/3.22.x/twilio-component.html | +| `loki` | Send data into Grafana Loki | * `url`
* `username`
* `password`
| * `maxLabels` The maximum number of indexed labels each log record can have. The default is 15. If you want to use more than 15 labels, you must also configure this separately on your Grafana Loki instance. However, this is not recommended as it will degrade performance.
* `labels` specifies the labels to be associated with each log record. Each label should be delimited by a space. I.e `labels=REMOTE_PORT SYSTEM_NAME` (In this case `REMOTE_PORT` and `SYSTEM_NAME` should be valid format options on the data source. For example if using Audit Password events). It is strongly recommended to specify this property, because the default option is to add labels for each data attribute that is received. | | +| `http`/`https` | Send data via http/https | * `url` | * `httpMethod`
* `x` where x is any query parameter | https://camel.apache.org/components/3.22.x/http-component.html | +| `activemq` | Send data to ActiveMQ | * `destinationName` | * `destinationType`
* `brokerURL` | https://camel.apache.org/components/3.22.x/activemq-component.html | +| `splunk-hec` | Send data to Splunk | * `splunkUrl`
* `token`
* `index` | * `skipTlsVerify` | https://camel.apache.org/components/3.22.x/splunk-hec-component.html | +| `pagerduty` | Send data to PagerDuty | * `routingKey` | * `component`
* `group`
* `class` | | +| `mezmo` | Send data to Mezmo | * `apiKey` | * `tags`
* `app` | | +| `elasticsearch` | Send data to Elasticsearch | * `endpoint`
* `apiKey`
* `index` | | | +| `otlp` | Send data to OpenTelemetry server | * `url` | * `errorRegex` | | +| `prometheus` | Expose metrics for Prometheus | None. | * `port` (default: 9090)
* `path` (default: /metrics)
* `metricPrefix` (default: manzan_)
* `username`
* `password` | [Prometheus Documentation](examples/prometheus.md) | +| `kafka` | Send to Kafka message broker | * `type`
* `topic`
* `brokers` | | | + + ### Example ```ini @@ -145,4 +147,9 @@ path=/metrics metricPrefix=ibmi_ username=prometheus password=secret + +[kafka] +type=kafka +topic=test_me +broker= ``` diff --git a/docs/install.md b/docs/install.md index f79aa8c..3e3e073 100644 --- a/docs/install.md +++ b/docs/install.md @@ -31,13 +31,13 @@ Manzan has support for all CCSIDs on IBM i. What this means is that when you dec java -jar ``` -For instance, to install version `0.0.9`, the steps from an IBM i (using open source `wget`) would look like: +For instance, to install version `0.0.15`, the steps from an IBM i (using open source `wget`) would look like: ```bash mkdir -p /opt/download cd /opt/download -wget https://github.com/ThePrez/Manzan/releases/download/v0.0.9/manzan-installer-v0.0.9.jar -java -jar manzan-installer-v0.0.9.jar +wget https://github.com/ThePrez/Manzan/releases/download/v0.0.15/manzan-installer-v0.0.15.jar +java -jar manzan-installer-v0.0.15.jar ``` Note: There is currently a bug in the installer where it might say `ERROR: Error running command` after the install is completed. From ac311dc3a3322e8126363f9c330e4f0a0898fc35 Mon Sep 17 00:00:00 2001 From: Andreas Legner Date: Wed, 24 Jun 2026 13:41:54 +0200 Subject: [PATCH 2/2] Update to v0.0.15 and add destination kafka Signed-off-by: Andreas Legner --- docs/.obsidian/app.json | 1 - docs/.obsidian/appearance.json | 1 - docs/.obsidian/core-plugins.json | 33 ----- docs/.obsidian/workspace.json | 202 ------------------------------- 4 files changed, 237 deletions(-) delete mode 100644 docs/.obsidian/app.json delete mode 100644 docs/.obsidian/appearance.json delete mode 100644 docs/.obsidian/core-plugins.json delete mode 100644 docs/.obsidian/workspace.json diff --git a/docs/.obsidian/app.json b/docs/.obsidian/app.json deleted file mode 100644 index 9e26dfe..0000000 --- a/docs/.obsidian/app.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/docs/.obsidian/appearance.json b/docs/.obsidian/appearance.json deleted file mode 100644 index 9e26dfe..0000000 --- a/docs/.obsidian/appearance.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/docs/.obsidian/core-plugins.json b/docs/.obsidian/core-plugins.json deleted file mode 100644 index 639b90d..0000000 --- a/docs/.obsidian/core-plugins.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "file-explorer": true, - "global-search": true, - "switcher": true, - "graph": true, - "backlink": true, - "canvas": true, - "outgoing-link": true, - "tag-pane": true, - "footnotes": false, - "properties": true, - "page-preview": true, - "daily-notes": true, - "templates": true, - "note-composer": true, - "command-palette": true, - "slash-command": false, - "editor-status": true, - "bookmarks": true, - "markdown-importer": false, - "zk-prefixer": false, - "random-note": false, - "outline": true, - "word-count": true, - "slides": false, - "audio-recorder": false, - "workspaces": false, - "file-recovery": true, - "publish": false, - "sync": true, - "bases": true, - "webviewer": false -} \ No newline at end of file diff --git a/docs/.obsidian/workspace.json b/docs/.obsidian/workspace.json deleted file mode 100644 index 46c0191..0000000 --- a/docs/.obsidian/workspace.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "main": { - "id": "4182775c2eda20e3", - "type": "split", - "children": [ - { - "id": "7b2511b9e3794fee", - "type": "tabs", - "children": [ - { - "id": "92b4e36f9ad9db3c", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "contributing.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "contributing" - } - } - ] - } - ], - "direction": "vertical" - }, - "left": { - "id": "65f258b0d21019fb", - "type": "split", - "children": [ - { - "id": "34dec784969177be", - "type": "tabs", - "children": [ - { - "id": "f4485f307d9e4d8f", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": { - "sortOrder": "alphabetical", - "autoReveal": false - }, - "icon": "lucide-folder-closed", - "title": "Files" - } - }, - { - "id": "cacb9e427e998d39", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - }, - "icon": "lucide-search", - "title": "Search" - } - }, - { - "id": "edadc133f9e07f1c", - "type": "leaf", - "state": { - "type": "bookmarks", - "state": {}, - "icon": "lucide-bookmark", - "title": "Bookmarks" - } - } - ] - } - ], - "direction": "horizontal", - "width": 300 - }, - "right": { - "id": "506dfe8741e20d4d", - "type": "split", - "children": [ - { - "id": "0bfebaa9f56f3201", - "type": "tabs", - "children": [ - { - "id": "f552e52f46a610a1", - "type": "leaf", - "state": { - "type": "backlink", - "state": { - "file": "contributing.md", - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-coming-in", - "title": "Backlinks for contributing" - } - }, - { - "id": "ea38f2c95706facf", - "type": "leaf", - "state": { - "type": "outgoing-link", - "state": { - "file": "contributing.md", - "linksCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-going-out", - "title": "Outgoing links from contributing" - } - }, - { - "id": "332b0622472ebd10", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-tags", - "title": "Tags" - } - }, - { - "id": "5a51c6a1366e9495", - "type": "leaf", - "state": { - "type": "all-properties", - "state": { - "sortOrder": "frequency", - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-archive", - "title": "All properties" - } - }, - { - "id": "3b70222425b74599", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "file": "contributing.md", - "followCursor": false, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-list", - "title": "Outline of contributing" - } - } - ] - } - ], - "direction": "horizontal", - "width": 300, - "collapsed": true - }, - "left-ribbon": { - "hiddenItems": { - "switcher:Open quick switcher": false, - "graph:Open graph view": false, - "canvas:Create new canvas": false, - "daily-notes:Open today's daily note": false, - "templates:Insert template": false, - "command-palette:Open command palette": false, - "bases:Create new base": false - } - }, - "active": "92b4e36f9ad9db3c", - "lastOpenFiles": [ - "uninstall.md", - "tutorials.md", - "README.md", - "install.md", - "contributing.md", - "_sidebar.md", - "config/messaging.md", - "config/logging.md", - "config/index.md", - "config/format.md", - "config/app.md", - "config/data.md", - "config/dests.md" - ] -} \ No newline at end of file