Build precise queries to find exactly what you need
Press ESC to close
Your review has been submitted and is pending approval.
A Nagios Plugin written for the Citrix NetScaler Application Delivery Controller. It's based on Perl (Monitoring::Plugin) and using the the NITRO REST API. No need for SNMP.
Current Version
v2.4.0
Last Release Date
2026-01-09
Owner
Simon Lauger
Website
https://github.com/slauger/check_netscaler
Download URL
License
Apache
Compatible With
Professional Nagios/Icinga monitoring plugin for Citrix NetScaler (ADC) using the NITRO REST API. Monitor your NetScaler infrastructure without SNMP dependencies.
KEY FEATURES
Comprehensive Monitoring: - Virtual Servers (LB, VPN, GSLB, CS, AAA) - state and health checks - Services & Service Groups - member quorum and availability - SSL Certificates - expiration tracking with customizable thresholds - High Availability - HA cluster status and synchronization - System Resources - CPU, memory, disk usage monitoring - Network Interfaces - status and performance metrics - License Management - expiration warnings - NTP Synchronization - time sync validation - Configuration - detect unsaved changes
Advanced Capabilities: - Regex-based filtering and object selection - Custom performance data labels - Flexible threshold definitions - Environment variable support for secure credential handling - All 16 original check commands fully implemented
INSTALLATION
From PyPI: pip install check_netscaler
From source: git clone https://github.com/slauger/check_netscaler.git cd check_netscaler && pip install .
Pre-built binaries available for Linux, macOS, Windows (no Python required)
REQUIREMENTS
- Python 3.8 - 3.12 - NetScaler NITRO API access (HTTPS recommended)
QUICK START EXAMPLES
Check load balancer virtual servers: check_netscaler -H 192.168.1.10 -u nsroot -p nsroot -C state -o lbvserver
Check SSL certificates (warn at 60 days, critical at 30 days): check_netscaler -H 192.168.1.10 -C sslcert -w 60 -c 30
Check CPU usage: check_netscaler -H 192.168.1.10 -C above -o system -n cpuusagepcnt -w 75 -c 90
WHAT'S NEW IN VERSION 2.0+
- Python-based - Replaces legacy Perl implementation - HTTPS by default - Secure by default configuration - Better performance - Optimized API calls and response parsing - Comprehensive test coverage - 377+ automated tests - CI/CD integration - Automated builds and releases - Pre-built binaries - No Python installation required
AVAILABLE COMMANDS
state, above, below, sslcert, hastatus, interfaces, servicegroup, perfdata, license, ntp, nsconfig, matches, matches_not, staserver, hwinfo, debug
DOCUMENTATION & SUPPORT
GitHub: https://github.com/slauger/check_netscaler PyPI: https://pypi.org/project/check_netscaler/ License: MIT
Complete command reference, usage examples, and Icinga2/Nagios integration guides included in repository.
Hi Slauger, thank you for this script. It works very well and most important, it works fast :) We have a problem with applying the regex filter. Can you help us with an example perhaps? [root@server /usr/local/nagios/libexec]$ ./check_netscaler.pl -H 1.2.3.4 -u username -p password -s -C state -o lbvserver NetScaler CRITICAL - state lbvserver: _httpredir_ DOWN; | UNKOWN=0;;;0; UP=28;;;0; 'OUT OF SERVICE'=0;;;0; DOWN=1;;;0; This is a hidden vServer which is apparently down by default and created by the NetScaler when the option "Redirect From Port" is used. The vServer in our case is listening on port 80 to redirect to 443. Since this is by design, we would like to add a filter to the check comment to ignore vServers which have _httpredir_ in the name. I tried to add various things like this, but that didn't work unfortunately: -f '/(?:[^*_httpredir_*]*)/' Hope you can help us with a regex example. Dennis
Hi, sorry for my late response. I didn't get a email notification for your comment. In the future please prefer an issue on GitHub. Anyways, the filter accepts any valid perl re syntax. For example, '_httpredir_.*', '_httpredir_' or '^_.*' should do the job.
Hello!, Great plugin, but I'm finding the following error when wanting to check the local license ./check_netscaler.pl -H x.x.x.x -s -C license -n FID__XXXX.lic -u user -p password -w 30 -c 10 NetScaler UNKNOWN - { "errorcode": 2138, "message": "Not authorized to execute this command [show system file FID__XXXX.lic -fileLocation "/nsconfig/license"]", "severity": "ERROR" } And when using user nsmonitor: NetScaler OK - license: CNS_SSE_SERVER never expires; CNS_V5_SERVER never expires;¿?¿?¿
Make sure that your monitoring user has the permissions to execute the NITRO command "systemfile". This mostly means to give the user full administrative permissions to your NetScaler. This is necessary because (currently) there is no native API endpoint to get informations about your installed license file.
You must be logged in to submit a review.
To:
From:
We’ve completely redesigned the world’s largest repository of Nagios plugins and monitoring tools. Join thousands of users sharing monitoring solutions for servers, applications, and everything in between.
Due to our redesign, all existing accounts require a password reset to access your account again.
Ready to explore 6,100+ projects and contribute to the community?
Reset Password Create Account
Happy Monitoring!