I don't know of any uptime SaaS providers that support monitoring websites on their onion service endpoints.
cron
Until that day comes (as it's hard to think of a reason why any admins shouldn't make their websites accessible at a .onion address--which benefits the privacy of their visitors), a simple solution is just to spin up a small micro sever (such as the "always free" server in google's cloud) that does a simple curl over tor every 1 minute and sends an email alert if curl exits non-zero.
For example, if you want to monitor torproject.org's onion service (qrmfuxwgyzk5jdjz.onion):
user@disp9739:~$ curl -IL --socks5-hostname 127.0.0.1:9050 http://qrmfuxwgyzk5jdjz.onion/ HTTP/1.1 200 OK Date: Fri, 13 Nov 2020 15:16:44 GMT Server: Apache Content-Location: index.html.en Vary: negotiate,accept-language,Accept-Encoding TCN: choice X-Content-Type-Options: nosniff X-Frame-Options: sameorigin X-Xss-Protection: 1 Referrer-Policy: no-referrer Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; Last-Modified: Fri, 13 Nov 2020 15:12:24 GMT ETag: "3cec-5b3fe74ab4600" Accept-Ranges: bytes Content-Length: 15596 Cache-Control: max-age=3600 Expires: Fri, 13 Nov 2020 16:16:44 GMT Content-Type: text/html Content-Language: en user@disp9739:~$
If you're running debian, then you can execute the following commands to create a simple cron job that will monitor your website:
sudo apt-get install tor curl mailutils cat > /etc/cron.d/tor-hidden-service-monitoring <<'EOF' * * * * * root url='http://qrmfuxwgyzk5jdjz.onion/'; curl -IL --socks5-hostname 127.0.0.1:9050 "${url}" || echo "Unable to access ${url}" | mail -s "ALERT: hidden service inaccessible" [email protected] EOF
The above commands will install tor, curl, and the mail command and create a simple cron job that will attempt to access http://qrmfuxwgyzk5jdjz.onion/ every 1 minute and email [email protected] if it fails.
mon
To reduce false-positive email alerts, you could use mon to only trigger an alert after multiple consecutive queries fail.
sudo apt-get install tor torsocks mon cat > /usr/lib/mon/mon.d/torsocks_http.monitor <<'EOF' #!/bin/bash ################################################################################ # File: torsocks_http.monitor # Version: 0.1 # Purpose: Wraps the http.monitor script with torsocks to monitor .onion sites # https://tech.michaelaltfield.net/monitoring-tor-onion-websites-uptime-alerts # Authors: Michael Altfield <[email protected]> # Created: 2021-03-12 # Updated: 2021-03-12 ################################################################################ export DIR_PATH=`dirname ${0}` exec /usr/bin/torsocks --isolate ${DIR_PATH}/http.monitor -t 60 "$@" EOF hostgroup torproject_onion qrmfuxwgyzk5jdjz.onion watch torproject_onion service http interval 5m monitor torsocks_http.monitor period alertafter 10 alertevery 1h strict alert mail.alert [email protected] upalert mail.alert [email protected] systemctl restart mon.service
Tor2Web
Finally, you can also use Tor2Web to create a clearnet proxy to your .onion site, then point your existing uptime monitoring IaaS tool at it.
Source
The above solutions were originally published in the following article titled Monitoring Tor .onion Websites (uptime alerts)