Graphite на отдельном сервере

Перенос Graphite на отдельный сервер позволяет разделить нагрузку на два сервера.

Рекомендуется делать перенос на остановленном Mitigator´е (либо остановленной подсистеме graphite).

Дальше по тексту Server1 – сервер с Mitigator, Server2 – сервер, на который переносятся подсистемы.

Предполагается, что на Server2 уже установлен Docker и docker-compose.

Создание бекапов

  1. Выполнить остановку подсистем на Server1:

    cd /srv/mitigator
    docker-compose down
    

    либо выполнить остановку части подсистем:

    cd /srv/mitigator
    docker-compose down carbon-clickhouse carbonapi clickhouse grafana graphite-clickhouse
    
  2. Создать бекап томов clickhouse и grafana:

    tar -czf clickhouse.tgz -C /var/lib/docker/volumes/mitigator_clickhouse/ .
    tar -czf grafana.tgz -C /var/lib/docker/volumes/mitigator_grafana/ .
    
  3. Переместить бекапы с Server1 на Server2.

  4. Развернуть бекапы на Server2:

    mkdir -p /var/lib/docker/volumes/mitigator_clickhouse/ && \
        tar -xzf clickhouse.tgz -C /var/lib/docker/volumes/mitigator_clickhouse/
    mkdir -p /var/lib/docker/volumes/mitigator_grafana/ && \
        tar -xzf grafana.tgz -C /var/lib/docker/volumes/mitigator_grafana/
    

Подготовка наборов подсистем

  1. На Server1 создать, либо дополнить docker-compose.override.yml следующим:

    version: "2.2"
    services:
        backend:
            environment:
                BACKEND_GRAPHITE_URL: "http://192.168.10.20/render/"
    
        fwstats:
            environment:
                FWSTATS_GRAPHITE_ADDRESS: "192.168.10.20:2003"
    
        clickhouse:
            scale: 0
    
        graphite-clickhouse:
            scale: 0
    
        carbon-clickhouse:
            scale: 0
    
        carbonapi:
            scale: 0
    
        grafana:
            scale: 0
    

    Здесь 192.168.10.20 – условный адрес Server2, который необходимо заменить на действительный адрес.

  2. На Server2 создаем docker-compose.yml для подсистем:

    mkdir -p /opt/mitigator-graphite
    

    Скачиваем docker-compose.yml:

    wget https://docs.mitigator.ru/dist/grafbase/docker-compose.yml \
        -O /opt/mitigator-graphite/docker-compose.yml
    
  3. Создаем службу для запуска подсистем на Server2:

    Скачиваем файл сервиса:

    wget https://docs.mitigator.ru/dist/grafbase/docker-compose@.service \
        -O /etc/systemd/system/docker-compose@.service
    

    Активируем службу:

    systemctl enable docker-compose@mitigator-graphite
    

Запуск сервисов

  1. На Server2 запустить сервисы:

    • Выполняем логин на docker.mitigator.ru

      docker login docker.mitigator.ru
      
    • Перейти в рабочую директорию

      cd /opt/mitigator-graphite
      
    • Запулить образы

      docker-compose pull
      
    • Запустить сервис

      systemctl start docker-compose@mitigator-graphite
      
  2. На Server1, если был остановлен целиком, выполнить запуск Mitigator´а как обычно.