Sink HTTP
Netify Sink HTTP Plugin
Introduction
The HTTP sink plugin is a RESTful client, able to post structured JSON data to an API endpoint.
License
The Netify Sink HTTP Plugin is open-source software. It can be dual-licensed under the GPLv3 or a commercial license. Please contact us for details.
Installation
Netify plugins are packaged in the same workflow as the agent and can be installed using a similar syntax that was implemented during the installation of the Netify agent. Plugins are compiled and made available for x86 on mirrors. For other architectures like ARM and MIPS, please contact us
Select your installation target for specific instructions on how to install this plugin.
AlmaLinux OS 9
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
AlmaLinux OS 8
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
Debian 12 (Bookworm)
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
Debian 11 (Bullseye)
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
Debian 10 (Buster)
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
OpenWRT 24.10
Step 1 - 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 2 - Install Netify Sink HTTP
opkg update
opkg install netify-sink-http
OpenWRT 23.05
Step 1 - 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 2 - Install Netify Sink HTTP
opkg update
opkg install netify-sink-http
OpenWRT 22.03
Step 1 - 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 2 - Install Netify Sink HTTP
opkg update
opkg install netify-sink-http
OpenWRT 21.02
Step 1 - 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 2 - Install Netify Sink HTTP
opkg update
opkg install netify-sink-http
OpenWRT 19.07
Step 1 - 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 2 - Install Netify Sink HTTP
opkg update
opkg install netify-sink-http
OPNsense 25.7 (Visionary Viper)
Step 1 - 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 2 - Install Netify Sink HTTP
pkg update
pkg install netify-sink-http
OPNsense 24.7 (Thriving Tiger)
Step 1 - 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 2 - Install Netify Sink HTTP
pkg update
pkg install netify-sink-http
openSUSE 15.5
Step 1 - 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 2 - Install Netify Sink HTTP
sudo zypper update
sudo zypper install netify-sink-http
pfSense Plus 24.x
Step 1 - 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 2 - Install Netify Sink HTTP
pkg update
pkg install netify-sink-http
pfSense Plus 23.x
Step 1 - 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 2 - Install Netify Sink HTTP
pkg update
pkg install netify-sink-http
pfSense CE 2.7.x
Step 1 - 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 2 - Install Netify Sink HTTP
pkg update
pkg install netify-sink-http
Rocky Linux 9
Step 1 - 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 2 - Install Netify Sink HTTP
sudo yum update
sudo yum install netify-sink-http
Rocky Linux 8
Step 1 - 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 2 - Install Netify Sink HTTP
sudo yum update
sudo yum install netify-sink-http
Ubuntu 24.04 (Noble)
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
Ubuntu 22.04 (Jammy)
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
Ubuntu 20.04 (Focal)
Step 1 - 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 2 - Install Netify Sink HTTP
sudo apt update
sudo apt install netify-sink-http
Configuration
Plugin Loader Configuration
All plugins are disabled by default, and the Netify Sink HTTP plugin is no different. To enable:
netifyd --enable-plugin sink-http
Alternatively, you can edit /etc/netifyd/plugins.d/10-netify-sink-http.conf and set enable to yes.
# Netify Agent HTTP Sink Plugin Loader
# Copyright (C) 2023 eGloo Incorporated
#
# This is free software, licensed under the GNU General Public License v3.
#
##############################################################################
[sink-http]
enable = yes
plugin_library = /usr/lib64/libnetify-sink-http.so.0.0.0
conf_filename = ${path_state_persistent}/netify-sink-http.json
# vim: set ft=dosini :
Plugin 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 configuration sample to review the syntax and parts of the file.
{
"timeout_connect": 30,
"timeout_transfer": 300,
"channels": {
"legacy": {
"enable": true,
"timeout_connect": 30,
"timeout_transfer": 300,
"url": "https://sink.netify.ai/v1/",
"headers": {
"x-vendor-id": "EG",
"X-UUID": "${uuid_agent}",
"X-UUID-Site": "${uuid_site}",
"X-UUID-Serial": "${uuid_serial}"
}
}
}
}
| Property | timeout_connect |
|---|---|
| Description | Connection timeout, equivalent to cURL's --connect-timeout parameter. Maximum time, in seconds, that you allow the connection to the server to take. |
| Type | unsigned |
| Property | timeout_transfer |
|---|---|
| Description | Maximum time, in seconds, that is allowed for the entire operation to take, equivalent to cURL's --max-time argument. |
| Type | unsigned |
| Property | channels |
|---|---|
| Description | An object array that defines one or more channels to be available to the core processors. |
| Type | object |
| Options | Depends on local configuration (see Channel Objects section below). Each channel object is keyed. |
Channel Objects
The Log Sink's channel object list determines which instances to log to. In the example above, we are defining only one, the legacychannel.
Let's take a closer look at the configuration.
| Property | enable |
|---|---|
| Description | Enables or disables sending data to the channel. |
| Type | boolean |
| Property | timeout_connect |
|---|---|
| Description | See global section above. |
| Type | unsigned |
| Property | timeout_transfer |
|---|---|
| Description | See global section above. |
| Type | unsigned |
| Property | url |
|---|---|
| Description | The URL to perform the POST operation to. |
| Type | unsigned |
| Property | headers |
|---|---|
| Description | An object containing one or more headers to add to the Request. |
| Type | object |