Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22,869 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NetXMS β€” Enterprise-Grade Monitoring

Build Status License: GPL v2 Design Contributions Welcome

NetXMS is an open-source network and infrastructure monitoring and management solution that provides comprehensive performance and availability monitoring with flexible event processing, alerting, reporting, and graphing for all layers of IT infrastructure. It's a unified solution that can monitor and manage your entire IT infrastructure β€” from network switches to applications β€” all in one place.

πŸš€ Quick Start

πŸ—οΈ Architecture

Architecture

NetXMS follows a distributed architecture with a central management server, monitoring agents, and web/desktop clients. The system supports multiple deployment scenarios from single-server setups to large distributed environments.

✨ Key Features

🌐 Network Monitoring

  • Auto-discovery: Automatically discovers and adds network devices to NetXMS
  • Protocol support: SNMP (all versions), SSH, web services (XML, JSON, plain text)
  • Data collection: Collects information via ARP caches, routing tables, switch forwarding databases, LLDP, CDP, STP
  • Real-time updates: Automatically updates peer information for all registered hosts and devices
  • Advanced search: Provides searches for specific MAC or IP addresses, wireless access points, and wireless clients
  • Network visualization: Easy access to routing tables, MAC tables, VLAN information, IP route visualization, and network maps based on discovered data
  • Event correlation: Topology-based event correlations for intelligent alerting
  • Change detection: Configurable routing change detection
  • Device drivers: Vendor-specific information handling and unified presentation

πŸ–₯️ User Interface

  • Multi-platform clients: Desktop version available for Windows, macOS, and Linux
  • Web interface: Full-featured web-based console
  • Flexible visualization: Graphical network maps and user-configurable dashboards
  • Third-party integration: REST API and Java library enable integration with external tools like Grafana, plus built-in fanout drivers for InfluxDB, ClickHouse

πŸ–₯️ Server and Workstation Monitoring

  • Universal agents: Available for all popular platforms and operating systems
  • Centralized management: Configuration and upgrades, minimal system resources usage
  • Proxy capabilities: Acts as proxy for other agents and SNMP devices
  • Network-friendly: Two connection options with agents outbound or inbound, single TCP port, encrypted communication with local cache for unstable connections
  • Log monitoring: Real-time log file content analysis
  • Comprehensive metrics:
    • Network and I/O performance
    • Process, CPU, and memory consumption
    • Network services monitoring
    • Hardware sensors
    • Application-level metrics
    • Custom metrics support
    • And more...
  • Remote control: Integrated remote desktop, file transfer, and command execution
  • User support tools: Low-footprint helpdesk application with configurable actions, screenshots, and screencasts

🌍 Distributed Monitoring

  • Zone-based architecture: Divides networks into zones with overlapping subnets and proxy agents
  • High availability: Automatic load balancing and failover with multiple proxy agents per zone
  • Autonomous operation: Continues data collection when central management server is unavailable
  • Event forwarding: Receives syslog messages and SNMP traps for forwarding or local storage
  • Remote monitoring: Single TCP port connectivity for server-to-proxy-agent communication

πŸ”§ Built-in Scripting Engine (NXSL)

  • Advanced automation: Enables sophisticated automation and management capabilities
  • Hook scripts: Callable from multiple system locations for custom processing
  • Versatile applications: Data transformation, complex thresholds, event processing, SNMP trap transformation
  • Easy-to-learn: Non-strict typed interpreted language optimized for speed and low memory footprint
  • Secure execution: Each script runs in isolated VM with controlled access
  • High performance: Supports hundreds of simultaneous script executions

πŸ”— Integration Capabilities

  • Java API: Complete Java API for full system control and UI replacement
  • REST API: Access to collected data and NetXMS configuration
  • Modular architecture: Extensible agents and servers via plugins
  • Python scripting: Access to full Java API through Python
  • Helpdesk integration: Built-in integration with helpdesk systems

πŸ” Security Features

  • Flexible authentication: Internal database or external LDAP directory integration
  • Multiple auth methods: Passwords, X.509 certificates, smart cards, RADIUS, or LDAP
  • Two-factor authentication: TOTP or one-time codes via SMS/instant messaging
  • Encrypted communications: All network communications are encrypted
  • Access control: Fine-grained access control configuration
  • Audit logging: Extensive audit logs with optional external system integration

πŸ“Š Data and Event Processing

  • Policy-based processing: Flexible event processing with customizable policies
  • Automated responses: Alarm creation/termination, script execution, command execution
  • Multi-channel notifications: Email, MS Teams, Telegram, Slack, SMS via GSM modem or gateway
  • Escalation support: Configurable problem escalation workflows
  • Threshold management: Flexible threshold system for data collection
  • Template-based configuration: Simplified management of large networks

πŸ’Ό Business Services

  • Business metrics translation: Converts technical metrics to business language
  • SLA monitoring: View vital SLA information at a glance
  • Service status calculation: Based on monitored objects status or metric thresholds
  • Availability reporting: Calculate business service availability for arbitrary time ranges
  • Downtime analysis: Detailed downtime information including start/end times and causes

πŸ“¦ Installation

Note: Full installation documentation is available in our Administration Guide.

Quick Installation (Debian/Ubuntu)

We provide a public APT repository at http://packages.netxms.org/ for all Debian-based distributions. All packages are signed for security.

  1. Add NetXMS repository:

    wget http://packages.netxms.org/netxms-release-latest.deb
    sudo dpkg -i netxms-release-latest.deb
    sudo apt-get update
  2. Install NetXMS components (example for PostgreSQL):

    sudo apt-get install netxms-server netxms-dbdrv-pgsql
  3. Configure database connection in /etc/netxmsd.conf

  4. Initialize database schema:

    nxdbmgr init
  5. Start NetXMS server:

    sudo systemctl start netxmsd
    sudo systemctl enable netxmsd

Other Platforms

Installers for Windows, AIX, Solaris, and other platforms are available on netxms.org.

Docker

# Quick start with Docker Compose
git clone https://github.com/netxms/netxms.git
cd netxms/contrib/docker
docker-compose up -d

Updating an Installed System Directly from Sources

When you build in a prefix that already contains an installed NetXMS (for example /usr/local), always run

make -j$(nproc) install

instead of a bare make followed by a separate make install.

NetXMS internal libraries (libnetxms, libnxdb, libnxsrv, and others) are parts of a single product and are always built together β€” binary compatibility between them is neither promised nor supported across builds. The linker on Linux searches the system library directories as well, so with a previous version installed under the same prefix it can pick up an already installed library instead of the one just built, and the link fails with undefined symbols. The install target builds and installs each directory before moving on to the next, so the freshly built libraries are already in place when the binaries that need them are linked.

Alternatively, build into an empty target directory (./configure --prefix=/path/to/empty/dir && make -j$(nproc) install) and copy the resulting files to the runtime system.

πŸ“š Documentation

πŸ†˜ Support

Community Support

Commercial Support

🀝 Contributing

We welcome contributions from the community! NetXMS follows an issue-first approach and values privacy, performance, and modular architecture.

Before contributing, please read our guides:

CONTRIBUTING.md includes:

  • Project vision and core values
  • Development priorities and guidelines
  • Required issue-first workflow
  • Code standards and testing requirements
  • Development setup instructions

DESIGN.md includes:

  • UI/UX design guidelines and resources
  • Core UX Issues Needing Attention
  • Target Audience

Quick links for contributors:

πŸ“„ License

Most parts of NetXMS are licensed under the GNU General Public License, with some exclusions. See COPYING for detailed information.


Website β€’ Download β€’ Documentation β€’ Demo

Made with ❀️ by the NetXMS community

About

NetXMS - Open Source network and infrastructure monitoring and management

Topics

Resources

Contributing

Stars

390 stars

Watchers

8 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages