Troubleshooting

Systemd

For systems using Systemd, check the status for any helpful information.

sudo systemctl status netifyd
○ netifyd.service - Netify Agent
     Loaded: loaded (/lib/systemd/system/netifyd.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:netifyd(8)
             man:netifyd.conf(5)
             https://netify.ai/

Oct 13 10:40:53 netifyd[6590]: sink-socket: Netify Socket Sink Plugin v1.0.42 Copyright (C) 2021-2024 eGloo Incorporated.
Oct 13 10:40:53 netifyd[6590]: netify-proc-python: License status changed from no license to valid.
Oct 13 10:40:53 netifyd[6590]: Plugin has terminated: proc-aggregator: /usr/lib/x86_64-linux-gnu/libnetify-proc-aggregator.so
Oct 13 10:40:54 netifyd[6590]: sink-mqtt: MQ connect: 192.168.71.173:1883: Connection refused [14]
Oct 13 10:40:54 netifyd[6590]: Plugin has terminated: proc-core: /usr/lib/x86_64-linux-gnu/libnetify-proc-core.so.0.0.0
Oct 13 10:40:54 netifyd[6590]: Plugin has terminated: proc-nfa: /usr/lib/x86_64-linux-gnu/libnetify-proc-flow-actions.so
Oct 13 10:40:54 netifyd[6590]: Plugin has terminated: proc-python: /usr/lib/x86_64-linux-gnu//libnetify-proc-python.so.0.0.0
Oct 13 10:40:54 netifyd[6590]: nd-instance: Exit on error: 1
Oct 13 10:40:55 netifyd[6590]: sink-mqtt: MQ connect: 192.168.71.173:1883: Connection refused [14]
Oct 13 10:40:56 systemd[1]: netifyd.service: Deactivated successfully.

Init

For systems using Init, check the status using the Netify init script.

/etc/init.d/netifyd status

Netify Daemon Flags

Netify's command line wrapper for the daemon, netifyd, can be a valuable source of information into the inner workings, configuration and status of the agent running in the background.

Version

Use the -V flag to display version information of the agent as well as plugin status. In many cases, unexpected results are simply a result of forgetting to enable a plugin.

sudo netifyd -V
Netify Agent/5.0.55-HEAD-2613-33cec546 (debian; linux-gnu; x86_64; conntrack; netlink; dns-cache; tpv3; tcmalloc; regex)
https://www.netify.ai/

This application uses nDPI v4.9.0
https://www.ntop.org/products/deep-packet-inspection/ndpi/
https://github.com/ntop/nDPI

  This program comes with ABSOLUTELY NO WARRANTY.
  Netifyd is dual-licensed under commercial and open source licenses. The
  commercial license gives you the full rights to create and distribute software
  on your own terms without any open source license obligations.

  Netifyd is also available under GPL and LGPL open source licenses.  The open
  source licensing is ideal for student/academic purposes, hobby projects,
  internal research project, or other projects where all open source license
  obligations can be met.

Report bugs to: https://gitlab.com/netify.ai/public/netify-agent/issues

Processor plugins:

 proc-core/1.0.64
    /etc/netifyd/netify-proc-core.json
    /usr/lib/x86_64-linux-gnu/libnetify-proc-core.so.0.0.0

Sink plugins:

 sink-http/1.0.43
    /etc/netifyd/netify-sink-http.json
    /usr/lib/x86_64-linux-gnu/libnetify-sink-http.so.0.0.0
 sink-socket/1.0.42
    /etc/netifyd/netify-sink-socket.json
    /usr/lib/x86_64-linux-gnu/libnetify-sink-socket.so.0.0.0

For example, if you are expecting the Netify Flow Actions plugin to be creating an ipset and populating it based on criteria you've set and it is not performing this action, the above output indicates the Flow Actions plugin is not enabled.

Status

Use the -s flag to display agent and plugin status information.

sudo netifyd -s

Debug

Use the -d flag to run the Netify agent in the foreground (instead of as a background daemond) - detailed information will be displayed at every stage of the startup sequence and continue into the traffic analysis.

sudo netifyd -d

To stop this process, click CTRL-c.

Process Status

Use the ps command to show any running Netify processes. Note whether the PID is changing, indicating an agent that is restarting.

ps afxw | grep netifyd

Logs

The Netify agent logs to standard tools in use, as per the platform it was installed on. Consult the log files frequently when making initial changes to configuration files and reloading/restarting the agent to catch any errors you may have introduced. It is recommended to tail the log file, using grep to filter out unnecesssary output.

Linux Mainstream Distros

cat /var/log/syslog | grep netifyd

OpenWRT

logread | grep netifyd

Common Issues

Below are the most common issues encountered when using Netify for the first time along with actions to take to resolve.

Poor Classification

If you are observing poort application classification rates, it possible you are using the Open Source application signatures. To determine if this is the case, run:

netifyd -s | grep apps
• apps: 1861, domains: 17776, networks: 4639, soft-dissectors: 35, transforms: 1

An apps count in the first column of less than 200 indicates the use of the open source list. Subsribe to Netify Informatics or contact our sales team to inquire about licensing the commercial application signature list.

Daemon Restarting / Instability

The default Systemd and Init scripts are configured to restart the agent if the agent stops without any user interaction. This behaviour can be useful to ensure the daemon is running at all times, however, it can cause an adminstrator to incorrectly conclude the daemon is 'crashing', when in fact, there is a valid condition that causes the agent to terminate itself. The most common causes of the agent stopping are listed below.

No Capture Interfaces

Using the command netifyd -s, check for the existance of a warning message:

✗ No capture sources (interfaces) configured.

To resolve this issue, make sure one or more interfaces are defined.

Configuration Syntax

One or more configuration files have invalid JSON. Check your syslog (logread for OpenWRT platforms) for details...for example:

grep netifyd /var/log/syslog

Oct 13 10:40:53 [netifyd]: proc-aggregator: Netify Flow Aggregator Processor Plugin v1.0.55 Copyright (C) 2021-2024 eGloo Incorporated.
Oct 13 10:40:53 [netifyd]: proc-aggregator: Exception: proc-aggregator: /etc/netifyd/netify-proc-aggregator.json: JSON exception: [json.exception.parse_error.101] parse error at line 12
..
.
Oct 13 10:40:54 [netifyd]: nd-instance: Exit on error: 1

To resolve this issue, fix any configuration file that is not valid and restart the agent.

Foreground Netifyd Process

If you're like many admins, having multiple terminals open is common pratice, especially when evaluating a piece of software. If you are seeing 'strange' behaviour, do a quick check that you don't have any other netifyd processes running.

ps afxw | grep netifyd
8406 pts/1    S+     0:00  |       \_ grep --color=auto netifyd
8374 ?        Ssl    0:00  \_ netifyd help

To resolve this issue, kill (by pid) any netifyd processes that you don't recognize:

kill -9 8374

Licensing Issue

If you are using Netify plugins that require a license, check that your license:

  • Has not expired
  • Has been signed by eGloo

To check the status of your license, the Netify agent must be running, then run netifyd -s.

netifyd -s
[200~Netify Agent/5.0.55-HEAD-2613-33cec546 (debian; linux-gnu; x86_64; conntrack; netlink; dns-cache; tpv3; tcmalloc; regex)
✓ agent is running: PID 8759
..
.
proc-core/1.0.64 (processor)
proc-nfa/1.0.79 (processor)
✓ license status: valid
proc-python/1.0.14 (processor)
✓ license status: valid
sink-http/1.0.43 (sink)
sink-log/1.0.41 (sink)
sink-mqtt/1.0.51 (sink)
✓ license status: valid
sink-socket/1.0.42 (sink)

To resolve any licensing issue, please contact our sales team.

Technical Support

In order to help us help you, please include the following information with any support ticket:

  • Operating system and version of the host (ex. Debian 12)
  • Host environment (ex. Bare Metal [AWS EC2, x86-64, ARM64 etc.], Virtual Machine [KVM, VirtualBox etc.] or Container [Docker, LXC etc.])
  • Output from netifyd -V
  • Output from netifyd -s (while netifyd is running)
  • Output from any log, systemd or init output that appears relevant
  • Attach any relevant JSON configuration file (ex. if you are having an issue with socket output, include /etc/netifyd/netify-sink-socket.json as well as the configuration file from any processory sending data to the sink)
  • Your Netify Informatics account (if relevant)

To open a support ticket, please email support@netify.ai.

Further Reading

Technical Support

Haven't found the answers you're looking for?

Contact Us