tutorial

Monitoring AnythingLLM with Vigilmon

AnythingLLM is your private, self-hosted AI assistant with RAG — but when the embedding job stalls or the API goes silent, you need to know immediately. Here's how to monitor AnythingLLM's web UI, REST API, workspace endpoints, and document re-indexing heartbeats with Vigilmon.

AnythingLLM is an open-source, all-in-one private AI assistant platform — a self-hosted ChatGPT alternative built with Node.js and React that supports local LLMs (Ollama, LM Studio) as well as cloud APIs. It adds retrieval-augmented generation (RAG), multi-user support, and document management on top of any LLM backend. But running AnythingLLM means owning its uptime: when the web UI goes unreachable, the /api/ping health endpoint stops responding, or a scheduled document re-indexing job silently stalls, your team loses access to its AI assistant without any notification. Vigilmon gives you HTTP uptime monitors, endpoint health checks, SSL certificate alerts, and cron heartbeat monitoring for AnythingLLM — so every failure surfaces immediately.

What You'll Set Up

  • HTTP uptime monitor for the AnythingLLM web UI (port 3001)
  • REST API health check on /api/ping
  • Authenticated workspace API availability check on /api/v1/workspaces
  • SSL certificate expiry alerts for HTTPS-proxied deployments
  • Cron heartbeat for scheduled document embedding and re-indexing jobs

Prerequisites

  • AnythingLLM running on a server (Docker or bare-metal, port 3001 by default)
  • An API key for authenticated endpoint checks (Settings → API Keys in AnythingLLM)
  • A free Vigilmon account

Step 1: Monitor the AnythingLLM Web UI

The AnythingLLM frontend is served on port 3001. Add a Vigilmon HTTP monitor to verify it is reachable:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter the URL: http://your-server-ip:3001 (or https://anythingllm.yourdomain.com if proxied).
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

If AnythingLLM is reverse-proxied behind nginx or Caddy on a subdomain, use that URL so SSL is also checked in later steps.


Step 2: Monitor the /api/ping Health Endpoint

AnythingLLM exposes a lightweight REST health endpoint at /api/ping that confirms the Node.js API server is up and responding:

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter the URL: http://your-server-ip:3001/api/ping
  3. Set Check interval to 1 minute.
  4. Set Expected HTTP status to 200.
  5. Under Response body check, enter "online":true to confirm the API is fully initialized (AnythingLLM returns {"online":true} when healthy).
  6. Click Save.

This check is lighter-weight than the full UI check and gives you a pure API-layer signal separate from the frontend.


Step 3: Monitor the Workspace API Endpoint

The /api/v1/workspaces endpoint lists all RAG workspaces and requires authentication. Monitoring it verifies that the AnythingLLM API layer, database connection, and workspace registry are all functional:

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter the URL: http://your-server-ip:3001/api/v1/workspaces
  3. Set Method to GET.
  4. Under Request headers, add:
    Authorization: Bearer YOUR_ANYTHINGLLM_API_KEY
    
  5. Set Expected HTTP status to 200.
  6. Set Check interval to 5 minutes.
  7. Click Save.

Replace YOUR_ANYTHINGLLM_API_KEY with the key from Settings → API Keys. A 401 response here means the API key expired or was rotated — a useful alert in its own right.


Step 4: SSL Certificate Alerts for HTTPS Deployments

When AnythingLLM is reverse-proxied with a TLS certificate (nginx + Let's Encrypt or Caddy), certificate expiry can take down the service silently — browsers reject expired certificates and users see connection errors rather than uptime alerts.

  1. Open the HTTP monitor you created for https://anythingllm.yourdomain.com in Step 1.
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

A 21-day window gives you three full renewal attempts before expiry. If you use Caddy, it auto-renews; if you use certbot, verify the renewal timer is active:

systemctl status certbot.timer

Vigilmon's SSL alert is your safety net when auto-renewal fails silently.


Step 5: Heartbeat Monitoring for Document Embedding Jobs

AnythingLLM re-indexes documents on a schedule so that RAG workspaces stay current with new uploads. These embedding jobs run in the background — there is no web UI status page and no external HTTP endpoint to probe. Use Vigilmon's cron heartbeat to confirm each job completes successfully.

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Name it AnythingLLM Document Re-indexing.
  3. Set the expected ping interval to match your re-indexing schedule (e.g. 60 minutes for hourly jobs).
  4. Copy the heartbeat URL (e.g. https://vigilmon.online/heartbeat/abc123).

Wrap your embedding job trigger or cron command to ping Vigilmon after success. If you trigger re-indexing via the AnythingLLM system health check endpoint at /api/v1/system/healthcheck, you can verify it and then ping:

#!/bin/bash
# Trigger re-index via AnythingLLM API
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  http://localhost:3001/api/v1/system/healthcheck)

if [ "$RESPONSE" = "200" ]; then
  # System is healthy — signal Vigilmon
  curl -s https://vigilmon.online/heartbeat/abc123
else
  echo "AnythingLLM healthcheck failed: HTTP $RESPONSE"
fi

Schedule this with cron to match your re-indexing frequency:

# /etc/cron.d/anythingllm-heartbeat
0 * * * * root /usr/local/bin/anythingllm-healthcheck.sh >> /var/log/anythingllm-hb.log 2>&1

If the job crashes or the AnythingLLM server becomes unresponsive before the ping fires, Vigilmon alerts when the expected interval passes without a ping.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add Slack, email, or a webhook.
  2. Set Consecutive failures before alert to 2 on the web UI and API monitors — AnythingLLM can take 10–15 seconds to restart under Docker.
  3. Set the workspace API monitor to alert on the first failure — an auth failure or 500 error there is not transient.

Summary

| Monitor | Target | What It Catches | |---|---|---| | Web UI | http://your-server:3001 | Frontend down, server crash | | API health | /api/ping | Node.js API layer failure | | Workspace API | /api/v1/workspaces | DB connection, auth, workspace registry | | SSL certificate | HTTPS domain | Let's Encrypt / Caddy renewal failure | | Cron heartbeat | Heartbeat URL | Embedding job crash, missed re-index |

AnythingLLM gives your team a private, document-aware AI assistant — but self-hosting it means you own every failure mode. With Vigilmon watching the web UI, API endpoints, SSL certificate, and embedding job heartbeat, you have full observability over your AnythingLLM deployment and your team is never caught off guard by a silent outage.

Monitor your app with Vigilmon

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

Start free →