The SignifAI Community Hub

Welcome to the SignifAI Community Hub.
This is the place for you to find something new, express your thoughts, share and collaborate with other people. You'll find comprehensive guides and documentation to help you start working with SignifAI as quickly as possible, as well as support if you get stuck. Let's jump right in!


Integrating with Nagios monitoring system

Integrating with Nagios

Nagios is a free and open source computer-software application that monitors systems, networks, and infrastructure. It alerts users upon issue creation and resolution.
With SignifAI Deep Knowledge™ engine, you can integrate all Nagios alerts into higher level issues which are automatically correlated, enriched, and prioritized with any other data stream coming from your infrastructure.
SignifAI also runs anomaly detection on your Nagios checks as part of the integration.


We currently integrate with Nagios using an agent that pulls all data from the Nagios status.dat file. Monitoring the status.dat file on the main Nagios server provides couple of advantages:

  1. In case of a large distributed cluster installation with consolidation of events in any number of nodes, we only require installation of the agent on those main nodes.
  2. status.dat is the only place guaranteed to track any acknowledgements, state changes, service state changes and hosts state changes.
  3. With simple agent configuration, it is possible to filter for specific events as needed.

SignifAI Agent for Nagios

Instead of writing a dedicated Python data collector for Nagios, we have strategically decided to merge our efforts with an existing solid agent framework adopted by the Open Source community. To learn more about it read our Snap Open Telemetry Framework page. We have extended the framework to create a Nagios Collector Plugin for Snap as well as a Snap Processor Plugin to reduce duplicate events.

RPM Installation

We currently support RPM packages for Linux RedHat and CentOS version 6.8 and above.

  1. Download this script
  2. As root, run the following:
    sh ./ -a <API KEY> -n <PATH TO STATUS.DAT>
    Make sure you grab your API KEY from the Nagios sensor section.
    The script will install all required packages and creates the service.

What Will Be Installed?

The download script will install the following packages:

  • signifai-snap-plugin-publisher-signifai
  • signifai-snap-plugin-processor-split-regexp
  • signifai-snap-plugin-processor-logs-regexp
  • signifai-snap-plugin-collector-nagios
  • Go packages in case they are not installed already

Make sure to edit you task file under /opt/signifai/snap/tasks/nagios-longoutput-to-signifai.yaml
Last restart the service service snap-telemetry restart

Building for any OS version

You will need to install 3 plugins:

  1. SignifAI Snap Nagios Plun-In: you can find full installation details here.
  2. The duplication processor plug-in (to avoid alerts duplications) - you can find full installation details here.
  3. The Snap SignifAI Publisher. You can find full installation details here


We currently require installing both the collector and the processor to avoid duplication and very large amount of information to transmit over the wire.
That way, ONLY new events will be sent to the SignifAI backend.


There are few parameters we allow you to change based on your requirements in the Snap task definition:

  1. Collection interval. Where you can change the parameter interval: "10s". Usually 10 seconds collection interval is enough but you can increase or decrease it based on your needs.
  2. You can change the collected metrics:
         /nagios/*/acknowledged: {} 
         /nagios/*/state: {}
         /nagios/*/services/*/acknowledged: {}
         /nagios/*/services/*/state: {}

Supporting the Nagios long_plugin_output Option

Nagios supports writing your own plugin extension which will pretty much can do and output any type of information. This is very useful for custom checks and custom output information to be included in the incident.
SignifAI Nagios collector supports the long plugin output option by allowing you to specify a regex split filter, which will parse the information only for that part and send it to the SignifAI backend as additional attributes.
This capability is extremely important for customers who have already invested in their Nagios deployment and wish to achieve the highest value from integrating their own custom logic and outputs with SignifAI.

At a minimum, plugins should return at least one line of text output. Beginning with Nagios Core 3, plugins can optionally return multiple lines of output. Plugins may also return optional performance data that can be processed by external applications.

Plugin Output Length Restrictions

Nagios Core will only read the first 4 KB of data that a plugin returns. This is done in order to prevent runaway plugins from dumping megs or gigs of data back to Nagios Core. This 4 KB output limit is fairly easy to change if you need. Simply edit the value of the MAX_PLUGIN_OUTPUT_LENGTH definition in the include/ file of the source code distribution and recompile Nagios Core.

The following task file is a full example of a configuration file that specify all the Nagios configuration, metrics to collect, enabling the metric-repeat-filter in order to remove duplications before sending the data to SignifAI, a split-regexp plugin to determine exactly where to start parsing the longoutput option and last, enabling the regexp_log plugin with a simple JSON example parsing.

  version: 1
    type: "simple"
    interval: "60s"
          status_file: $PATH_TO_STATUS_DAT$
        /nagios/*/long_plugin_output: {}
        /nagios/*/services/*/long_plugin_output: {}
        - plugin_name: "metric-repeat-filter"
            - plugin_name: "split-regexp"
                regexp_split: \[[A-Za-z0-9:_-]*\]
                - plugin_name: "logs-regexp"
                    regexp_log: "^.*{(?:.*\"appname\": \"(?P<application_name>[^\"]*)\"
                    - plugin_name: signifai-publisher
                        host: $HOSTNAME$
                        token: $TOKEN$
                        api: metrics

For the full regexp_log plugin capabilities and syntax please review this link. Make sure you are reviewing it carefully if you wish SignifAI to collect and automatically parse your valuable information.

SignifAI Hints

If you are using the long output option and writing your own script of health check, we strongly advise to make sure your attribute names are are matching to at least some of the SignifAI auto-correlation attributes. That's important so that no additional configuration is needed in order to correlate between your custom checks attributes and any other system you are adding to SignifAI.
The following attributes will be automatically correlated:

  • application_name
  • datacenter_name
  • datacenter_status
  • host_name

Note - this list is flexible. If you need anything else please contact us.

Nagios long_plugin_output Supported Version

Note - SignifAI currently support Nagios version 3.5.1 and above. Also, as of Nagios 4.x the default 4K limit has been doubled to 8K. Any additional information will be truncated. If you wish to make sure you receive your most valuable information, prioritize those fields first and annotate them at the beginning of the message.

Need help with the integration?

Contact us at: and we will be happy to help.


Integrating with Nagios monitoring system