Telemetry via Sink HTTP
The Netify HTTP POST interface enables the delivery of real-time network telemetry and metadata from the DPI engine to external systems via standard HTTP requests. This method allows telemetry data to be pushed to web services, APIs, or automation platforms without maintaining a persistent connection.
For alternative methods of accessing network telemetry, see the related Netify Sink options.
License
The Netify Sink HTTP 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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
opkg update
opkg install netify-sink-http
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 HTTP:
opkg update
opkg install netify-sink-http
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 HTTP:
opkg update
opkg install netify-sink-http
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 HTTP:
opkg update
opkg install netify-sink-http
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 HTTP:
opkg update
opkg install netify-sink-http
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 HTTP:
sudo zypper update
sudo zypper install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo apt update
sudo apt install netify-sink-http
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 HTTP:
sudo yum update
sudo yum install netify-sink-http
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 HTTP:
sudo yum update
sudo yum install netify-sink-http
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 HTTP:
pkg update
pkg install netify-sink-http
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 HTTP:
pkg update
pkg install netify-sink-http
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 HTTP:
pkg update
pkg install netify-sink-http
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 HTTP:
pkg update
pkg install netify-sink-http
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 HTTP:
pkg update
pkg install netify-sink-http
Setup
All plugins are disabled by default, and the Netify Sink HTTP plugin is no different. Use the --enable-plugin and --disable-plugin parameters to enable or disable the plugin:
netifyd --enable-plugin sink-http
netifyd --disable-plugin sink-http
Alternatively, you can edit /etc/netifyd/plugins.d/10-netify-sink-http.conf and set enable to yes.
[sink-http]
enable = yes
plugin_library = /usr/lib64/libnetify-sink-http.so.0.0.0
conf_filename = ${path_state_persistent}/netify-sink-http.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.
timeout_connect
integerConnection timeout, equivalent to cURL's --connect-timeout parameter. Maximum time, in seconds, that the connection to the server can take.
timeout_transfer
integerMaximum time, in seconds, that is allowed for the entire operation to take, equivalent to cURL's --max-time argument.
channels
objectAn object array that defines one or more channels to be available to the core processors.
channel.enable
booleanEnable or disable sending data to the channel.
channel.timeout_connect
integerPer-channel connection timeout override.
channel.timeout_transfer
integerPer-channel transfer timeout override.
channel.url
stringThe URL to perform the POST operation to.
channel.headers
objectAn object containing one or more headers to add to the request.
Example HTTP Plugin Configuration
{
"timeout_connect": 30,
"timeout_transfer": 300,
"channels": {
"stats": {
"enable": true,
"timeout_connect": 30,
"timeout_transfer": 300,
"url": "https://sink.example.com/v1/",
"headers": {
"X-UUID": "${uuid_agent}",
"X-UUID-Serial": "${uuid_serial}"
}
}
}
}
Telemetry
With one or more sink outputs configured to receive data, the final step is to configure the agent to send telemetry.