Мониторинг актуальных IP-адресов облака Cloudflare в Zabbix

Cloud / Zabbix 6-03-2024, 12:37 sobir 1 291 0

Мониторинг актуальных IP-адресов облака Cloudflare в Zabbix

Cloudflare предоставляет широкий спектр услуг для улучшения безопасности и производительности веб-сайтов. Однако, по мере развития их сети, IP-адреса могут меняться, что делает важным наличие мониторинга для отслеживания обновлений.

В этой статье мы рассмотрим процесс настройки мониторинга актуальных IP-адресов Cloudflare в системе мониторинга Zabbix.

Шаг 1: Создание bash скрипта

Для начала нам нужно создать bash скрипт, который будет проверять обновления IP-адресов Cloudflare. Этот скрипт загружает файл с IP-адресами, сравнивает его с локальной копией и возвращает соответствующий код в зависимости от результатов проверки.

Локальную копию файла IP-адресов можно загрузить на сервер Zabbix командой:
su zabbix
cd $HOME
wget https://www.cloudflare.com/ips-v4

Содержимое скрипта cf-check-ip.sh:
#!/bin/bash

# Path to the local copy of the file
LOCAL_FILE="$HOME/ips-v4"

# URL to download the new version of the file
REMOTE_URL="https://www.cloudflare.com/ips-v4"

# Downloading the file using wget with timestamping parameter
wget --timestamping "$REMOTE_URL" -P /tmp >/dev/null 2>&1

# Checking if the download was successful
if [ $? -eq 0 ]; then
    # Calculating the MD5 hash of the local file
    LOCAL_MD5=$(md5sum "$LOCAL_FILE" | awk '{print $1}')
    # Calculating the MD5 hash of the downloaded file
    REMOTE_MD5=$(md5sum "/tmp/ips-v4" | awk '{print $1}')

    # Comparing the hash sums of files to determine if the file has been updated
    if [ "$LOCAL_MD5" = "$REMOTE_MD5" ]; then
        #echo "The file on the server has not changed."
        echo "0"
        exit 0
    else
        #echo "The file on the server has been updated."
        echo "1"
        exit 1
    fi
else
    # In case of an error during download
    #echo "Error downloading the file."
    echo "2"
    exit 1
fi

Шаг 2: Настройка Zabbix

После создания bash скрипта мы переходим к настройке мониторинга в системе Zabbix. Мы импортируем шаблон, который будет использоваться для мониторинга Cloudflare.

Содержимое шаблона zbx_cf_check_ip.yaml:
zabbix_export:
  version: '6.0'
  date: '2024-03-05T08:03:58Z'
  groups:
    -
      uuid: 7df96b18c230490a9a0a9e2307226338
      name: Templates
  templates:
    -
      uuid: c32ee8fea1694c5081f24b7eb66dc5b5
      template: Cloudflare
      name: Cloudflare
      groups:
        -
          name: Templates
      items:
        -
          uuid: 20d7a0193f1e4270b2da5936524b7472
          name: 'Check Cloudflare IPv4'
          type: EXTERNAL
          key: cf-check-ip.sh
          tags:
            -
              tag: Application
              value: Cloudflare
          triggers:
            -
              uuid: 01a1216595024bd8af90f20cfb3717e9
              expression: last(/Cloudflare/cf-check-ip.sh)=2
              name: 'Cloudflare IPv4 error downloading the file'
              priority: DISASTER
            -
              uuid: 10c0c7305ff14a17a52222429cc2893f
              expression: last(/Cloudflare/cf-check-ip.sh)=1
              name: 'Cloudflare IPv4 has been updated'
              priority: DISASTER
Похожие новости
Получаем реальные IP-адреса клиентов за Cloudflare в логах NGINX

Получаем реальные IP-адреса клиентов за Cloudflare в лог-файлах nginx access log....

Подробнее
Запрещаем веб трафик на origins, кроме Cloudflare IPs

Разрешаем веб трафик на сервер NGINX только с серверов Cloudflare....

Подробнее
Мониторинг реплики AlwaysON с помощью Zabbix

Мониторим estimated recovery time репликационных баз SQL Server AlwaysON в Zabbix....

Подробнее
Настраиваем мониторинг access.log NGINX с использованием Zabbix

Настраиваем мониторинг журнала access.log веб-сервера NGINX....

Подробнее
Получаем валидные сертификаты SSL от Let's Encrypt для NGINX

Получаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....

Подробнее
How to monitoring MySQL with Zabbix Agent

Monitoring MySQL database service with Zabbix Agent....

Подробнее
Комментарии (0)
Новые комментарии
komronu8 сентября 2022 18:23

Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда

img
К комментарию
sobir26 августа 2022 10:43

Можно ещё так: 1. Создаем отдельную сеть для наших контейнеров docker network

img
К комментарию
komronu22 августа 2022 15:12

Спасибо за отзыв, написал отдельную статью по установке и настройке Ansible

img
К комментарию
sobir19 августа 2022 18:00

Думаю в статье необходимо также описать процесс установки Ansible.

img
К комментарию
sobir17 октября 2021 11:40

Принудительное обновление сертификата: certbot certonly --force-renew -d

img
К комментарию
sobir3 июля 2021 14:19

Можно, но я решил описать процесс копирования ключей более подробно.

img
К комментарию
Все комментарии
Какой дистрибутив Linux вы часто используете?
Календарь
«    Июнь 2024    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
Подпишись на канал