Шардирование
Начиная с версии iBatyr Monitor 4.7 шардирование поддерживается из коробки.
Принцип работы
Шардирование — принцип проектирования базы данных, при котором логически независимые строки таблицы базы данных хранятся раздельно, заранее сгруппированные в секции. Эти секции, в свою очередь, размещаются на разных, физически и логически независимых серверах базы данных. При этом один физический узел кластера может содержать несколько серверов баз данных.
В iBatyr Monitor шардирование работает следующим образом:
Создаётся несколько таблиц, разбитых по месяцам с 1 числа, таблица на следующий месяц и дефолтная таблица (agent_event_default).
Таблица текущего месяца заполняется по мере поступления событий.
Примечание
agent_event_default — таблица в которую попадают события, не попавшие ни в одну из созданных таблиц. Например, если на агенте выставлено неверное время (месяц, год).
Если agent_event_default увеличилась до большого размера, значит где-то возникла проблема или что-то работает некорректно.
Полезные команды
Список команд, с помощью которых можно произвести диагностику или посмотреть информацию.
Действие |
Команда |
Комментарий |
|---|---|---|
Проверить, включено ли шардирование |
|
Если шардирование включено, на экране появится сообщение Sharding already enabled. |
Вывести список шардов |
|
Выводит список всех таблиц, разбитых по месяцам; указывает их размер. |
Посмотреть данные таблицы |
|
Результатом вывода будет количество событий в выбранной таблице, а также время первого и последнего события, где |
Создать «холодное» хранилище |
|
Создаёт «холодное» хранилище на другом диске, например для создания архива. |
«Заморозить» таблицу |
|
Команда заморозит таблицу table_name и перенесёт её на медленный диск. Внимание: Перед началом «заморозки» остановите nginx: |
Удалить данные за месяц |
|
Удаляет таблицу table и привязанные к ней файлы. |
Удалить данные за несколько месяцев |
|
Удаляет все таблицы, кроме n: 0 — удаляет все таблицы; 1 — оставляет только текущий месяц; 2 — оставляет текущий и предыдущий месяцы; и т. д. Команда удаляет шарды в PostgreSQL, партиции в ClickHouse и привязанные к ним файлы. |
Удалить партицию в ClickHouse |
|
Удаляет партицию |
Удаление шарда через веб-интерфейс
Примечание
При удалении шарда, будут удалены все файлы, привязанные к указанной таблице.
Удалить шарды в PostgreSQL и ClickHouse можно из веб-интерфейса сервера iBatyr Monitor. Для этого в разделе Панель управления — Базы данных выберите интересующую вас базу и в выпадающем меню Выполнить действие выберите Удалить данные.