Package: base/frameworks/cluster
The cluster framework provides for establishing and controlling a cluster of Zeek instances.
base/frameworks/cluster/pubsub.zeek
base/frameworks/cluster/types.zeek
base/frameworks/cluster/__load__.zeek
base/frameworks/cluster/main.zeek
A framework for establishing and controlling a cluster of Zeek instances. In order to use the cluster framework, a script named
cluster-layout.zeekmust exist somewhere in Zeek’s script search path which has a cluster definition of theCluster::nodesvariable. TheCLUSTER_NODEenvironment variable orCluster::nodemust also be sent and the cluster framework loaded as a package like@load base/frameworks/cluster.Warning
The file
cluster-layout.zeekshould only contain the definition ofCluster::nodes. Specifically, avoid loading other Zeek scripts or usingredeffor anything butCluster::nodes.Due to
cluster-layout.zeekbeing loaded very early, it is easy to introduce circular loading issues.
base/frameworks/cluster/pools.zeek
Defines an interface for managing pools of cluster nodes. Pools are a useful way to distribute work or data among nodes within a cluster.
base/frameworks/cluster/publish-on-change.zeek
Supporting script code for the &publish_on_change attribute.
base/frameworks/cluster/telemetry.zeek
base/frameworks/cluster/nodes/logger.zeek
This is the core Zeek script to support the notion of a cluster logger.
The logger is passive (other Zeek instances connect to us), and once connected the logger receives logs from other Zeek instances. This script will be automatically loaded if necessary based on the type of node being started. This is where the cluster logger sets it’s specific settings for other frameworks and in the core.