tutorial

Monitoring JFrog Artifactory with Vigilmon

JFrog Artifactory is the artifact repository your CI/CD pipelines depend on — but a silent outage blocks every build. Here's how to monitor Artifactory's health API, storage, and replication with Vigilmon.

JFrog Artifactory is the central artifact repository for most large engineering organizations — Maven packages, npm modules, Docker images, Helm charts, and more all flow through it. When Artifactory goes down or degrades, CI/CD pipelines fail across every team at once. Vigilmon gives you external uptime monitoring for Artifactory: health endpoint checks, storage capacity alerts via API polling, SSL certificate monitoring, and replication heartbeat tracking.

What You'll Set Up

  • HTTP uptime monitor for Artifactory's system health endpoint
  • Ping check for the Artifactory UI availability
  • SSL certificate expiry alerts
  • Cron heartbeat for Artifactory's replication tasks
  • Alert routing to Slack or PagerDuty

Prerequisites

  • JFrog Artifactory 7.x (self-hosted OSS, Pro, or Enterprise) or Artifactory Cloud
  • HTTPS configured on your Artifactory instance
  • An Artifactory API key or access token for API-based checks
  • A free Vigilmon account

Step 1: Monitor the Artifactory System Health Endpoint

Artifactory exposes a dedicated health check endpoint at /artifactory/api/system/ping that returns OK with status 200 when the service is healthy. This is the canonical liveness check used by load balancers and orchestration platforms.

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter: https://artifactory.yourdomain.com/artifactory/api/system/ping
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Under Keyword matching, set Response body contains to OK.
  7. Click Save.

Verify manually:

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

The keyword match ensures you catch cases where Artifactory returns 200 with an error body — a situation that can occur during partial startup.


Step 2: Monitor the Artifactory Web UI

The UI availability is separate from the API health. Engineers use the Artifactory UI to browse repositories, manage permissions, and run artifact searches. A misconfigured nginx or Tomcat setting can bring the UI down while the API stays up.

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter: https://artifactory.yourdomain.com/ui/
  3. Set Expected HTTP status to 200.
  4. Set Check interval to 5 minutes.
  5. Click Save.

For Artifactory Cloud (the *.jfrog.io hosted service), use your instance URL:

https://yourcompany.jfrog.io/ui/

Step 3: SSL Certificate Alerts

Artifactory serves artifacts to CI/CD pipelines, developer machines, and production deployment systems. A certificate expiry silently breaks all of them — mvn install, npm install, and docker pull all fail with TLS errors.

  1. Open the ping monitor from Step 1.
  2. Enable Monitor SSL certificate.
  3. Set Alert when certificate expires in less than 30 days.
  4. Click Save.

For Artifactory Cloud, JFrog manages the certificate — but for self-hosted instances with Let's Encrypt or an enterprise CA, certificate renewal is your responsibility. The 30-day window gives you buffer to:

# Renew via certbot
certbot renew --cert-name artifactory.yourdomain.com

# Or check expiry manually
openssl s_client -connect artifactory.yourdomain.com:443 -servername artifactory.yourdomain.com \
  </dev/null 2>/dev/null | openssl x509 -noout -dates

Step 4: Heartbeat Monitoring for Replication Jobs

Artifactory Enterprise supports repository replication between instances for disaster recovery and geo-distribution. Replication runs on a schedule — but if it silently fails, your DR instance diverges from primary without any alert.

Use Vigilmon's cron heartbeat to verify that replication cron jobs are executing:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set Expected ping interval to match your replication schedule (e.g. 60 minutes).
  3. Copy the heartbeat URL: https://vigilmon.online/heartbeat/YOUR_ID

Wrap your replication trigger script with a heartbeat ping:

#!/bin/bash
# /usr/local/bin/artifactory-replication-check.sh

# Trigger replication and verify via Artifactory REST API
RESULT=$(curl -s -o /dev/null -w "%{http_code}" \
  -X POST \
  -H "X-JFrog-Art-Api: YOUR_API_KEY" \
  "https://artifactory.yourdomain.com/artifactory/api/replication/execute/your-repo-key")

if [ "$RESULT" = "200" ]; then
    curl -s https://vigilmon.online/heartbeat/YOUR_ID
else
    echo "Replication trigger failed with status: $RESULT"
fi

Add to cron to match the replication schedule:

0 * * * * /usr/local/bin/artifactory-replication-check.sh

Step 5: Monitor the Artifactory Docker Registry Endpoint

If you use Artifactory as a Docker registry (a common Enterprise pattern), monitor the Docker v2 API:

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter: https://artifactory.yourdomain.com/v2/
  3. Set Expected HTTP status to 401.
  4. Set Check interval to 5 minutes.
  5. Click Save.

The 401 response confirms that the Docker registry router is accepting connections and enforcing authentication. A 502 or connection timeout means the registry virtual repository is inaccessible.

# Verify
curl -I https://artifactory.yourdomain.com/v2/
# HTTP/2 401

Step 6: Configure Alert Channels and Maintenance Windows

  1. In Vigilmon, go to Alert Channels and add Slack, PagerDuty, email, or a webhook.
  2. Set Consecutive failures before alert to 2 to suppress transient probe failures.
  3. Automate maintenance windows around Artifactory upgrades in your deployment pipeline:
#!/bin/bash
# Before Artifactory upgrade
curl -X POST https://vigilmon.online/api/maintenance \
  -H "Authorization: Bearer YOUR_VIGILMON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"monitor_id": "YOUR_MONITOR_ID", "duration_minutes": 60}'

# Run the upgrade
./upgrade-artifactory.sh

# Maintenance window expires automatically

For teams running Artifactory behind a corporate load balancer, add a TCP port monitor as a backup:

Host: artifactory.yourdomain.com
Port: 443
Interval: 1 minute

This catches firewall or load balancer failures that don't return HTTP responses.


Summary

| Monitor | Target | What It Catches | |---|---|---| | System ping | /artifactory/api/system/ping | Artifactory service down | | Web UI | /ui/ | UI unavailable (nginx/Tomcat issue) | | SSL certificate | Registry domain | Certificate expiry (30-day warning) | | Docker v2 API | /v2/ | Docker registry router failure | | Cron heartbeat | Heartbeat URL | Replication job failure | | TCP port | :443 | Network or load balancer failure |

Artifactory is the dependency layer beneath your entire CI/CD system. When it degrades, build failures cascade across every team simultaneously — and the silent kind, where the service is partially up, are the hardest to diagnose. With Vigilmon watching the health ping, UI, Docker registry, and replication heartbeat, you catch Artifactory problems before they become a company-wide build outage.

Monitor your app with Vigilmon

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

Start free →