{% extends "base.html" %} {% block title %}Private locations{% endblock %} {% block content %}

Private locations

Run a tiny agent inside your own network, VPC or another region. It performs the request from there; Vigil evaluates the rules and alerts as usual. {{ rows|length }}/{{ limit }} used.

{% if limit == 0 %}
Private locations are included on Pro (1) and Enterprise (10), or as a Custom module. Upgrade to monitor internal services behind your firewall.
{% endif %}
{% for r in rows %}

{% if r.online %}{% else %}{% endif %}{{ r.a.name }}

{{ 'online' if r.online else ('offline since ' ~ (r.a.last_seen_at|timeago) if r.a.last_seen_at else 'never connected') }} · {{ r.monitors }} monitor{{ 's' if r.monitors != 1 }}{% if r.a.hostname %} · {{ r.a.hostname }}{% endif %}{% if r.a.version %} · agent v{{ r.a.version }}{% endif %}{% if r.a.last_ip %} · {{ r.a.last_ip }}{% endif %}
{% if user.can_edit %}
{% endif %}
Run on any Linux/macOS/Windows box with Python 3.8+ and outbound HTTPS:
curl -fsSL {{ base_url }}/vigil-agent.py -o vigil-agent.py
VIGIL_URL={{ base_url }} VIGIL_TOKEN={{ r.a.token }} python3 vigil-agent.py
Docker, systemd and Kubernetes
# Docker
docker run -d --name vigil-agent --restart unless-stopped -e VIGIL_URL={{ base_url }} -e VIGIL_TOKEN={{ r.a.token }} python:3.12-slim \
  sh -c "python3 -c \"import urllib.request;open('a.py','wb').write(urllib.request.urlopen('{{ base_url }}/vigil-agent.py').read())\" && python3 a.py"

# systemd (/etc/systemd/system/vigil-agent.service)
[Service]
Environment=VIGIL_URL={{ base_url }} VIGIL_TOKEN={{ r.a.token }}
ExecStart=/usr/bin/python3 /opt/vigil-agent.py
Restart=always
[Install]
WantedBy=multi-user.target

# Kubernetes: a Deployment with the Docker command above; one replica per location.
{% endfor %} {% if not rows %}

No private locations yet

Create one, run the one-line agent where your internal services live, then assign monitors to it from the monitor form ("Check from").

{% endif %}
{% if user.can_edit and rows|length < limit %}

Add a location

{% endif %}

How it works

  • The agent polls Vigil every 10 s for monitors assigned to it and runs uptime, API, content, TCP and app-health checks from its own network.
  • Only raw results travel back (status, headers, body, timing). Assertions, diffs, thresholds and alerting stay in Vigil, so changing a monitor never requires touching the agent.
  • If an agent goes silent for 3 check intervals, its monitors are marked down and you're alerted, so a dead probe never looks like a healthy service.
  • SSL expiry and security grading always run from the cloud (they describe your public edge).
  • Same agent works as a second region: run it on any VPS to check from another country.
{% endblock %}