Xitoring Document
Home
FAQ
Support
Register
Home
FAQ
Support
Register
  • Xitoring

    • Introduction
    • Release Notes
    • Xitoring Release Notes
    • Linux Xitogent Release Notes
    • Windows Xitogent Release Notes
    • Xitoring Mobile App Release Notes
    • Account Management
    • API Access & Automation
    • Team Management & Collaboration
    • Billing & Subscription Management
  • Getting Started

    • Getting Started with Xitoring
    • Workflows & Guides
    • Monitor Your First Server
    • Import / Migration
    • Migrate from UptimeRobot to Xitoring
    • Migrate from Pingdom to Xitoring
    • Migrate from Uptime.com to Xitoring
    • Migrate from BetterStack to Xitoring
  • Help & Support

    • FAQ & Troubleshooting
    • Glossary
  • Server Monitoring

    • Server Monitoring
    • Graphs
    • Live Statistics
    • Monitor Services
    • Auto-Triggers
  • Xitogent on Linux

    • Install Xitogent on Linux
    • Update Xitogent on Linux
    • Uninstall Xitogent on Linux
  • Xitogent on Windows

    • Install Xitogent on Windows
    • Uninstall Xitogent on Windows
    • Xitogent Service
    • Update Xitogent on Windows
    • Disk Performance (I/O)
  • Xitogent on Azure

    • Xitogent on Azure
    • Monitor Azure Linux VM
    • Monitor Azure Windows VM
  • Xitogent CLI

    • Xitogent CLI
    • Xitogent Pause/Unpause
    • Xitogent Status
    • Xitogent debug
    • Xitogent Diagnosis
    • Which data we collect
  • Xitoring CLI

    • Xitoring CLI
  • Uptime Monitoring

    • What is Uptime Monitoring
    • Monitoring Nodes (Geographic Locations)
    • What is Check
    • Auto-Discovery
    • Auto Fault Tolerance
    • Heartbeat Check
    • Ping Check
    • HTTP(S) Check
    • DNS Check
    • FTP Check
    • SMTP Check
    • IMAP Check
    • POP3 Check
    • TCP Check
    • UDP Check
  • SSL Monitoring

    • SSL Monitoring
  • Incidents

    • Incidents
    • Incident's Root Cause
    • Incidents Notification
    • Incident Notes
    • Resolving Incidents Manually
    • Incident Policy
  • Maintenance Schedule

    • Maintenance Schedule
  • Email Reports

    • Email Reports
  • Integrations

    • Integrations
    • Apache Integration
    • CoreDNS Integration
    • CouchDB Integration
    • Disk Health Integration
    • Docker Integration
    • Dovecot Integration
    • Exim Integration
    • HAProxy Integration
    • IIS Integration
    • InfluxDB Integration
    • Kafka Integration
    • KeyDB Integration
    • LiteSpeed Integration
    • MongoDB Integration
    • MySQL Integration
    • Netstat Integration
    • Nginx Integration
    • OpenLiteSpeed Integration
    • OpenVPN Integration
    • PHP-FPM Integration
    • Postfix Integration
    • PostgreSQL Integration
    • RabbitMQ integration
    • Redis Integration
    • MS SQL Server Integration
    • Supervisor Integration
    • Varnish Integration
    • Wireguard Integration
  • Notifications

    • Notifications
    • Creating Notification Roles
    • Email Integration
    • Mobile Push Notifications
    • SMS Integration
    • Phone call Integration
    • Webhook Integration
    • Integration for Slack
    • Telegram Integration
    • WhatsApp Integration
    • Mattermost Integration
    • Discord Integration
    • Google Chat Integration
    • Microsoft Teams Integration
    • Atlassian Opsgenie Integration
    • Splunk On-Call Integration
    • Pushover Integration
    • Pushbullet Integration
    • Gotify Integration
    • Ntfy Integration
    • Spike.sh Integration
    • PagerDuty Integration
    • Zapier Integration
    • AlertOps Integration
  • Status Page

    • Status page
  • 3rd Party Status Pages

    • Using 3rd party Status Pages
    • Atlassian Status Page Integration with Xitoring
    • Status.io Integration with Xitoring
    • Statuspal Integration with Xitoring
    • Instatus Integration with Xitoring
  • Dashboards

    • Main Dashboard
    • Custom Dashboards
  • Metrics

    • Metrics
  • MCP Server

    • Setup & Tool Reference

Auto-Discovery

Finding every running service on a server manually is time-consuming and error-prone—especially on inherited systems or large deployments. Auto-Discovery automates this process, scanning your servers and identifying all running services ready for monitoring.

Time Savings

Manual service detection: 1-2 hours per server
Auto-Discovery: 5-10 minutes automatic scan
Result: Spend time configuring monitoring, not hunting for services.


What Auto-Discovery Does

Auto-Discovery serves two purposes:

1. Automatic Uptime Check Creation

When Xitogent is installed on a server, Auto-Discovery:

  1. Scans your server for active processes and listening ports
  2. Identifies known services (databases, web servers, caches, queues, mail servers, etc.)
  3. Detects software (Nginx, MySQL, Redis, Docker, RabbitMQ, etc.)
  4. Automatically creates uptime checks for detected services
  5. Starts monitoring immediately - no configuration needed

You can also trigger external IP scanning to auto-detect and create checks for services on your public IP without needing Xitogent installed.

2. Integration Recommendations

Auto-Discovery presents detected services as recommendations in the server view page:

  • Shows which integrations are available for the detected services
  • Allows you to manually enable integrations for deeper monitoring
  • Helps you decide which services to monitor without manual discovery

Timeline

MilestoneTimingWhat's Happening
Xitogent installedInstantAgent registers with account
First data arrives2-5 minutesBasic metrics start flowing
Auto-Discovery starts5 minutesSystem scans for running services
Discovery completes5-10 minutesUptime checks created automatically, recommendations shown
Integration enabled (optional)< 1 minuteManually enable for deeper metrics collection

Be patient: Discovery needs time to thoroughly scan. Don't refresh obsessively—give it 10 minutes and revisit.


What Can Be Discovered

Database Services

Auto-Discovery detects popular databases by scanning standard ports and processes:

  • MySQL - Port 3306, process: mysqld
  • PostgreSQL - Port 5432, process: postgres
  • MongoDB - Port 27017, process: mongod
  • Redis - Port 6379, process: redis-server
  • KeyDB - Port 6379, process: keydb-server
  • InfluxDB - Port 8086, process: influxd
  • CouchDB - Port 5984, process: couchdb
  • SQL Server - Port 1433, process: sqlservr

Web Servers & Proxies

Detects web serving software and reverse proxies:

  • Nginx - Port 80/443, process: nginx
  • Apache - Port 80/443, process: httpd or apache2
  • IIS - Windows web server
  • LiteSpeed - Port 80/443, process: lshttpd
  • OpenLiteSpeed - Process: openlitespeed
  • HAProxy - Load balancer, process: haproxy
  • Varnish - Cache, port 6081/6082, process: varnishd

Message Queues

Identifies message brokers and queuing systems:

  • RabbitMQ - Port 5672, process: rabbitmq
  • Kafka - Port 9092, process: kafka

System & Application Services

Detects containers, process managers, and network services:

  • Docker - Container runtime, process: dockerd
  • Supervisor - Process manager
  • PHP-FPM - PHP processor, process: php-fpm
  • CoreDNS - DNS server
  • WireGuard - VPN
  • OpenVPN - VPN
  • Postfix - Mail server
  • Dovecot - IMAP/POP3 server
  • **

Exim** - Mail transfer agent

Over 30 integrations supported - Browse complete list: All Integrations


How Auto-Discovery Works

Detection Methods

Auto-Discovery uses multiple techniques to identify services:

  1. Port Scanning - Checks standard ports (3306 for MySQL, 6379 for Redis, etc.)
  2. Process Detection - Scans running processes for known service names
  3. Configuration Files - Reads config files to confirm service identity
  4. Binary Detection - Locates installed binaries (/usr/bin/nginx, /usr/sbin/mysqld)
  5. Package Manager - Queries package managers (apt, yum, dnf) for installed software

Non-intrusive: Auto-Discovery only reads system information. It doesn't modify configurations or restart services.

What About Non-Standard Configurations?

Services detected even when:

  • Running on custom ports (MySQL on 3307 instead of 3306)
  • Using custom binary names
  • Installed via source compile (not package manager)
  • Running in containers

May not detect:

  • Completely custom applications (your proprietary software)
  • Services running without standard process names
  • Heavily obscured or sandboxed services

Solution for missed services: Enable integrations manually from dashboard. See Integrations Guide.


Viewing Discovery Results

Accessing Discovery Results

Navigate to: Servers → [Your Server] → Server View (Auto-Discovery shows detected services as recommendations)

What You'll See:

  • Detected Services - List of identified software running on server
  • Integration Recommendations - Which integrations are available for detected services
  • Confidence Level - How certain discovery is (high/medium/low)
  • Port Information - Which ports each service uses
  • Auto-Created Uptime Checks - Services already being monitored

Result States

Uptime Check Auto-Created ✅

  • Service detected and uptime check automatically created
  • Service status being monitored
  • No action needed

Integration Recommended 🔵

  • Service detected, integration recommendation shown in server view
  • Click "Enable Integration" to start collecting detailed metrics (CPU, memory, connections, etc.)
  • Recommended to enable for deeper visibility

Manually Created ⚙️

  • Check or integration created manually without auto-discovery
  • Verify service still running if metrics missing

Enabling Integration Recommendations

Manual Integration Enable

From Server View Recommendations:

  1. Go to Servers → [Your Server] → Server View
  2. Review detected services and integration recommendations
  3. Click "Enable Integration" next to service name
  4. Integration activates
  5. Detailed metrics start collecting within 5 minutes
  6. View integration-specific metrics: Servers → [Your Server] → Integrations → [Service Name]

Service already being monitored - Auto-Discovery created an uptime check automatically. Integration enables deeper metrics collection.

Selective Enable

When to enable specific integrations:

  • First-time server setup (enable critical services first)
  • Standardized stack (enable same services on similar servers)
  • Cost/resource optimization (enable only what you need)

When to enable all:

  • Full infrastructure visibility required
  • Performance-adequate monitoring (low resource impact)
  • Compliance/audit requirements

When to skip:

  • Testing/dev servers with limited monitoring needs
  • Services you don't plan to monitor deeply
  • Integration doesn't apply to your setup

Understanding Discovery Limitations

What Auto-Discovery Can't Do

❌ Cannot detect:

  • Custom/proprietary applications (no known signatures)
  • Services intentionally hidden or obfuscated
  • Services that haven't started yet
  • Microservices running entirely in memory
  • Serverless functions (Lambda, Cloud Functions)

❌ Cannot configure:

  • Custom thresholds (use Auto-Triggers for recommended thresholds)
  • Notification routing (set up Notification Roles separately)
  • Authentication credentials (some integrations require manual credential setup)

Manual Integration Setup

When discovery misses a service or you want to monitor external services:

  1. Go to Servers → [Your Server] → Integrations → Enable Integration
  2. Select the integration type manually
  3. Configure connection details (host, port, credentials if needed)
  4. Save configuration
  5. Verify metrics start appearing within 5-10 minutes

See integration-specific guides for setup details:

  • MySQL Integration Setup
  • PostgreSQL Integration Setup
  • Redis Integration Setup
  • All Integrations

Discovery After Initial Scan

Continuous Re-Discovery

Auto-Discovery doesn't just run once:

  • Initial scan: 5-10 minutes after Xitogent install
  • Ongoing scans: Every 24 hours (daily)
  • After changes: Manually trigger re-scan

Why continuous discovery matters:

  • New services added to server (database installed later)
  • Services started that were previously stopped
  • Configuration changes (service moved to different port)
  • Software updates (new version detected)

Manual Re-Scan

Trigger discovery manually when:

  • You installed new software
  • Service configurations changed
  • Initial discovery incomplete
  • Troubleshooting missing integrations

How to manually trigger:

  1. Servers → [Your Server] → Auto-Discovery
  2. Click "Run Discovery Again"
  3. Wait 5-10 minutes for scan to complete
  4. Review updated results

Best Practices

After Discovery Completes

  1. Review all discovered services - Verify accuracy (false positives rare but possible)
  2. Enable relevant integrations - Don't enable everything if not needed
  3. Wait for metrics - Give integrations 10-15 minutes to populate data
  4. Configure triggers - Use Auto-Triggers for recommended thresholds
  5. Set up notifications - Assign Notification Roles to important triggers

For Large Deployments

When monitoring many servers:

  • Let Auto-Discovery run on first server
  • Review results and document which integrations to enable
  • Use Ansible/automation to enable same integrations on remaining servers
  • Or let each server's Auto-Discovery run and bulk-enable standard services

For Inherited Infrastructure

Taking over unfamiliar servers:

  • Auto-Discovery reveals what's actually running
  • Compare discovery results against expected architecture
  • Identify "surprise" services (unknown software, backdoors, test services left running)
  • Document findings for infrastructure audit

Troubleshooting

Discovery Not Running

Symptoms: Server View shows "No scan results yet" after 15+ minutes

Solutions:

  1. Verify Xitogent running:
    # Linux
    systemctl status xitogent
    
    # Windows
    Get-Service -Name Xitogent
    
  2. Check agent logs:
    tail -50 /var/log/xitogent.log
    # Look for discovery-related errors
    
  3. Manually trigger scan: Servers → [Your Server] → Server View → Auto-Discovery → "Run Discovery Again"
  4. Verify network connectivity: Xitogent must reach xitoring.com to report results

See FAQ: Xitogent Troubleshooting for detailed debugging.

Service Not Detected

Symptoms: You know service is running, but Auto-Discovery didn't find it

Possible Causes:

  • Custom port: Service running on non-standard port (MySQL on 3307 not 3306)
  • Custom process name: Binary renamed or custom build
  • Containerized: Service inside container (Docker isolation)
  • Recently started: Service started after last discovery scan
  • Not yet supported: Software not in Auto-Discovery database

Solutions:

  1. Trigger manual re-scan (service may have started after initial scan)
  2. Enable integration manually - Servers → Integrations → Enable → Select Service
  3. Check if integration exists - View All Integrations list
  4. Request integration - Contact support if your software not supported

False Positive Detection

Symptoms: Discovery reports service not actually running

Possible Causes:

  • Service binary installed but service stopped
  • Leftover port listener from crashed process
  • Another service using same port

Solutions:

  1. Verify service actually running: Check system processes
  2. Don't enable that integration - Skip false positive services
  3. Report issue - Help improve discovery accuracy

Common Scenarios

Scenario 1: First Server Setup

Timeline:

  • 0:00 - Install Xitogent
  • 0:02 - First metrics arrive
  • 0:05 - Auto-Discovery starts
  • 0:10 - Discovery completes, 8 services found, uptime checks auto-created
  • 0:11 - Review integration recommendations in server view
  • 0:12 - Enable integrations for services you want deep monitoring on
  • 0:15 - Integration metrics start appearing
  • Day 2 - Auto-Trigger recommendations available (~24 hours after baseline)
  • Total: 20 minutes for initial monitoring; ~24 hours for Auto-Trigger recommendations (with automatic uptime checks for all services)

Scenario 2: New Service Installed

Example: You install Redis on monitored server

Approach 1 - Wait for daily scan:

  • Auto-Discovery detects Redis in next 24-hour scan
  • You see "New Services Detected" notification
  • Enable Redis integration

Approach 2 - Manual trigger:

  • Install Redis
  • Servers → [Your Server] → Server View → Auto-Discovery → "Run Discovery Again"
  • Wait 5-10 minutes
  • Enable Redis integration when discovered

Approach 3 - Manual enable:

  • Install Redis
  • Servers → Integrations → Enable Integration → Redis
  • Configure connection details
  • Start monitoring immediately (don't wait for discovery)

Scenario 3: Bulk Server Deployment

Deploy monitoring to 50 servers:

  1. Install Xitogent on all servers (Ansible bulk deploy)
  2. Wait 10-15 minutes for Auto-Discovery on all
  3. Review first server's discovery results
  4. Document standard services to enable (MySQL, Nginx, Redis)
  5. Use API or Ansible to bulk-enable same services on remaining 49 servers
  6. Verify all integrations reporting metrics

See Also

  • Auto-Triggers - Automatic threshold recommendations for discovered services
  • Integrations Hub - All 30+ integrations with setup guides
  • FAQ: Automation Features - Time savings from automation
  • Xitogent Installation - Installing the agent that enables Auto-Discovery
  • Glossary: Auto-Discovery - Term definition

Next Step: After enabling integrations for deeper visibility, use Auto-Triggers to get recommended alert thresholds!

Last Updated: 7/27/26, 4:34 PM
Prev
What is Check
Next
Auto Fault Tolerance