Integrations
NetXMS
Overview
This document provides a detailed guide to integrating NetXMS with Callgoose SQIBS for real-time Incident Management, Incident Auto Remediation, and Event-Driven Automation. The integration enables the automatic creation, updating, and resolution of incidents in Callgoose SQIBS based on network events, threshold violations, and node status changes triggered in NetXMS.
The guide covers setting up actions in NetXMS, configuring webhook delivery via external scripts, creating API filters in Callgoose SQIBS, and troubleshooting the pipeline.
Prerequisites
- NetXMS Server: Access to a running NetXMS server with administrative privileges.
- Callgoose SQIBS Account: A valid account to set up API filters and escalation policies.
- Connectivity: The NetXMS server must have outbound HTTPS access to the Callgoose API.
- Tools: curl installed on the NetXMS server (to facilitate the webhook delivery).
1. Obtain API Token and Endpoint Details
To integrate with Callgoose SQIBS, you first need to obtain an API token and find the API endpoint details.
- Generate an API Token: Follow the guide on How to Create API Token in Callgoose SQIBS.
- Find the API Endpoint: Refer to the Callgoose SQIBS API Endpoint Documentation to get the endpoint details where the JSON payloads from Falco will be sent.
https://****.callgoose.com/v1/process?from=NetXMS&token=xxxx
2. Installing NetXMS
Ensure your NetXMS environment is ready. The installation varies by operating system.
2.1. For Linux (Debian/Ubuntu)
NetXMS provides official repositories for easy installation.
Bash
# 1. Install the NetXMS repository package wget https://packages.netxms.org/netxms-release-latest.deb sudo dpkg -i netxms-release-latest.deb sudo apt-get update # 2. Install the Server and Core components sudo apt-get install netxms-server netxms-dbdrv-pgsql
2.2. For Windows
- Download the NetXMS Installer from the official website.
- Run the installer and select NetXMS Server and Web Console.
- Complete the Database Configuration Wizard to initialize the backend.
3. Configuring the Notification Pipeline
NetXMS uses Actions to trigger external processes. We will create a script that formats NetXMS event data into a JSON payload for Callgoose SQIBS.
3.1. Create the Webhook Script
Create a script on your NetXMS server
(e.g., /opt/netxms/bin/callgoose_notify.sh).
Bash
#!/bin/bash
# NetXMS to Callgoose Notification Script
STATUS=$1 # "firing" or "resolved"
EVENT_ID=$2 # NetXMS %I
MESSAGE=$3 # NetXMS %m
NODE_NAME=$4 # NetXMS %n
URL="https://YOUR_SUBDOMAIN.callgoose.com/v1/process?from=NetXMS&token=YOUR_TOKEN"
PAYLOAD=$(cat <<EOF
{
"source": "netxms",
"status": "$STATUS",
"alert_id": "$EVENT_ID",
"summary": "NetXMS: $MESSAGE",
"node": "$NODE_NAME",
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
}
EOF
)
curl -X POST -H "Content-Type: application/json" -d "$PAYLOAD" "$URL"
Note: Ensure the script is executable: chmod +x /opt/netxms/bin/callgoose_notify.sh
3.2. Configure Actions in NetXMS Console
- Open the NetXMS Management Console.
- Go to Configuration → Action Configuration.
- Create Trigger Action:
- Name: Callgoose_Trigger
- Type: Execute command on management server
- Command: /opt/netxms/bin/callgoose_notify.sh "firing" "%I" "%m" "%n"
- Create Resolve Action:
- Name: Callgoose_Resolve
- Type: Execute command on management server
- Command: /opt/netxms/bin/callgoose_notify.sh "resolved" "%I" "%m" "%n"
4. Configuring Callgoose SQIBS
4.1. Example JSON Payloads from NetXMS
Alert Triggered
JSON
{
"source": "netxms",
"status": "firing",
"alert_id": "8821",
"summary": "NetXMS: Node Down (Critical)",
"node": "Core-Switch-01",
"timestamp": "2026-03-10T21:00:00Z"
}
4.2. Configuring API Filters
In Callgoose SQIBS, navigate to API > API Filter to define how these payloads create incidents.
4.2.1. Trigger Filter (For Creating Incidents)
- Payload JSON Key: status
- Key Value Contains: firing
- Map Incident With: alert_id
- Incident Title From: summary
- Incident Description From: node
4.2.2. Resolve Filter (For Resolving Incidents)
- Payload JSON Key: status
- Key Value Contains: resolved
- Incident Mapped With: alert_id
5. Verifying the Integration
- Trigger a Test Alert: In NetXMS, go to the Object Browser, right-click a test node, and select Poll → Status. Alternatively, manually trigger an event using the nxevent CLI tool: nxevent -u admin -p password localhost SYS_NODE_DOWN
- Check Callgoose Dashboard: Log in to Callgoose SQIBS. A new incident should appear with the status "Open" and the description of your test node.
- Verify Resolution: Trigger the corresponding "UP" event in NetXMS and verify the incident in Callgoose moves to "Resolved."
6. Adding Custom NetXMS Event Rules
NetXMS allows you to create specific Event Processing Policy (EPP) rules to filter what gets sent to Callgoose.
- Go to Configuration → Event Processing Policy.
- Create a new Rule.
- Condition: Select specific events (e.g., APP_ERROR, UPS_ON_BATTERY).
- Action: Add Callgoose_Trigger to the "Actions" list.
- Execution: Use "Stop Processing" if you want this to be the primary notification path.
7. Debugging and Troubleshooting
- Enable Debugging: In Callgoose SQIBS, update your API token settings to enable Debug Mode. This will log all incoming JSON payloads for 48 hours in the API Log.
- Check NetXMS Logs: Review netxmsd.log (usually in /var/log/netxms/) to see if the external command was executed successfully.
- Test Script Manually: Run the .sh script directly from the terminal with dummy arguments to ensure curl is working and the URL is correct.
- Mapping Issues: Ensure the alert_id used in the trigger payload is identical to the one sent in the resolve payload; otherwise, auto-resolution will fail.
9. Conclusion
- You have now successfully established a robust, bi-directional integration between NetXMS and Callgoose SQIBS. By leveraging NetXMS Actions and custom notification scripts, your network infrastructure monitoring is now seamlessly connected to your incident response workflow.
- Callgoose SQIBS API Token Documentation
- Callgoose SQIBS API Endpoint Documentation
- NetXMS documentation
- API Filter Instructions and FAQ
