tutorial

Monitoring JFrog Artifactory with Vigilmon: API Ping, System Info, Liveness, Storage Health & SSL Alerts

How to monitor JFrog Artifactory with Vigilmon — API ping endpoint, system info health check, liveness probe, Artifactory storage info heartbeat, web UI availability on port 8082, and SSL certificate alerts for HTTPS Artifactory deployments.

JFrog Artifactory is the enterprise standard for self-hosted artifact management — supporting over 30 package formats including Maven, Gradle, Docker, npm, PyPI, Helm, Go, Conda, NuGet, Debian, and RPM repositories in a single instance. When Artifactory goes down, builds fail across every language and platform simultaneously: Docker images can't be pulled, Maven dependencies are unavailable, npm installs fail, and Helm chart deployments stall. Vigilmon gives you external visibility into every layer of an Artifactory installation: the API ping, system health, liveness status, storage capacity, web UI availability, and SSL certificate expiry — before your engineering teams notice anything is wrong.

What You'll Build

  • An HTTP monitor on Artifactory's API ping endpoint (/artifactory/api/system/ping)
  • A system info health check confirming database, filestore, and JVM health
  • A liveness probe to detect startup or crash states
  • A web UI availability check on port 8082
  • SSL certificate monitoring for HTTPS Artifactory deployments
  • A storage info heartbeat to catch disk pressure before repositories stop accepting pushes

Prerequisites

  • JFrog Artifactory running (OSS or Pro/Enterprise, typically on port 8082)
  • An admin API token for authenticated health endpoints
  • A domain or IP:port accessible externally
  • A free account at vigilmon.online

Step 1: Check the Artifactory API Ping Endpoint

Artifactory exposes /artifactory/api/system/ping — an unauthenticated endpoint that returns the plain text string OK when the REST API layer is healthy:

curl https://artifactory.yourdomain.com/artifactory/api/system/ping
# OK

This is the simplest and most reliable Artifactory health check. A 200 response with body OK confirms the Java server is running and the REST API is responding. A non-200 or a connection refused means Artifactory has crashed, is initializing, or the reverse proxy is broken.


Step 2: Create the API Ping Monitor in Vigilmon

  1. Log in to VigilmonAdd Monitor → HTTP.
  2. URL: https://artifactory.yourdomain.com/artifactory/api/system/ping
  3. Check interval: 60 seconds.
  4. Response timeout: 15 seconds.
  5. Expected status: 200.
  6. Keyword: OK (matches the plain-text response body).
  7. Label: Artifactory API Ping
  8. Click Save.

This monitor catches:

  • Artifactory JVM crashes or OOM kills
  • Database connection failures that prevent the REST API from responding
  • Reverse proxy misconfigurations dropping traffic to port 8082
  • Java heap exhaustion causing Artifactory to become unresponsive

Step 3: Add the System Info Health Check

The /artifactory/api/system/info endpoint (authenticated) returns comprehensive system health including Artifactory version, JVM statistics, filestore details, and database connectivity:

curl -H "X-JFrog-Art-Api: YOUR_ADMIN_TOKEN" \
  https://artifactory.yourdomain.com/artifactory/api/system/info
# Returns JSON with "version", "javaVersion", "fileStoreType", "numberOfConnections", etc.
  1. Add Monitor → HTTP.
  2. URL: https://artifactory.yourdomain.com/artifactory/api/system/info
  3. HTTP Headers: X-JFrog-Art-Api: YOUR_ADMIN_TOKEN
  4. Expected status: 200.
  5. Keyword: version (confirms the JSON structure is intact).
  6. Check interval: 300 seconds.
  7. Label: Artifactory System Info

If the ping succeeds but the system info endpoint returns a non-200 or missing fields, a subsystem (database connection pool, filestore layer, or JVM memory) has a problem that hasn't yet caused a total crash.


Step 4: Monitor the Liveness Endpoint

Artifactory exposes /artifactory/api/system/liveness — a lightweight endpoint that returns HTTP 200 if the server process is live and HTTP 503 if it is starting up or unhealthy:

curl -I https://artifactory.yourdomain.com/artifactory/api/system/liveness
# HTTP/2 200 → server is live
# HTTP/2 503 → server is starting or unhealthy
  1. Add Monitor → HTTP.
  2. URL: https://artifactory.yourdomain.com/artifactory/api/system/liveness
  3. Expected status: 200.
  4. Check interval: 60 seconds.
  5. Label: Artifactory Liveness

The liveness endpoint catches the case where Artifactory is in a partial startup or crash-loop state — returning 503 while the JVM process is technically running but not ready to serve traffic. Use it alongside the API ping for complete crash detection coverage.


Step 5: Monitor the Artifactory Web UI

The API endpoints don't exercise the Artifactory web application frontend. A separate check on the UI path confirms the servlet container is serving the web application correctly:

curl -I https://artifactory.yourdomain.com/artifactory/webapp/
# HTTP/2 200
  1. Add Monitor → HTTP.
  2. URL: https://artifactory.yourdomain.com/artifactory/webapp/
  3. Expected status: 200.
  4. Keyword: Artifactory (present in the HTML page title).
  5. Check interval: 300 seconds.
  6. Label: Artifactory Web UI

If the API ping and liveness checks pass but the web UI check fails, the problem is isolated to the Artifactory frontend rendering layer — the REST API is operational but the browser-based console is broken.


Step 6: Monitor Your SSL Certificate

Artifactory enterprise deployments are typically reverse-proxied via nginx, Apache, or a load balancer for HTTPS termination. When the TLS certificate expires, every client — Maven, Docker daemon, npm, pip, Helm — fails with SSL certificate errors:

  1. Add Monitor → SSL Certificate.
  2. Domain: artifactory.yourdomain.com
  3. Alert when expiry is within: 30 days.
  4. Alert again: 14 days, 7 days, 3 days.

For enterprise Artifactory deployments, consider adding certificate monitors for each subdomain if you use virtual host routing (e.g., docker.artifactory.yourdomain.com, npm.artifactory.yourdomain.com).


Step 7: Storage Info Heartbeat for Disk and Repository Health

Artifactory stores all artifact binaries in its filestore (local filesystem, NFS, or S3). When storage fills up, artifact uploads fail with 500 Internal Server Error while downloads continue — creating confusing partial failures. The /artifactory/api/storageinfo endpoint returns used and available storage across all repositories:

curl -H "X-JFrog-Art-Api: YOUR_ADMIN_TOKEN" \
  https://artifactory.yourdomain.com/artifactory/api/storageinfo
# Returns: {"storageType":"filesystem","storageDirectory":"...","totalSpace":"500 GB","usedSpace":"385 GB","freeSpace":"115 GB",...}

Set up a server-side heartbeat that only pings Vigilmon when storage is healthy:

#!/bin/bash
# /etc/cron.d/artifactory-storage-heartbeat — runs every 5 minutes

STORAGE_RESPONSE=$(curl -sS \
  -H "X-JFrog-Art-Api: YOUR_ADMIN_TOKEN" \
  https://artifactory.yourdomain.com/artifactory/api/storageinfo)

# Extract used percentage (requires jq)
USED_SPACE=$(echo "$STORAGE_RESPONSE" | jq -r '.filesStoreSummary.usedSpace' | tr -d ' GB')
TOTAL_SPACE=$(echo "$STORAGE_RESPONSE" | jq -r '.filesStoreSummary.totalSpace' | tr -d ' GB')

# Fallback: use OS-level df on the Artifactory data directory
DISK_USED_PCT=$(df /artifactory/data --output=pcent | tail -1 | tr -d '% ')

if [ "$DISK_USED_PCT" -lt 80 ]; then
  curl -fsS -X POST https://vigilmon.online/api/heartbeat/YOUR-HEARTBEAT-ID
fi

In Vigilmon:

  1. Add Monitor → Heartbeat.
  2. Expected interval: 5 minutes.
  3. Grace period: 15 minutes.
  4. Label: Artifactory Storage Health

When disk usage exceeds 80%, the heartbeat stops firing and Vigilmon alerts you — before CI/CD pipelines start receiving storage errors on artifact publish steps.


Common Artifactory Failure Modes and What Vigilmon Catches

| Scenario | Vigilmon monitor | |---|---| | Artifactory JVM OOM-killed or crashed | API Ping returns connection refused; alert fires within 60 s | | Server starting up / crash-loop | Liveness returns 503; alert fires | | Database connection pool exhausted | System Info returns 500; API ping may still pass | | Reverse proxy drops port 8082 routing | Web UI check fails while server is up | | Filestore disk full — uploads return 500 | Storage heartbeat stops; alert fires before users notice | | Let's Encrypt certificate expires | SSL monitor alerts at 30 days | | Artifactory startup stuck (JVM initializing) | Liveness returns 503 or timeout | | Repository replication failure | System Info shows degraded state | | DNS change breaks client connections | All monitors fire simultaneously | | Virtual repository broken (missing source repo) | API ping passes; individual package tests return 404 |


Artifactory is the single artifact hub for every language, framework, and build tool in an engineering organization — which makes its availability critical across the entire software delivery pipeline. A Vigilmon setup covering the API ping, system health, liveness, web UI, SSL, and storage gives you external visibility into every failure mode before builds start breaking.

Start monitoring Artifactory in under 5 minutes — register free at vigilmon.online.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →