Настройка Yandex Managed Service for ClickHouse® для Graphite
Yandex Managed Service for ClickHouse® можно использовать как хранилище данных для Graphite
Движок таблиц GraphiteMergeTree
Примечание
Если прореживание и агрегирование или усреднение не требуется, то для хранения данных Graphite можно использовать любой движок таблиц
Чтобы настроить БД для работы с Graphite:
- Подготовьте окружение.
- Создайте кластер.
- Зарегистрируйте конфигурацию rollup в кластере.
- Создайте и настройте виртуальную машину.
- Подключите виртуальную машину к базе данных.
- Создайте таблицу на основе GraphiteMergeTree.
- Настройте Graphite.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте окружение
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе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-2sqal8f0********.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
-
Выполните команду:
yc managed-clickhouse cluster add-graphite-rollup <идентификатор_кластера> --rollup-file-name <путь_к_yaml-файлу>
Где:
<идентификатор_кластера>
— идентификатор кластера.--rollup-file-name
— путь кgraphite-rollup.yaml
.
Подробнее о команде
managed-clickhouse cluster add-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://packages.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/doc-files/clickhouse-client.conf.example" \ --output-document ~/.clickhouse-client/config.xml
-
Получите SSL-сертификат:
sudo mkdir --parents /usr/local/share/ca-certificates/Yandex/ && \ sudo wget "https://storage.yandexcloud.net/cloud-certs/RootCA.pem" \ --output-document /usr/local/share/ca-certificates/Yandex/RootCA.crt && \ sudo chmod 655 /usr/local/share/ca-certificates/Yandex/RootCA.crt && \ sudo update-ca-certificates
Подключите виртуальную машину к базе данных
-
Если вы используете группы безопасности для облачной сети, настройте их так, чтобы был разрешен весь необходимый трафик между кластером и ВМ.
-
Запустите ClickHouse® CLI со следующими параметрами: вместо
<FQDN_хоста>
,<имя_БД>
,<имя_пользователя_БД>
и<пароль_пользователя_БД>
укажите ранее сохраненные параметры.clickhouse-client --host <FQDN_хоста> \ --secure \ --user <имя_пользователя_БД> \ --database <имя_БД> \ --password <пароль_пользователя_БД> \ --port 9440
Создайте таблицу на основе GraphiteMergeTree
В интерфейсе ClickHouse® CLI выполните запрос на создание таблицы на основе GraphiteMergeTreerollup
, описанной ранее:
CREATE TABLE GraphiteTable
(
Path String,
Time DateTime,
Value Int64,
Version UInt64
)
ENGINE = GraphiteMergeTree('test_rollup')
PARTITION BY Time
ORDER BY cityHash64(Version, Path)
Настройте 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 см. в документации
.
Как удалить созданные ресурсы
Чтобы удалить из кластера конфигурацию rollup
:
- Удалите все таблицы, которые используют эту конфигурацию.
- Используйте команду
yc managed-clickhouse cluster remove-graphite-rollup
.
Подробнее о команде см. в справочнике CLI.
Внимание
Удаление конфигурации rollup
без предварительного удаления таблиц, которые ее используют, может привести к отказу кластера.
Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc