diff --git a/sysadmin/Monitoring/Gatus.html b/sysadmin/Monitoring/Gatus.html index d55a376..e8b62ea 100644 --- a/sysadmin/Monitoring/Gatus.html +++ b/sysadmin/Monitoring/Gatus.html @@ -2,106 +2,106 @@ title: Gatus - просто мониторинг description: published: true -date: 2024-08-08T14:51:46.417Z +date: 2024-08-08T14:53:32.993Z tags: мониторинг, gatus editor: ckeditor dateCreated: 2024-08-08T14:47:57.868Z --> -

У меня было очень много заметок про различные мониторинги. Кажется, что я уже про всё более-менее полезное что-то да писал. Оказалось, что нет. Расскажу про очередной небольшой и удобный мониторинг, который позволяет очень просто и быстро создать дашборд с зелёными и красными кнопками. Если зелёные, то всё ОК, если красные, то НЕ ОК.  

-

 

-

Речь пойдёт про Gatus (https://github.com/TwiN/gatus). С его помощью очень удобно создавать Status Page. Сразу покажу, как это будет выглядеть:

-

 

-

https://status.twin.sh

-

 

-

И сразу же простой пример, как это настраивается. Там всё максимально просто и быстро. Мы будем проверять следующие условия:

-

 

-

◽️Подключение к сайту zabbix.com проходит успешно, а его IP равен 188.114.99.224. Так как этот домен резолвится в разные IP, можно будет увидеть, как срабатывает проверка.

-

◽️Сайт github.com отдаёт код 200 при подключении и содержит заголовок страницы GitHub: Let’s build from here · GitHub.  

-

◽️Сайт ya.ru отдаёт код 200 и имеет отклик менее 10 мс. На практике он будет больше, посмотрим, как срабатывает триггер. По этой проверке будет уведомление в Telegram.

-

◽️Домен vk.com имеет сертификат со сроком истечения не менее 48 часов и делегирование домена не менее 720 часов.  

-

 

-

Специально подобрал разнообразные примеры, чтобы вы оценили возможности мониторинга. Я просто открыл документацию и сходу по ней всё сделал. Всё очень просто и понятно, особо разбираться не пришлось. Создаём конфигурационный файл для этих проверок:

-
# mkdir gatus && cd gatus
-# touch config.yaml
-
-
alerting:
-  telegram:
-    token: "1393668911:AAHtEAKqxUH7ZpyX28R-wxKfvH1WR6-vdNw"
-    id: "210806260"
-
-endpoints:
-  - name: Zabbix Connection
-    url: "https://zabbix.com"
-    interval: 30s
-    conditions:
-      - "[CONNECTED] == true"
-      - "[IP] == 188.114.99.224"
-
-  - name: Github Title
-    url: "https://github.com"
-    interval: 30s
-    conditions:
-      - "[STATUS] == 200"
-      - "[BODY] == pat(*<title>GitHub: Let’s build from here · GitHub</title>*)"
-
-  - name: Yandex response
-    url: "https://ya.ru"
-    interval: 30s
-    conditions:
-      - "[STATUS] == 200"
-      - "[RESPONSE_TIME] < 10"
-    alerts:
-      - type: telegram
-        send-on-resolved: true
-
-  - name: VK cert & domain
-    url: "https://vk.com"
-    interval: 5m
-    conditions:
-      - "[CERTIFICATE_EXPIRATION] > 48h"
-      - "[DOMAIN_EXPIRATION] > 720h"
-
-

Запускаем Docker контейнер и цепляем к нему этот файл:

-
# docker run -p 8080:8080 -d \
---mount type=bind,source="$(pwd)"/config.yaml,target=/config/config.yaml \
---name gatus twinproduction/gatus
-
-

Идём по IP адресу сервера на порт 8080 и смотрим на свой мониторинг. Данные могут храниться в оперативной памяти, sqlite или postgresql базе. Если выберите последнее, то вот готовый docker-compose (https://github.com/TwiN/gatus/blob/master/.examples/docker-compose-postgres-storage/docker-compose.yml) для этого. По умолчанию данные хранятся в оперативной памяти и после перезапуска контейнера пропадают.  

-
version: "3.9"
-services:
-  postgres:
-    image: postgres
-    volumes:
-      - ./data/db:/var/lib/postgresql/data
-    ports:
-      - "5432:5432"
-    environment:
-      - POSTGRES_DB=gatus
-      - POSTGRES_USER=username
-      - POSTGRES_PASSWORD=password
-    networks:
-      - web
-
-  gatus:
-    image: twinproduction/gatus:latest
-    restart: always
-    ports:
-      - "8080:8080"
-    environment:
-      - POSTGRES_USER=username
-      - POSTGRES_PASSWORD=password
-      - POSTGRES_DB=gatus
-    volumes:
-      - ./config:/config
-    networks:
-      - web
-    depends_on:
-      - postgres
-
-networks:
-  web:
-

Штука простая и удобная. Меня не раз просили посоветовать что-то для простого дашборда с зелёными кнопками, когда всё нормально и красными, когда нет. Вот это идеальный вариант под такую задачу.

-

Также с помощью этого мониторинга удобно сделать дашборд для мониторинга мониторингов, чтобы понимать, живы они или нет.

-
-

 

+

У меня было очень много заметок про различные мониторинги. Кажется, что я уже про всё более-менее полезное что-то да писал. Оказалось, что нет. Расскажу про очередной небольшой и удобный мониторинг, который позволяет очень просто и быстро создать дашборд с зелёными и красными кнопками. Если зелёные, то всё ОК, если красные, то НЕ ОК.  

+

 

+

Речь пойдёт про Gatus (https://github.com/TwiN/gatus). С его помощью очень удобно создавать Status Page. Сразу покажу, как это будет выглядеть:

+

 

+

https://status.twin.sh

+

 

+

И сразу же простой пример, как это настраивается. Там всё максимально просто и быстро. Мы будем проверять следующие условия:

+

 

+

◽️Подключение к сайту zabbix.com проходит успешно, а его IP равен 188.114.99.224. Так как этот домен резолвится в разные IP, можно будет увидеть, как срабатывает проверка.

+

◽️Сайт github.com отдаёт код 200 при подключении и содержит заголовок страницы GitHub: Let’s build from here · GitHub.  

+

◽️Сайт ya.ru отдаёт код 200 и имеет отклик менее 10 мс. На практике он будет больше, посмотрим, как срабатывает триггер. По этой проверке будет уведомление в Telegram.

+

◽️Домен vk.com имеет сертификат со сроком истечения не менее 48 часов и делегирование домена не менее 720 часов.  

+

 

+

Специально подобрал разнообразные примеры, чтобы вы оценили возможности мониторинга. Я просто открыл документацию и сходу по ней всё сделал. Всё очень просто и понятно, особо разбираться не пришлось. Создаём конфигурационный файл для этих проверок:

+
# mkdir gatus && cd gatus
+# touch config.yaml
+
+
alerting:
+  telegram:
+    token: "1393668911:AAHtEAKqxUH7ZpyX28R-wxKfvH1WR6-vdNw"
+    id: "210806260"
+
+endpoints:
+  - name: Zabbix Connection
+    url: "https://zabbix.com"
+    interval: 30s
+    conditions:
+      - "[CONNECTED] == true"
+      - "[IP] == 188.114.99.224"
+
+  - name: Github Title
+    url: "https://github.com"
+    interval: 30s
+    conditions:
+      - "[STATUS] == 200"
+      - "[BODY] == pat(*<title>GitHub: Let’s build from here · GitHub</title>*)"
+
+  - name: Yandex response
+    url: "https://ya.ru"
+    interval: 30s
+    conditions:
+      - "[STATUS] == 200"
+      - "[RESPONSE_TIME] < 10"
+    alerts:
+      - type: telegram
+        send-on-resolved: true
+
+  - name: VK cert & domain
+    url: "https://vk.com"
+    interval: 5m
+    conditions:
+      - "[CERTIFICATE_EXPIRATION] > 48h"
+      - "[DOMAIN_EXPIRATION] > 720h"
+
+

Запускаем Docker контейнер и цепляем к нему этот файл:

+
# docker run -p 8080:8080 -d \
+--mount type=bind,source="$(pwd)"/config.yaml,target=/config/config.yaml \
+--name gatus twinproduction/gatus
+
+

Идём по IP адресу сервера на порт 8080 и смотрим на свой мониторинг. Данные могут храниться в оперативной памяти, sqlite или postgresql базе. Если выберите последнее, то вот готовый docker-compose  для этого. По умолчанию данные хранятся в оперативной памяти и после перезапуска контейнера пропадают.  

+
version: "3.9"
+services:
+  postgres:
+    image: postgres
+    volumes:
+      - ./data/db:/var/lib/postgresql/data
+    ports:
+      - "5432:5432"
+    environment:
+      - POSTGRES_DB=gatus
+      - POSTGRES_USER=username
+      - POSTGRES_PASSWORD=password
+    networks:
+      - web
+
+  gatus:
+    image: twinproduction/gatus:latest
+    restart: always
+    ports:
+      - "8080:8080"
+    environment:
+      - POSTGRES_USER=username
+      - POSTGRES_PASSWORD=password
+      - POSTGRES_DB=gatus
+    volumes:
+      - ./config:/config
+    networks:
+      - web
+    depends_on:
+      - postgres
+
+networks:
+  web:
+

Штука простая и удобная. Меня не раз просили посоветовать что-то для простого дашборда с зелёными кнопками, когда всё нормально и красными, когда нет. Вот это идеальный вариант под такую задачу.

+

Также с помощью этого мониторинга удобно сделать дашборд для мониторинга мониторингов, чтобы понимать, живы они или нет.

+
+