Telemetry via Sink MQTT

The Netify MQTT Plugin enables the publishing of real-time network telemetry and metadata from the DPI engine to a message queue. Using the message queue's publish/subscribe (Pub/Sub) architecture, the plugin efficiently distributes telemetry streams to multiple subscribers without requiring persistent, resource-intensive point-to-point connections.

For alternative methods of accessing network telemetry, see the related Netify Sink options.


License

The Netify Sink MQTT plugin is a proprietary plugin requiring a license. Please contact us for details.


Installation

Netify plugins are distributed through the same packaging workflow as the Netify Agent, allowing for a consistent installation experience using standard package manager syntax. While pre-compiled binaries are readily available for x86_64 architectures via our public mirrors, support for ARM, MIPS, and other specialized architectures is available upon request. Please contact us for details.

Step 1 - Select your installation target:

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo apt-get update
sudo apt-get -y install curl gnupg2
sudo curl https://download.netify.ai/5/debian/netify-archive-keyring.gpg -o /usr/share/keyrings/netify-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netify-archive-keyring.gpg] http://download.netify.ai/5/debian/12/ /' | sudo tee /etc/apt/sources.list.d/netify.list

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo apt update
sudo apt install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo apt-get update
sudo apt-get -y install curl gnupg2
sudo curl https://download.netify.ai/5/debian/netify-archive-keyring.gpg -o /usr/share/keyrings/netify-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netify-archive-keyring.gpg] http://download.netify.ai/5/debian/11/ /' | sudo tee /etc/apt/sources.list.d/netify.list

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo apt update
sudo apt install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo apt-get update
sudo apt-get -y install curl gnupg2
sudo curl https://download.netify.ai/5/debian/netify-archive-keyring.gpg -o /usr/share/keyrings/netify-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netify-archive-keyring.gpg] http://download.netify.ai/5/debian/10/ /' | sudo tee /etc/apt/sources.list.d/netify.list

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo apt update
sudo apt install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo apt-get update
sudo apt-get -y install curl gnupg2
sudo curl https://download.netify.ai/5/ubuntu/netify-archive-keyring.gpg -o /usr/share/keyrings/netify-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netify-archive-keyring.gpg] http://download.netify.ai/5/ubuntu/noble/ /' | sudo tee /etc/apt/sources.list.d/netify.list

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo apt update
sudo apt install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo apt-get update
sudo apt-get -y install curl gnupg2
sudo curl https://download.netify.ai/5/ubuntu/netify-archive-keyring.gpg -o /usr/share/keyrings/netify-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netify-archive-keyring.gpg] http://download.netify.ai/5/ubuntu/jammy/ /' | sudo tee /etc/apt/sources.list.d/netify.list

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo apt update
sudo apt install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo apt-get update
sudo apt-get -y install curl gnupg2
curl -fsSL https://download.netify.ai/5/ubuntu/apt-gpg-key-netify.asc | sudo apt-key add -
echo 'deb http://download.netify.ai/5/ubuntu/focal/ /' | sudo tee /etc/apt/sources.list.d/netify.list

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo apt update
sudo apt install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
wget https://download.netify.ai/5/openwrt/key-build.pub -O /etc/opkg/keys/b18c240cb821dad2
echo 'src/gz netify https://download.netify.ai/5/openwrt/24.10/x86' >> /etc/opkg/customfeeds.conf

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
opkg update
opkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
wget https://download.netify.ai/5/openwrt/key-build.pub -O /etc/opkg/keys/b18c240cb821dad2
echo 'src/gz netify https://download.netify.ai/5/openwrt/23.05/x86' >> /etc/opkg/customfeeds.conf

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
opkg update
opkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
wget https://download.netify.ai/5/openwrt/key-build.pub -O /etc/opkg/keys/b18c240cb821dad2
echo 'src/gz netify https://download.netify.ai/5/openwrt/22.03/x86' >> /etc/opkg/customfeeds.conf

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
opkg update
opkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
wget https://download.netify.ai/5/openwrt/key-build.pub -O /etc/opkg/keys/b18c240cb821dad2
echo 'src/gz netify https://download.netify.ai/5/openwrt/21.02/x86' >> /etc/opkg/customfeeds.conf

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
opkg update
opkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
wget http://download.netify.ai/5/openwrt/key-build.pub -O /etc/opkg/keys/b18c240cb821dad2
echo 'src/gz netify http://download.netify.ai/5/openwrt/19.07/x86' >> /etc/opkg/customfeeds.conf

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
opkg update
opkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo rpm --import https://download.netify.ai/5/opensuse/15.6/stable/RPM-GPG-KEY-netify
sudo curl https://download.netify.ai/5/opensuse/netify.repo -o /etc/zypp/repos.d/repo-netify.repo

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo zypper update
sudo zypper install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo rpm --import https://download.netify.ai/5/opensuse/15.5/stable/RPM-GPG-KEY-netify
sudo curl https://download.netify.ai/5/opensuse/netify.repo -o /etc/zypp/repos.d/repo-netify.repo

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo zypper update
sudo zypper install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo rpm --import https://download.netify.ai/5/almalinux/9/stable/RPM-GPG-KEY-netify
sudo curl https://download.netify.ai/5/almalinux/9/netify.repo -o /etc/yum.repos.d/netify.repo

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo yum update
sudo yum install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo rpm --import https://download.netify.ai/5/almalinux/8/stable/RPM-GPG-KEY-netify
sudo curl https://download.netify.ai/5/almalinux/8/netify.repo -o /etc/yum.repos.d/netify.repo

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo yum update
sudo yum install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo rpm --import http://download.netify.ai/5/rockylinux/9/stable/RPM-GPG-KEY-netify
sudo curl https://download.netify.ai/5/rockylinux/9/netify.repo -o /etc/yum.repos.d/netify.repo

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo yum update
sudo yum install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
sudo rpm --import http://download.netify.ai/5/rockylinux/8/stable/RPM-GPG-KEY-netify
sudo curl https://download.netify.ai/5/rockylinux/8/netify.repo -o /etc/yum.repos.d/netify.repo

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
sudo yum update
sudo yum install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
mkdir -p /usr/local/etc/pkg/fingerprints/Netify/trusted
curl https://download.netify.ai/5/opnsense/fingerprint -o /usr/local/etc/pkg/fingerprints/Netify/trusted/fingerprint
cat << EOF >  /usr/local/etc/pkg/repos/Netify.conf
Netify: {
  fingerprints: "/usr/local/etc/pkg/fingerprints/Netify",
  url: "https://download.netify.ai/5/opnsense/25.7",
  signature_type: "fingerprints",
  mirror_type: "http",
  priority: 11,
  enabled: yes
}
EOF

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
pkg update
pkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
mkdir -p /usr/local/etc/pkg/fingerprints/Netify/trusted
curl https://download.netify.ai/5/opnsense/fingerprint -o /usr/local/etc/pkg/fingerprints/Netify/trusted/fingerprint
cat << EOF >  /usr/local/etc/pkg/repos/Netify.conf
Netify: {
  fingerprints: "/usr/local/etc/pkg/fingerprints/Netify",
  url: "https://download.netify.ai/5/opnsense/24.7",
  signature_type: "fingerprints",
  mirror_type: "http",
  priority: 11,
  enabled: yes
}
EOF

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
pkg update
pkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
mkdir -p /usr/local/etc/pkg/fingerprints/Netify/trusted
curl https://download.netify.ai/5/freebsd/fingerprint -o /usr/local/etc/pkg/fingerprints/Netify/trusted/fingerprint
cat << EOF >  /usr/local/etc/pkg/repos/Netify.conf
Netify: {
  fingerprints: "/usr/local/etc/pkg/fingerprints/Netify",
  url: "https://download.netify.ai/5/freebsd/15.0",
  signature_type: "fingerprints",
  mirror_type: "http",
  priority: 11,
  enabled: yes
}
EOF

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
pkg update
pkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
mkdir -p /usr/local/etc/pkg/fingerprints/Netify/trusted
curl https://download.netify.ai/5/freebsd/fingerprint -o /usr/local/etc/pkg/fingerprints/Netify/trusted/fingerprint
cat << EOF >  /usr/local/etc/pkg/repos/Netify.conf
Netify: {
  fingerprints: "/usr/local/etc/pkg/fingerprints/Netify",
  url: "https://download.netify.ai/5/freebsd/14.0",
  signature_type: "fingerprints",
  mirror_type: "http",
  priority: 11,
  enabled: yes
}
EOF

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
pkg update
pkg install netify-sink-mqtt

Step 2 - Add Netify's package signing key and repository:

Terminal - Netify
×
mkdir -p /usr/local/etc/pkg/fingerprints/Netify/trusted
curl https://download.netify.ai/5/freebsd/fingerprint -o /usr/local/etc/pkg/fingerprints/Netify/trusted/fingerprint
cat << EOF >  /usr/local/etc/pkg/repos/Netify.conf
Netify: {
  fingerprints: "/usr/local/etc/pkg/fingerprints/Netify",
  url: "https://download.netify.ai/5/freebsd/14.0",
  signature_type: "fingerprints",
  mirror_type: "http",
  priority: 11,
  enabled: yes
}
EOF

Step 3 - Install Netify Sink MQTT:

Terminal - Netify
×
pkg update
pkg install netify-sink-mqtt

Setup

To use the Netify Sink MQTT plugin, ensure your license.json includes the netify-sink-mqtt entitlement.

All plugins are disabled by default, and the Netify Sink MQTT plugin is no different. Use netifyd's --enable-plugin and --disable-plugin flags to enable or disable the plugin.

Terminal - Netify
×
netifyd --enable-plugin sink-mqtt  # Enables loader
netifyd --disable-plugin sink-mqtt # Disables loader

For orchestration tools or manual setup, you can also directly update configuration file in the plugins.d subdirectory and set enable to yes.

See the advanced configuration section for details on instantiating multiple instances of the plugin.

Terminal - Netify
×
$ cat 10-netify-sink-mqtt.conf
[sink-mqtt]
enable = yes
plugin_library = /usr/lib64/libnetify-sink-mqtt.so.0.0.0
conf_filename = ${path_state_persistent}/netify-sink-mqtt.json

AI Integration

For AI integration and machine learning models, the Netify Sink MQTT JSON schema is available for reference.

Configuration

The plugin is configured via the JSON file referenced by its loader (typically /etc/netifyd/netify-sink-mqtt.json ). You can use the built-in ${channel} variable to route different telemetry streams to separate topics. You can also append the Netify Agent’s UUID or serial number to ensure each instance publishes to a unique path.

The example below shows how to send flow and intelligence telemetery to distinct channels. If you need to create connections to more than one message queue server, see the advanced configuration documentation for plugins.

Built-in Variables
Channel
${channel}
Agent UUID
${uuid_agent}
Serial Number
${uuid_serial}

host

string

MQTT server hostname or IP address.

port

integer

Port used to connect to the MQTT server (typically 1883 for TCP or 8883 for SSL).

Default:
1883

user

string

Username used to authenticate with the MQTT server.

pass

string

Password used to authenticate with the MQTT server.

topic

string

Topic to publish messages to. Supports template variables.

message_qos

integer

QoS level: 0 (At most once), 1 (At least once), 2 (Exactly once).

Default:
1
Options:
0 1 2

message_retain

boolean

When true, the broker retains the last message on the topic for new subscribers.

Default:
false

MQTT Configuration: netify-sink-mqtt.json

{
    "host": "mq.example.com",
    "port": 1883,
    "user": "nobody",
    "pass": "secret",
    "topic": "netify/${channel}/${uuid_agent}",
    "message_qos": 1,
    "message_retain": false
}

Telemetry

With one or more sink outputs configured to receive data, the final step is to configure the agent to send telemetry.

Get Telemetry