Настройка Yandex Managed Service for ClickHouse для Graphite
Yandex Managed Service for ClickHouse можно использовать как хранилище данных для Graphite.
Движок таблиц GraphiteMergeTree позволяет прореживать и агрегировать или усреднять содержимое БД специально для Graphite. Движок уменьшает объем хранения данных и повышает эффективность запросов от Graphite.
Примечание
Если прореживание и агрегирование или усреднение не требуется, то для хранения данных Graphite можно использовать любой движок таблиц ClickHouse.
Чтобы настроить БД для работы с Graphite:
- Подготовьте окружение.
- Создайте кластер.
- Зарегистрируйте конфигурацию rollup в кластере.
- Создайте и настройте виртуальную машину.
- Подключите виртуальную машину к базе данных.
- Создайте таблицу на основе GraphiteMergeTree.
- Настройте Graphite.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте окружение
Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
- На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки БД ClickHouse для Graphite входит:
- плата за вычислительные ресурсы кластера, объем хранилища и резервных копий (см. тарифы Yandex Managed Service for ClickHouse);
- плата за запущенную ВМ для управления БД (см. тарифы Yandex Compute Cloud).
Создайте кластер
- Создайте кластер Managed Service for ClickHouse любой подходящей вам конфигурации с БД
db1
и публичным доступом ко всем его хостам. Сохраните имя БД, имя пользователя БД и пароль. - В консоли управления выберите сервис Managed Service for ClickHouse, перейдите в созданный кластер. На вкладке Обзор сохраните идентификатор кластера.
- В правом верхнем углу нажмите Подключиться, на вкладке Shell из поля Пример строки подключения сохраните параметр
--host
, напримерrc1a-2sqal8f01znegjkj.mdb.yandexcloud.net
, это FQDN хоста кластера, он потребуется в дальнейшем.
Зарегистрируйте конфигурацию rollup в кластере
Зарегистрируйте в кластере конфигурацию rollup
для прореживания и агрегирования или усреднения содержимого БД для Graphite:
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Подготовьте yaml-файл
graphite-rollup.yaml
с описанием параметровrollup
, например:name: test_rollup patterns: - regexp: click_cost function: max retention: - age: 86400 precision: 60
-
Вместо
<CLUSTER_ID>
укажите идентификатор кластера, вместо<путь к yaml-файлу>
— путь кgraphite-rollup.yaml
и выполните команду:yc managed-clickhouse cluster add-graphite-rollup <CLUSTER_ID> --rollup-file-name <путь к yaml-файлу>
Где:
<CLUSTER_ID>
– идентификатор кластера.<путь к yaml-файлу>
— путь кgraphite-rollup.yaml
.
Подробнее о команде
managed-clickhouse cluster add-graphite-rollup
см. в справочнике CLI.Примечание
Для удаления конфигурации
rollup
используйте командуmanaged-clickhouse cluster remove-graphite-rollup
. Подробнее о команде см. в справочнике CLI.
Используйте метод REST API update, передав в теле запроса требуемые параметры rollup
:
"graphiteRollup": [
{
"name": "test_rollup",
"patterns": [
{
"regexp": "click_cost",
"function": "max",
"retention": [
{
"age": "86400",
"precision": "60"
}
]
}
]
}
]
Создайте и настройте виртуальную машину
-
В той же облачной сети, где расположен кластер, создайте ВМ на основе Linux.
-
Подключитесь к ВМ по SSH.
-
Подключите DEB-репозиторий ClickHouse:
sudo apt update && sudo apt install -y apt-transport-https ca-certificates dirmngr && \ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4 && \ echo "deb https://repo.clickhouse.com/deb/stable/ main/" | sudo tee \ /etc/apt/sources.list.d/clickhouse.list
-
Установите зависимости и клиентское приложение
clickhouse-client
:sudo apt update && sudo apt install -y clickhouse-client
-
Загрузите файл конфигурации для
clickhouse-client
:mkdir -p ~/.clickhouse-client && wget "https://storage.yandexcloud.net/mdb/clickhouse-client.conf.example" -O ~/.clickhouse-client/config.xml
-
Получите SSL-сертификат:
sudo mkdir --parents /usr/local/share/ca-certificates/Yandex/ && \ sudo wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \ --output-document /usr/local/share/ca-certificates/Yandex/YandexCA.crt && \ sudo chmod 655 /usr/local/share/ca-certificates/Yandex/YandexCA.crt
Подключите виртуальную машину к базе данных
-
Настройте группы безопасности для облачной сети так, чтобы был разрешен весь необходимый трафик между кластером и ВМ.
-
Запустите ClickHouse CLI со следующими параметрами: вместо
<FQDN хоста>
,<имя БД>
,<имя пользователя БД>
и<пароль пользователя БД>
укажите ранее сохраненные параметры.clickhouse-client --host <FQDN хоста> \ --secure \ --user <имя пользователя БД> \ --database <имя БД> \ --password <пароль пользователя БД> \ --port 9440
Создайте таблицу на основе GraphiteMergeTree
В интерфейсе ClickHouse CLI выполните запрос на создание таблицы на основе GraphiteMergeTree. В качестве параметра передайте имя секции rollup
, описанной ранее:
CREATE TABLE GraphiteTable
(
metric String,
time DateTime,
value Int64,
version UInt64
)
ENGINE = GraphiteMergeTree('test_rollup')
PARTITION BY time
ORDER BY cityHash64(version, metric)
Настройте Graphite
Настройте Graphite для сохранения значений метрик в кластере ClickHouse. При этом прореживание данных будет проводиться автоматически средствами сервера ClickHouse в соответствии с параметрами, которые вы указали.
-
В системе с Graphite установите утилиту
carbon-clickhouse
:wget https://github.com/go-graphite/carbon-clickhouse/releases/download/v0.11.2/carbon-clickhouse_0.11.2_amd64.deb && \ sudo apt-get install $(pwd)/carbon-clickhouse_0.11.2_amd64.deb
-
Настройте
carbon-clickhouse
. -
Запустите
carbon-clickhouse
:sudo systemctl enable carbon-clickhouse && \ sudo systemctl start carbon-clickhouse
-
Установите утилиту
graphite-clickhouse
:wget https://github.com/go-graphite/graphite-clickhouse/releases/download/v0.13.2/graphite-clickhouse_0.13.2_amd64.deb && \ sudo apt-get install $(pwd)/graphite-clickhouse_0.13.2_amd64.deb
-
Настройте
graphite-clickhouse
. -
Запустите
graphite-clickhouse
:sudo systemctl enable graphite-clickhouse && \ sudo systemctl start graphite-clickhouse
Подробнее о настройке Graphite см. в документации.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы: