From 586c051de91bfd11898bf9f51f3b81f8bf86b90c Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Mon, 16 Dec 2024 12:35:05 +0100 Subject: [PATCH 1/2] cluster: Add Cluster::publish() --- frameworks/cluster.rst | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/frameworks/cluster.rst b/frameworks/cluster.rst index a1846e112..bca9a3be5 100644 --- a/frameworks/cluster.rst +++ b/frameworks/cluster.rst @@ -329,10 +329,10 @@ function to publish events, including: - Description - Use - * - :zeek:see:`Broker::publish` + * - :zeek:see:`Cluster::publish` - Publishes an event at a given topic - Standard function to send an event to all nodes subscribed to a given - topic + topic. * - :zeek:see:`Cluster::publish_hrw` - Publishes an event to a node within a pool according to @@ -345,6 +345,25 @@ function to publish events, including: distribution strategy. - Generally used inside Zeek for multiple logger nodes. + * - :zeek:see:`Broker::publish` + - Publishes an event at a given topic + - Standard function to send an event to all nodes subscribed to a given + topic. + + Starting with Zeek 7.1, this function should only be used in + Broker-specific scripts. Use :zeek:see:`Cluster::publish` otherwise. + + +.. note:: + + The ``Cluster::publish`` function was added in Zeek 7.1. In contrast to + ``Broker:publish``, it publishes events even when a non-Broker cluster + backend is in use. Going forward, ``Cluster:publish`` should be preferred + over ``Broker::publish``, unless the script is specific to the Broker backend, + e.g. when interacting with an external application using native Python + bindings for Broker. + + An example sending an event from worker to manager: .. code-block:: zeek From b4b6b998081d0e0c19a059e01aa6d85cefb7c840 Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Mon, 16 Dec 2024 19:15:46 +0100 Subject: [PATCH 2/2] devel: Add notes about the ZeroMQ cluster backend implementation --- devel/cluster-backend-zeromq.rst | 120 ++++++++++++++++++++++++++ devel/index.rst | 1 + images/cluster/Makefile | 6 ++ images/cluster/README.md | 24 ++++++ images/cluster/zeromq-cluster.mermaid | 95 ++++++++++++++++++++ images/cluster/zeromq-cluster.png | Bin 0 -> 47509 bytes images/cluster/zeromq-logging.mermaid | 49 +++++++++++ images/cluster/zeromq-logging.png | Bin 0 -> 30770 bytes images/cluster/zeromq-pubsub.mermaid | 72 ++++++++++++++++ images/cluster/zeromq-pubsub.png | Bin 0 -> 44089 bytes 10 files changed, 367 insertions(+) create mode 100644 devel/cluster-backend-zeromq.rst create mode 100644 images/cluster/Makefile create mode 100644 images/cluster/README.md create mode 100644 images/cluster/zeromq-cluster.mermaid create mode 100644 images/cluster/zeromq-cluster.png create mode 100644 images/cluster/zeromq-logging.mermaid create mode 100644 images/cluster/zeromq-logging.png create mode 100644 images/cluster/zeromq-pubsub.mermaid create mode 100644 images/cluster/zeromq-pubsub.png diff --git a/devel/cluster-backend-zeromq.rst b/devel/cluster-backend-zeromq.rst new file mode 100644 index 000000000..c07c52378 --- /dev/null +++ b/devel/cluster-backend-zeromq.rst @@ -0,0 +1,120 @@ +.. _cluster_backend_zeromq: + +====================== +ZeroMQ Cluster Backend +====================== + +.. versionadded:: 7.1 + +*Experimental* + +Quickstart +========== + +To switch a Zeek cluster with a static cluster layout over to use ZeroMQ +as cluster backend, add the following snippet to ``local.zeek``: + +.. code-block:: zeek + + @load frameworks/cluster/backend/zeromq/connect + + +Note that the function :zeek:see:`Broker::publish` will be non-functional +and a warning emitted when used - use :zeek:see:`Cluster::publish` instead. + +By default, a configuration based on hard-coded endpoints and cluster layout +information is created. For more customization, refer to the module documentation +at :doc:`cluster/backend/zeromq/main.zeek `. + + +Architecture +============ + +Publish-Subscribe of Zeek Events +-------------------------------- + +The `ZeroMQ `_ based cluster backend uses a central +XPUB/XSUB broker for publish-subscribe functionality. Zeek events published +via :zeek:see:`Cluster::publish` are distributed by this central broker to +interested nodes. + +.. figure:: /images/cluster/zeromq-pubsub.png + + +As depicted in the figure above, each cluster node connects to the central +broker twice, once via its XPUB socket and once via its XSUB socket. This +results in two TCP connections from every cluster node to the central broker. +This setup allows every node in the cluster to see messages from all other +nodes, avoiding the need for cluster topology awareness. + +.. note:: + + Scalability of the central broker in production setups, but for small + clusters on a single node, may be fast enough. + +On a cluster node, the XPUB socket provides notifications about subscriptions +created by other nodes: For every subscription created by any node in +the cluster, the :zeek:see:`Cluster::Backend::ZeroMQ::subscription` event is +raised locally on every other node (unless another node had created the same +subscription previously). + +This mechanism is used to discover the existence of other cluster nodes by +matching the topics with the prefix for node specific subscriptions as produced +by :zeek:see:`Cluster::nodeid_topic`. + +As of now, the implementation of the central broker calls ZeroMQ's +``zmq::proxy()`` function to forward messages between the XPUB and +XSUB socket. + +While the diagram above indicates the central broker being deployed separately +from Zeek cluster nodes, by default the manager node will start and run this +broker using a separate thread. There's nothing that would prevent from running +a long running central broker independently from the Zeek cluster nodes, however. + +The serialization of Zeek events is done by the selected +:zeek:see:`Cluster::event_serializer` and is independent of ZeroMQ. +The central broker needs no knowledge about the chosen format, it is +only shuffling messages between nodes. + + +Logging +------- + +While remote events always pass through the central broker, nodes connect and +send log writes directly to logger nodes in a cluster. The ZeroMQ cluster backend +leverages ZeroMQ's pipeline pattern for this functionality. That is, logger nodes +(including the manager if configured using :zeek:see:`Cluster::manager_is_logger`) +open a ZeroMQ PULL socket to receive log writes. All other nodes connect their +PUSH socket to all available PULL sockets. These connections are separate from +the publish-subscribe setup outlined above. + +When sending log-writes over a PUSH socket, load balancing is done by ZeroMQ. +Individual cluster nodes do not have control over the decision which logger +node receives log writes at any given time. + +.. figure:: /images/cluster/zeromq-logging.png + +While the previous paragraph used "log writes", a single message to a logger +node actually contains a batch of log writes. The options :zeek:see:`Log::flush_interval` +and :zeek:see:`Log::write_buffer_size` control the frequency and maximum size +of these batches. + +The serialization format used to encode such batches is controlled by the +selected :zeek:see:`Cluster::log_serializer` and is independent of ZeroMQ. + +With the default serializer (:zeek:see:`Cluster::LOG_SERIALIZER_ZEEK_BIN_V1`), +every log batch on the wire has a header prepended that describes it. This allows +interpretation of log writes even by non-Zeek processes. This opens the possibility +to implement non-Zeek logger processes as long as the chosen serializer format +is understood by the receiving process. In the future, a JSON lines serialization +may be provided, allowing easier interpretation than a proprietary binary format. + + +Summary +------- + +Combining the diagrams above, the connections between the different socket +types in a Zeek cluster looks something like the following. + +.. figure:: /images/cluster/zeromq-cluster.png + diff --git a/devel/index.rst b/devel/index.rst index 4a9fbdb5b..c2249ed00 100644 --- a/devel/index.rst +++ b/devel/index.rst @@ -17,3 +17,4 @@ transient, etc. compared to other documentation). Documentation Guide contributors maintainers + cluster-backend-zeromq diff --git a/images/cluster/Makefile b/images/cluster/Makefile new file mode 100644 index 000000000..21fb7fb85 --- /dev/null +++ b/images/cluster/Makefile @@ -0,0 +1,6 @@ +MMDC?=./node_modules/.bin/mmdc + +%.png : %.mermaid + $(MMDC) -i $< -e png -o $@ + +all: zeromq-cluster.png zeromq-pubsub.png zeromq-logging.png diff --git a/images/cluster/README.md b/images/cluster/README.md new file mode 100644 index 000000000..ab93a3580 --- /dev/null +++ b/images/cluster/README.md @@ -0,0 +1,24 @@ +## Install mermaid-cli + + npm install @mermaid-js/mermaid-cli + +## Apparmor Errors + +If running ``mmdc`` fails under Linux (e.g. with Ubuntu 24.04) with apparmor +errors about ``userns_create`` in the ``demsg`` output, put the following into +``/etc/apparmor.d/chrome-headless`` + + # This profile allows everything and only exists to give the + # application a name instead of having the label "unconfined" + abi , + include + + profile chrome /home/awelzel/.cache/puppeteer/**/chrome-headless-shell flags=(unconfined) { + userns, + + # Site-specific additions and overrides. See local/README for details. + include if exists + } + + +See also: https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md#option-2_a-safer-way diff --git a/images/cluster/zeromq-cluster.mermaid b/images/cluster/zeromq-cluster.mermaid new file mode 100644 index 000000000..d5dd1bef8 --- /dev/null +++ b/images/cluster/zeromq-cluster.mermaid @@ -0,0 +1,95 @@ +graph TD + + w1-xpub-->broker-xsub + broker-xpub-->w1-xsub + + w2-xpub-->broker-xsub + broker-xpub-->w2-xsub + + w3-xpub-->broker-xsub + broker-xpub-->w3-xsub + + p1-xpub-->broker-xsub + broker-xpub-->p1-xsub + + p2-xpub-->broker-xsub + broker-xpub-->p2-xsub + + l1-xpub-->broker-xsub + broker-xpub-->l1-xsub + + l2-xpub-->broker-xsub + broker-xpub-->l2-xsub + + m-xpub-->broker-xsub + broker-xpub-->m-xsub + + %% Logging + w1-push-->l1-pull + w1-push-->l2-pull + w2-push-->l1-pull + w2-push-->l2-pull + w3-push-->l1-pull + w3-push-->l2-pull + p1-push-->l1-pull + p1-push-->l2-pull + p2-push-->l1-pull + p2-push-->l2-pull + m-push-->l1-pull + m-push-->l2-pull + +subgraph broker ["broker"] + broker-xpub((XPUB)) + broker-xsub((XSUB)) + broker-xpub-->broker-xsub + broker-xsub-->broker-xpub +end + + +subgraph l1 [logger-1] + l1-xpub((XPUB)) + l1-xsub((XSUB)) + l1-pull(PULL) +end + +subgraph l2 [logger-2] + l2-xpub((XPUB)) + l2-xsub((XSUB)) + l2-pull(PULL) +end + +subgraph manager + m-xpub((XPUB)) + m-xsub((XSUB)) + m-push(PUSH) +end + +subgraph p1 [proxy-1] + p1-xpub((XPUB)) + p1-xsub((XSUB)) + p1-push(PUSH) +end + +subgraph p2 [proxy-2] + p2-xpub((XPUB)) + p2-xsub((XSUB)) + p2-push(PUSH) +end + +subgraph w1 [worker-1] + w1-xpub((XPUB)) + w1-xsub((XSUB)) + w1-push(PUSH) +end + +subgraph w2 [worker-2] + w2-xpub((XPUB)) + w2-xsub((XSUB)) + w2-push(PUSH) +end + +subgraph w3 [worker-3] + w3-xpub((XPUB)) + w3-xsub((XSUB)) + w3-push(PUSH) +end diff --git a/images/cluster/zeromq-cluster.png b/images/cluster/zeromq-cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2af6502a479d93ab5e11a73132c1f071f1e8ae GIT binary patch literal 47509 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 + w1-push-->l2-pull + w2-push-->l1-pull + w2-push-->l2-pull + w3-push-->l1-pull + w3-push-->l2-pull + p1-push-->l1-pull + p1-push-->l2-pull + p2-push-->l1-pull + p2-push-->l2-pull + m-push-->l1-pull + m-push-->l2-pull + +subgraph l1 [logger-1] + l1-pull(PULL) +end + +subgraph l2 [logger-2] + l2-pull(PULL) +end + +subgraph m [manager] + m-push(PUSH) +end + +subgraph p1 [proxy-1] + p1-push(PUSH) +end + +subgraph p2 [proxy-2] + p2-push(PUSH) +end + +subgraph w1 [worker-1] + w1-push(PUSH) +end + +subgraph w2 [worker-2] + w2-push(PUSH) +end + +subgraph w3 [worker-3] + + w3-push(PUSH) +end + diff --git a/images/cluster/zeromq-logging.png b/images/cluster/zeromq-logging.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9e9afb3eebdf4d9b7be7af2ebc284c1b012915 GIT binary patch literal 30770 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 literal 0 HcmV?d00001 diff --git a/images/cluster/zeromq-pubsub.mermaid b/images/cluster/zeromq-pubsub.mermaid new file mode 100644 index 000000000..7710f8774 --- /dev/null +++ b/images/cluster/zeromq-pubsub.mermaid @@ -0,0 +1,72 @@ +graph TD + + w1-xpub-->broker-xsub + broker-xpub-->w1-xsub + + w2-xpub-->broker-xsub + broker-xpub-->w2-xsub + + w3-xpub-->broker-xsub + broker-xpub-->w3-xsub + + p1-xpub-->broker-xsub + broker-xpub-->p1-xsub + + p2-xpub-->broker-xsub + broker-xpub-->p2-xsub + + l1-xpub-->broker-xsub + broker-xpub-->l1-xsub + + l2-xpub-->broker-xsub + broker-xpub-->l2-xsub + + m-xpub-->broker-xsub + broker-xpub-->m-xsub + +subgraph broker ["broker"] + broker-xpub((XPUB)) + broker-xsub((XSUB)) + broker-xpub-->broker-xsub + broker-xsub-->broker-xpub +end + +subgraph l1 [logger-1] + l1-xpub((XPUB)) + l1-xsub((XSUB)) +end + +subgraph l2 [logger-2] + l2-xpub((XPUB)) + l2-xsub((XSUB)) +end +subgraph m [manager] + m-xpub((XPUB)) + m-xsub((XSUB)) +end + +subgraph p1 [proxy-1] + p1-xpub((XPUB)) + p1-xsub((XSUB)) +end + +subgraph p2 [proxy-2] + p2-xpub((XPUB)) + p2-xsub((XSUB)) +end + +subgraph w1 [worker-1] + w1-xpub((XPUB)) + w1-xsub((XSUB)) +end + +subgraph w2 [worker-2] + w2-xpub((XPUB)) + w2-xsub((XSUB)) +end + +subgraph w3 [worker-3] + w3-xpub((XPUB)) + w3-xsub((XSUB)) +end + diff --git a/images/cluster/zeromq-pubsub.png b/images/cluster/zeromq-pubsub.png new file mode 100644 index 0000000000000000000000000000000000000000..108946d75ac2fcd9d82299148ea575a971eec28f GIT binary patch literal 44089 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 Ogd!uMC=L@f3j80G5Q~}s literal 0 HcmV?d00001