{% extends "base.html" %} {% load compress humanize i18n static %} {% block description %} {% endblock %} {% block head %} {% endblock %} {% block containers %}

{% trans "Monitoring for your nightly backups, weekly reports, cron jobs and background tasks." %}

{% trans "Make HTTP requests to the Ping URL at regular intervals." %} {% blocktrans trimmed %} When the URL is not pinged on time, {{ site_name }} will send you an alert. {% endblocktrans %} {% trans "You can monitor any service that can make HTTP requests or send emails." %}

{% blocktrans trimmed %} For each of your periodic tasks, {{ site_name }} provides an unique URL similar to this one: {% endblocktrans %}

{{ ping_url }}
{% include "front/snippets/crontab.html" %}
{% include "front/snippets/bash_curl.html" %} {% include "front/snippets/bash_wget.html" %}
{% include "front/snippets/python_urllib2.html" %} {% include "front/snippets/python_requests.html" %}
{% include "front/snippets/ruby.html" %}
{% include "front/snippets/node.html" %}
{% include "front/snippets/go.html" %}
{% include "front/snippets/php.html" %}
{% include "front/snippets/cs.html" %}
{% include "front/snippets/browser.html" %}
{% include "front/snippets/powershell.html" %} {% include "front/snippets/powershell_inline.html" %}

{% blocktrans trimmed %} As an alternative to HTTP requests, you can also report "liveness" by sending email messages. {% endblocktrans %}

{% blocktrans trimmed %} You can instruct {{ site_name }} to look for a particular keyword in the subject line. This is handy when your backup software sends an email after every run, and uses a different subject line depending on success or failure. {% endblocktrans %}

{% if registration_open %}

{% blocktrans trimmed %} {{ site_name }} monitors the heartbeat messages sent by your cron jobs, services and APIs. Get immediate alerts when they don't arrive on schedule. {% endblocktrans %}

{% trans "Sign Up – It's Free" %}
{% endif %}

{% trans "A quick peek of what's inside:" %}

My Checks page

{% trans "Live-updating Dashboard" %}

{% blocktrans trimmed %} A list of your checks, one for each Cron job, daemon or scheduled task you want to monitor. {% endblocktrans %}

{% blocktrans trimmed %} Give names and assign tags to your checks to easily recognize them later. {% endblocktrans %}

{% blocktrans trimmed %} Tap on the integration icons to toggle them on and off. {% endblocktrans %}

{% blocktrans trimmed %} Adjust Period and Grace time to match the periodicity and duration of your tasks. {% endblocktrans %}

Period/Grace Time dialog

{% trans "Simple Configuration" %}

{% blocktrans trimmed %} Each check has configurable Period and Grace Time parameters. Depending on these parameters and time since the last ping, the check is in one of the following states: {% endblocktrans %}
{% blocktrans trimmed %} New. A check that has been created, but has not received any pings yet. {% endblocktrans %}
{% blocktrans trimmed %} Up. Time since last ping has not exceeded Period. {% endblocktrans %}
{% blocktrans trimmed %} Late. Time since last ping has exceeded Period, but has not yet exceeded Period + Grace. {% endblocktrans %}
{% blocktrans trimmed %} Down. Time since last ping has exceeded Period + Grace. When check goes from "Late" to "Down", {{ site_name }} sends you a notification. {% endblocktrans %}
Cron dialog

{% trans "Cron Expression Support" %}

{% blocktrans trimmed %} Alternatively, you can define the expected ping dates and times using a cron expression. See {% endblocktrans %} {% trans "Cron Syntax Cheatsheet" %} {% blocktrans trimmed %} for the supported syntax features. {% endblocktrans %}

{% blocktrans trimmed %} Grace Time specifies how "late" a ping can be before you will be alerted. Set it to be a little above the expected duration of your cron job. {% endblocktrans %}

Details Page

{% trans "Details and Event Log" %}

{% blocktrans trimmed %} You can add a longer, free-form description to each check. Leave notes and pointers for yourself and for your team. {% endblocktrans %}

{% blocktrans trimmed %} You can also see the log of received pings and sent "Down" notifications. {% endblocktrans %}

Details Page

{% trans "Public Status Badges" %}

{% blocktrans trimmed %} {{ site_name }} provides status badges for each of the tags you have used. Additionally, the "{{ site_name }}" badge shows the overall status of all checks in your account. {% endblocktrans %}

{% blocktrans trimmed %} The badges have public, but hard-to-guess URLs. You can use them in your READMEs, dashboards or status pages. {% endblocktrans %}

{% trans "Integrations" %}
{% trans "Set up multiple ways to get notified:" %}

{% trans "Email" %}
 

{% if enable_webhooks %}

Webhooks
 

{% endif %} {% if enable_slack %}
{% if enable_slack_btn %}

Slack
{% trans "Chat" %}

{% else %}

Slack
{% trans "Chat" %}

{% endif %}
{% endif %} {% if enable_apprise %}

Apprise
{% trans "Push Notifications" %}

{% endif %} {% if enable_discord %}

Discord
{% trans "Chat" %}

{% endif %} {% if enable_linenotify %}

LINE Notify
Chat

{% endif %} {% if enable_matrix %}

Matrix
{% trans "Chat" %}

{% endif %} {% if enable_mattermost %}

Mattermost
{% trans "Chat" %}

{% endif %} {% if enable_msteams %}

Microsoft Teams
{% trans "Chat" %}

{% endif %} {% if enable_opsgenie %}

Opsgenie
{% trans "Incident Management" %}

{% endif %} {% if enable_pd %}
{% if enable_pd_simple %}

PagerDuty
{% trans "Incident Management" %}

{% else %}

PagerDuty
{% trans "Incident Management" %}

{% endif %}
{% endif %} {% if enable_pagertree %}

PagerTree
{% trans "Incident Management" %}

{% endif %} {% if enable_call %}

{% trans "Phone Call" %}
 

{% endif %} {% if enable_prometheus %} {% endif %} {% if enable_pushbullet %}

Pushbullet
{% trans "Push Notifications" %}

{% endif %} {% if enable_pushover %} {% endif %} {% if enable_shell %}

{% trans "Shell Commands" %}
 

{% endif %} {% if enable_signal %}

{% trans "Signal" %}
{% trans "Chat" %}

{% endif %} {% if enable_sms %}

{% trans "SMS" %}
 

{% endif %} {% if enable_spike %}
Spike.sh icon

Spike.sh
{% trans "Incident Management" %}

{% endif %} {% if enable_telegram %} {% endif %} {% if enable_trello %}

Trello
{% trans "Project Management" %}

{% endif %} {% if enable_victorops %}

Splunk On-Call
{% trans "Incident Management" %}

{% endif %} {% if enable_whatsapp %}

WhatsApp
{% trans "Chat" %}

{% endif %} {% if enable_zulip %}

Zulip
{% trans "Chat" %}

{% endif %}

{% blocktrans trimmed %} What Can I Monitor With {{ site_name }}? {% endblocktrans %}

{% trans "Cron Jobs" %}

{% blocktrans trimmed %} {{ site_name }} monitoring is a great fit for cron jobs and cron-like systems (systemd timers, Jenkins build jobs, Windows Scheduled Tasks, wp-cron, uwsgi cron-like interface, Heroku Scheduler, ...). A failed cron job often has no immediate visible consequences, and can go unnoticed for a long time. {% endblocktrans %}

{% trans "Specific examples:" %}

  • {% trans "Filesystem backups" %}
  • {% trans "Database backups" %}
  • {% trans "Daily, weekly, monthly report emails" %}
  • {% trans "SSL renewals" %}
  • {% trans "Business data import and sync" %}
  • {% trans "Antivirus scans" %}
  • {% trans "Dynamic DNS updates" %}

{% trans "Processes, Services, Servers" %}

{% blocktrans trimmed %} {{ site_name }} monitoring can be used for lightweight server monitoring: ensuring a particular system service, or the server as a whole is alive and healthy. Write a shell script that checks for a specific condition, and pings {{ site_name }} if successful. Run the shell script regularly. {% endblocktrans %}

{% trans "Specific examples:" %}

  • {% trans "Check a specific docker container is running" %}
  • {% trans "Check a specific application process is running" %}
  • {% trans "Check database replication lag" %}
  • {% trans "Check system resources: free disk, free RAM, ..." %}
  • {% blocktrans trimmed %} Send simple, unconditional "I'm alive" messages from your server (or your NAS, router, Raspberry Pi, ...) {% endblocktrans %}
{% if registration_open %} {% endif %}
{% include "front/signup_modal.html" %} {% endblock %} {% block scripts %} {% compress js %} {% endcompress %} {% endblock %}