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:

Terminal - Netify
×
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:

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

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

Terminal - Netify
×
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:

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

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

Terminal - Netify
×
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:

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

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

Terminal - Netify
×
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:

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

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

Terminal - Netify
×
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:

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

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

Terminal - Netify
×
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:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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/19.07/x86' >> /etc/opkg/customfeeds.conf

Step 3 - Install Netify Sink HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

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

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 HTTP:

Terminal - Netify
×
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:

Terminal - Netify
×
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.

Terminal - Netify
×
[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

integer

Connection timeout, equivalent to cURL's --connect-timeout parameter. Maximum time, in seconds, that the connection to the server can take.

timeout_transfer

integer

Maximum time, in seconds, that is allowed for the entire operation to take, equivalent to cURL's --max-time argument.

channels

object

An object array that defines one or more channels to be available to the core processors.

channel.enable

boolean

Enable or disable sending data to the channel.

channel.timeout_connect

integer

Per-channel connection timeout override.

channel.timeout_transfer

integer

Per-channel transfer timeout override.

channel.url

string

The URL to perform the POST operation to.

channel.headers

object

An 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.

Get Telemetry