Telemetry via Sink Socket
The Netify Sockets interface enables the direct streaming of real-time network telemetry and metadata from the DPI engine to client applications. It supports TCP sockets, UDP sockets, WebSockets, and file sockets, providing flexible options for both persistent, low-latency connections and local inter-process communication. This approach is ideal for custom integrations, live dashboards, or systems that require streaming telemetry data.
For alternative methods of accessing network telemetry, see the related Netify Sink options.
License
The Netify Sink Socket Plugin is open-source software. It can be licensed under the GPLv3 or a commercial 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:
curl -fsSL https://download.netify.ai/5/debian/apt-gpg-key-netify.asc | sudo apt-key add -
echo 'deb http://download.netify.ai/5/debian/12/ /' | sudo tee /etc/apt/sources.list.d/netify.list > /dev/null
Step 3 - Install Netify Sink Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
curl -fsSL https://download.netify.ai/5/debian/apt-gpg-key-netify.asc | sudo apt-key add -
echo 'deb http://download.netify.ai/5/debian/11/ /' | sudo tee /etc/apt/sources.list.d/netify.list > /dev/null
Step 3 - Install Netify Sink Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
curl -fsSL https://download.netify.ai/5/debian/apt-gpg-key-netify.asc | sudo apt-key add -
echo 'deb http://download.netify.ai/5/debian/10/ /' | sudo tee /etc/apt/sources.list.d/netify.list > /dev/null
Step 3 - Install Netify Sink Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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/noble/ /' | sudo tee /etc/apt/sources.list.d/netify.list > /dev/null
Step 3 - Install Netify Sink Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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/jammy/ /' | sudo tee /etc/apt/sources.list.d/netify.list > /dev/null
Step 3 - Install Netify Sink Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 > /dev/null
Step 3 - Install Netify Sink Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
opkg update
opkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
opkg update
opkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
opkg update
opkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
opkg update
opkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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/19.07/x86' >> /etc/opkg/customfeeds.conf
Step 3 - Install Netify Sink Socket:
opkg update
opkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
sudo zypper update
sudo zypper install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
sudo apt update
sudo apt install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
sudo yum update
sudo yum install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
sudo yum update
sudo yum install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
pkg update
pkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
pkg update
pkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
pkg update
pkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
pkg update
pkg install netify-sink-socket
Step 2 - Add Netify's package signing key and repository:
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 Socket:
pkg update
pkg install netify-sink-socket
Setup
All plugins are disabled by default, and the Netify Sink Socket plugin is no different. Use the --enable-plugin and --disable-plugin parameters to enable or disable the plugin:
netifyd --enable-plugin sink-socket
netifyd --disable-plugin sink-socket
Alternatively, you can edit /etc/netifyd/plugins.d/10-netify-sink-socket.conf and set enable to yes.
[sink-socket]
enable = yes
plugin_library = /usr/lib64/libnetify-sink-socket.so.0.0.0
conf_filename = ${path_state_persistent}/netify-sink-socket.json
Configuration
Once the plugin has been enabled, it can be configured using the defined JSON configuration file specified in the plugin loader configuration. Let's look at a sample configuration to review the syntax and parts of the file.
default_port
integerGlobal setting that sets the default port used for TCP and Web sockets.
- Default
- 1750
channels
objectAn object array that defines one or more channels to be available to the core processors.
channel.enable
booleanState for the output channel.
channel.bind_address
stringDefines socket type and location.
- Options
- unix://, tcp://, udp://, ws://
Example Socket Plugin Configuration
{
"default_port": 1750,
"channels": {
"default": {
"enable": true,
"bind_address": "tcp://0.0.0.0:1750"
}
}
}
Examples
Create a default channel to send processor data to a file socket.
Unix File Socket
{
"channels": {
"default": {
"enable": true,
"bind_address": "unix://${path_state_volatile}/netify-sink.sock"
}
}
}
Create a tcp channel to send processor data to a TCP socket listening on port 1750.
TCP Socket
{
"channels": {
"tcp": {
"enable": true,
"bind_address": "tcp://0.0.0.0:1750"
}
}
}
Create a web channel to send processor data to a WebSocket listening on port 1760.
WebSocket
{
"channels": {
"web": {
"enable": true,
"bind_address": "ws://0.0.0.0:1760"
}
}
}
Telemetry
With one or more sink outputs configured to receive data, the final step is to configure the agent to send telemetry.