Настройка 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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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