# Does anyone have a web site uptime and alerting service they would recommend?

**URL:** <https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528>\
**Category:** Technology\
**Created:** [28 March 2023 14:24 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528 "2023-03-28T14:24:47Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ODSCJames](https://community.coops.tech/letter_avatar/odscjames/32/5_5575768a8748004e209b776fc1b2916d.png) [@ODSCJames](https://community.coops.tech/u/ODSCJames)\
**Post date:** [28 March 2023 14:24 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/1 "2023-03-28T14:24:47Z")

</div>

Key requirement is that it can check on both IP4 and IP6 and alert if either is down.

(We do this with a [https://prometheus.io/](https://prometheus.io/) self hosted system but we’d like a backup. I can write-up details of our Prometheus setup if anyone likes?)

---

<div class="post-metadata">

**Author:** ![chris](https://community.coops.tech/user_avatar/community.coops.tech/chris/32/2_2.png) [@chris](https://community.coops.tech/u/chris)\
**Post date:** [28 March 2023 14:47 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/2 "2023-03-28T14:47:45Z")

</div>

We use [Icinga](https://icinga.com/) and [Ansible](https://git.coop/webarch/icinga-network#icinga-monitoring-network) to configure and deploy it.

---

<div class="post-metadata">

**Author:** ![stephen](https://community.coops.tech/user_avatar/community.coops.tech/stephen/32/51_2.png) [@stephen](https://community.coops.tech/u/stephen)\
**Post date:** [28 March 2023 15:24 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/3 "2023-03-28T15:24:44Z")

</div>

Agile Collective use [Icinga2](https://icinga.com/docs/icinga-2/latest/doc/01-about/) for service and host monitoring. Which is highly configurable and will certainly monitor IPv4 and IPv6 addresses. It’s also quite complex to setup.

We also use [PHP Server Monitor](https://github.com/phpservermon/phpservermon) for basic uptime stats and alerting. It looks like it will do IPv4 and IPv6, but you might need to monitor IP addresses rather than domains.

---

<div class="post-metadata">

**Author:** ![peteratomic](https://community.coops.tech/letter_avatar/peteratomic/32/5_5575768a8748004e209b776fc1b2916d.png) [@peteratomic](https://community.coops.tech/u/peteratomic)\
**Post date:** [28 March 2023 15:39 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/4 "2023-03-28T15:39:01Z")

</div>

Have used this for years – very solid. (But not totally sure if it meets your requirements.)

> **[UptimeRobot: Free Website Monitoring Service](https://uptimerobot.com/)**
>
> Start monitoring in 30 seconds. Use advanced SSL, keyword and cron monitoring. Get notified by email, SMS, Slack and more. Get 50 monitors for FREE!

---

<div class="post-metadata">

**Author:** ![liam](https://community.coops.tech/user_avatar/community.coops.tech/liam/32/2556_2.png) [@liam](https://community.coops.tech/u/liam)\
**Post date:** [28 March 2023 15:58 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/5 "2023-03-28T15:58:46Z")

</div>

We use uptime kuma, really useful and plugins for lots of different notification services. [GitHub - louislam/uptime-kuma: A fancy self-hosted monitoring tool](https://github.com/louislam/uptime-kuma)

---

<div class="post-metadata">

**Author:** ![ODSCJames](https://community.coops.tech/letter_avatar/odscjames/32/5_5575768a8748004e209b776fc1b2916d.png) [@ODSCJames](https://community.coops.tech/u/ODSCJames)\
**Post date:** [28 March 2023 16:55 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/6 "2023-03-28T16:55:19Z")

</div>

UptimeRobot don’t do IP4/6. It’s on wishlists but nope. Shame, I’d just pay them if they did.

---

<div class="post-metadata">

**Author:** ![ODSCJames](https://community.coops.tech/letter_avatar/odscjames/32/5_5575768a8748004e209b776fc1b2916d.png) [@ODSCJames](https://community.coops.tech/u/ODSCJames)\
**Post date:** [30 March 2023 07:20 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/7 "2023-03-30T07:20:10Z")

</div>

So it looks like we are all good self-sufficient people and self-host 🙂

Well we are quite happy with our Prometheus server - as well as blackbox for uptime checks we also use the node exporter heavily for Linux hosts and some of the app exporters. We have even written a custom exporter into our own app so Prometheus could monitor things.

I would have liked a third party external service tho as a backup. Oh well.

---

<div class="post-metadata">

**Author:** ![chris](https://community.coops.tech/user_avatar/community.coops.tech/chris/32/2_2.png) [@chris](https://community.coops.tech/u/chris)\
**Post date:** [30 March 2023 08:51 UTC](https://community.coops.tech/t/does-anyone-have-a-web-site-uptime-and-alerting-service-they-would-recommend/3528/8 "2023-03-30T08:51:50Z")

</div>

All the Ansible we have written for setting up a Icinga monitoring service is public has been released under the GPL and can be accessed via the link I posted above. We would also be happy to provide Icinga as a service including the install, configuration and management of it if required, we would make the git repo available to the client so they can also update the config if they want to, there is a fairly simply YAML dictionary per host, you simply add a host and run [a Bash script](https://git.coop/webarch/icinga-network/-/blob/master/icinga.sh) to update the config, this is the config we have for this Discourse server:

```yaml
        cotechforum.webarch.net:
          icinga_parent_node: "{{ icinga_master_node }}"
          icinga_check_commands:
            apt:
            disk_root:
              command: disk
              args:
                disk_partitions: /
                disk_mountpoint: true
                disk_wfree: 20%
                disk_cfree: 10%
            dns:
            load:
              args:
                load_percpu: 1
            ping:
            ssh:
            swap:
            systemd:
            http:
              command: http
              args:
                http_vhost: community.coops.tech
                http_uri: /
                http_expect_body_regex: "Cooperative Technologists Community Discourse Forum"
                http_port: 443
                http_ssl: 1

```

All the elements below `icinga_check_commands` are [check commands](https://icinga.com/docs/icinga-2/snapshot/doc/10-icinga-template-library/#plugin-check-commands-for-monitoring-plugins) from the [Icinga Template Library](https://icinga.com/docs/icinga2/latest/doc/10-icinga-template-library/) and this is how it looks in the web interface:

 ![Screenshot 2023-03-30 at 09-49-52 cotechforum.webarch.net Hosts Icinga Web](https://community.coops.tech/uploads/default/original/2X/c/cfe6cbaad241ad340b03cdb50b39bc9d15679859.png)

The above example has an agent running on the server being monitored, this is required for disk, cpu etc, but servers can also be monitored without clients, for example this is the config we use for a Mailcow server that doesn’t have an agent running on it:

```yaml
        email.example.org:
          icinga_parent_node: "{{ icinga_master_node }}"
          icinga_check_commands:
            ping:
            ssh:
            mailcow:
              command: http
              args:
                http_ssl: 1
                http_string: "mailcow UI"
                http_uri: /
            sogo:
              command: http
              args:
                http_ssl: 1
                http_string: "SOGo Groupware"
                http_uri: /SOGo/
            imap143:
              command: imap
            imap993:
              command: imap
              args:
                imap_port: 993
                imap_ssl: 1
            pop110:
              command: pop
            pop995:
              command: pop
              args:
                pop_port: 995
                pop_ssl: 1
            smtp25:
              command: smtp
              args:
                smtp_starttls: 1
            smtp465:
              command: ssmtp
              args:
                ssl_port: 465
            smtp587:
              command: smtp
              args:
                smtp_port: 587
                smtp_starttls: 1

```
