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

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

Мониторинг актуальных 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
6-03-2024, 12:37
Вернуться назад