You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,7 @@
49
49
50
50
### Documentation
51
51
-`docs/admin/installation/linux-packages`: Add `[signed-by=]` options, add wget command as alternative to curl (PR#2547 by Sebastian Wagner).
52
+
- Add documentation on the Redis pipeline (databases, configuration), fix generic pipeline documentation and add missing information on parameters, add unlinked intelmqctl docs to the index and TOC (PR#2560 by Sebastian Wagner).
Copy file name to clipboardExpand all lines: docs/admin/beta-features.md
+29-22Lines changed: 29 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,78 +56,84 @@ only RabbitMQ as broker has been tested.
56
56
You can change the broker for single bots (set the parameters in the runtime configuration per bot) or for the whole
57
57
botnet (using the global configuration).
58
58
59
+
### Settings
60
+
59
61
You need to set the parameter
60
62
`source_pipeline_broker`/`destination_pipeline_broker` to `amqp`. There are more parameters available:
61
63
62
-
!!! bug
63
-
This section of the documentation is currently incomplete and will be updated later.
64
-
65
64
**`destination_pipeline_broker`**
66
65
67
66
(required, string) `"amqp"`
68
67
69
-
70
68
**`destination_pipeline_host`**
71
69
72
-
() (default: `'127.0.0.1'`)
70
+
(optional, string) (default: `'127.0.0.1'`)
73
71
74
72
**`destination_pipeline_port`**
75
73
76
-
() (default: 5672)
74
+
(optional, integer) (default: 5672)
77
75
78
76
**`destination_pipeline_username`**
79
77
80
-
()
78
+
(optional, string)
81
79
82
80
**`destination_pipeline_password`**
83
81
84
-
()
82
+
(optional, string)
83
+
84
+
**`destination_pipeline_ssl`**
85
+
86
+
(optional, boolean) (default: false)
85
87
86
88
**`destination_pipeline_socket_timeout`**
87
89
88
-
() (default: no timeout)
90
+
(optional, integer) (default: no timeout)
89
91
90
92
**`destination_pipeline_amqp_exchange`**
91
93
92
-
() Only change/set this if you know what you do. If set, the destination queues are not declared as queues, but used as routing key. (default: `''`).
94
+
(optional, string) Only change/set this if you know what you do. If set, the destination queues are not declared as queues, but used as routing key. (default: `''`).
93
95
94
96
**`destination_pipeline_amqp_virtual_host`**
95
97
96
-
() (default: `'/'`)
98
+
(optional, string) (default: `'/'`)
97
99
98
100
**`source_pipeline_host`**
99
101
100
-
() (default: `'127.0.0.1'`)
101
-
102
+
(optional, string) (default: `'127.0.0.1'`)
102
103
103
104
**`source_pipeline_port`**
104
105
105
-
() (default: 5672)
106
+
(optional, port) (default: 5672)
106
107
107
108
**`source_pipeline_username`**
108
109
109
-
()
110
+
(optional, string)
110
111
111
112
**`source_pipeline_password`**
112
113
113
-
()
114
+
(optional, string)
115
+
116
+
**`source_pipeline_ssl`**
117
+
118
+
(optional, boolean) (default: false)
114
119
115
120
**`source_pipeline_socket_timeout`**
116
121
117
-
() (default: no timeout)
122
+
(optional, string) (default: no timeout)
118
123
119
124
**`source_pipeline_amqp_exchange`**
120
125
121
-
() Only change/set this if you know what you do. If set, the destination queues are not declared as queues, but used as routing key. (default: ['']).
122
-
126
+
(optional, string) Only change/set this if you know what you do. If set, the destination queues are not declared as queues, but used as routing key. (default: `""`]).
123
127
124
128
**`source_pipeline_amqp_virtual_host`**
125
129
126
-
() (default: `'/'`)
130
+
(optional, string) (default: `'/'`)
127
131
128
132
**`intelmqctl_rabbitmq_monitoring_url`**
129
133
130
-
() string, see below (default: `"http://{host}:15672"`)
134
+
(optional, string) string, see below (default: `"http://{host}:15672"`)
135
+
136
+
### Monitoring queues
131
137
132
138
For getting the queue sizes, `intelmqctl` needs to connect to the monitoring interface of RabbitMQ. If the monitoring
133
139
interface is not available under `http://{host}:15672` you can manually set using the
@@ -137,10 +143,11 @@ user account, make sure to add the tag "monitoring" to it, otherwise IntelMQ can
Copy file name to clipboardExpand all lines: docs/admin/configuration/intelmq.md
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,30 +156,14 @@ Some information can as well be found in Python's documentation on the used
156
156
157
157
If the path `_on_error` exists for a bot, the message is also sent to this queue, instead of (only) dumping the file if
158
158
configured to do so.
159
-
160
-
##### Miscellaneous
161
-
162
-
**`load_balance`**
163
-
164
-
(required, boolean) this option allows you to choose the behavior of the queue. Use the following values:
165
-
166
-
- **true** - splits the messages into several queues without duplication
167
-
- **false** - duplicates the messages into each queue - When using AMQP as message broker, take a look at the `multithreading`{.interpreted-text role="ref"} section and the `instances_threads` parameter.
168
-
169
-
**`rate_limit`**
170
-
171
-
(required, integer) time interval (in seconds) between messages processing. int value.
172
-
173
-
**`ssl_ca_certificate`**
174
-
175
-
(optional, string) trusted CA certificate for IMAP connections (supported by some bots).
159
+
##### Pipeline
176
160
177
161
**`source_pipeline_broker`**
178
162
179
163
(optional, string) Allowed values are `redis` and `amqp`. Selects the message broker IntelMQ should use. As this parameter can be overridden by each bot, this allows usage of different broker systems and hosts, as well as switching between them on the same IntelMQ instance. Defaults to `redis`.
180
164
181
165
- **redis** - Please note that persistence has to be [manually activated](http://redis.io/topics/persistence).
182
-
- **amqp** - [Using the AMQP broker]() is currently beta but there are no known issues. A popular AMQP broker is [RabbitMQ](https://www.rabbitmq.com/).
166
+
- **amqp** - [Using the AMQP broker](../beta-features.md#using-amqp-message-broker) is currently beta but there are no known issues. A popular AMQP broker is [RabbitMQ](https://www.rabbitmq.com/).
183
167
184
168
**`destination_pipeline_broker`**
185
169
@@ -220,6 +204,22 @@ configured to do so.
220
204
221
205
(required, integer) broker database that the bot will use to connect and send messages (requirement from
222
206
redis broker).
207
+
##### Miscellaneous
208
+
209
+
**`load_balance`**
210
+
211
+
(required, boolean) this option allows you to choose the behavior of the queue. Use the following values:
212
+
213
+
- **true** - splits the messages into several queues without duplication
214
+
- **false** - duplicates the messages into each queue - When using AMQP as message broker, take a look at the `multithreading`{.interpreted-text role="ref"} section and the `instances_threads` parameter.
215
+
216
+
**`rate_limit`**
217
+
218
+
(required, integer) time interval (in seconds) between messages processing. int value.
219
+
220
+
**`ssl_ca_certificate`**
221
+
222
+
(optional, string) trusted CA certificate for IMAP connections (supported by some bots).
SPDX-FileCopyrightText: 2025 Sebastian Wagner, Intevation GmbH <[email protected]>
4
+
SPDX-License-Identifier: AGPL-3.0-or-later
5
+
-->
6
+
7
+
The default IntelMQ Pipeline (the message exchange between bots) is [Redis](https://redis.io/) or its OpenSource successor [Valkey](https://valkey.io/).
8
+
9
+
For AMQP (RabbitMQ) see [Using AMQP Message Broker](../beta-features.md#using-amqp-message-broker) in the section about Beta features.
10
+
11
+
## Usage of databases
12
+
13
+
You can use any redis database for any purpose. There are no hardcoded defaults or other requirements in IntelMQ.
14
+
15
+
It's also possible to use the same database for two different bots. Just make sure, that their data doesn't collide.
16
+
17
+
These are some of the usages of redis databases using the IntelMQ default values:
18
+
19
+
- 2: Pipeline (Queues)
20
+
- 4: IntelMQ Tests
21
+
- 6: Deduplicator Expert
22
+
- 7: Reverse DNS Expert
23
+
- 8: RDAP Expert, Aggregate Expert
24
+
- 10: RIPE Expert
25
+
- 12: Shadowserver Reports API Collector
26
+
- 15: SMTP Batch Output
27
+
28
+
By default, Redis/valkey have a maximum of 16 databases (0-15). In it the Redis/valkey server configuration file, this value can be increased.
29
+
While the number of maximum databases [is unlimited](https://redis.io/docs/latest/embeds/how-many-databases-software/), the practical limit is INT_32.
30
+
31
+
## Setup tips
32
+
33
+
SWAP space should be bigger or equal to your memory. See also [Hardware requirements](../hardware-requirements.md).
34
+
35
+
### Redis memory overcommitting
36
+
37
+
It is [recommended](https://redis.io/docs/latest/operate/oss_and_stack/management/admin/#linux) to enable memory overcommitting for Redis.
38
+
39
+
Run `sysctl vm.overcommit_memory=1` to set it for the current session.
40
+
To enable it permanently, create a file with `vm.overcommit_memory = 1` in `/etc/sysctl.d/intelmq.conf`.
41
+
42
+
### Maxmemory
43
+
44
+
To limit the maximum memory used by Redis and also to mitigate possible downsides of memory overcommitting, you can set a maximum memory usage in the Redis/Valkey server configuration with setting `maxmemory <bytes>`.
0 commit comments