Zabbix уменьшить базу

Есть сервер на FreeBSD11 с системой мониторинга Zabbix 3.4 с БД на mysql 5.6.34 (без разбивки по файлам innodb_file_per_table=0). Сейчас БД весит около 90Гб, проверял через

   SELECT table_schema as `Database`, table_name AS `Table`, 
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
FROM information_schema.TABLES 
ORDER BY (data_length + index_length) DESC
  
  

Хочу оптимизировать размер БД, удалив устаревшие данные (например, историю состояния хостов). Что нужно сделать после запроса на удаление, чтобы физический размер БД сократился в соответствии с удаленными данными?

Mysql настроен так:

   [mysqld]
long_query_time = 2
key_buffer_size = 512M
max_allowed_packet = 2M
sort_buffer_size = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 256M
thread_cache_size = 16
query_cache_size = 256M
query_cache_type=1
query_cache_limit=1048576
max_connections = 2048
tmp_table_size=256M
max_heap_table_size=128M
innodb_file_per_table=0
innodb_buffer_pool_size = 32G
innodb_log_buffer_size = 32M
innodb_flush_method=O_DIRECT
innodb_doublewrite = false
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_buffer_pool_instances = 8
sync_binlog = 0
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
max_allowed_packet=100M
  
  

1. Включить троттлинг (throttling).

Где искать. В правилах препроцессинга.

В Zabbix возможна настройка троттлинга двух видов:

⚡️ Discard unchanged — игнор повторяющихся значений. В этом случае график будет пустым, если метрика не меняется.

⚡️ Discard unchanged with heartbeat — игнор повторяющихся значений, но с регулярной проверкой жива ли метрика. На графике будут значения. Этот параметр препроцессинга требует ввода периода проверки. Если данные собираются раз в секунду, а интервал задан одной минутой, то Zabbix превратит ежесекундный поток единичек в ежеминутный поток.

2. Настроить переменное значение периода сбора данных.
Любой элемент данных можно собирать с разной периодичностью (или вообще не собирать) в зависимости от времени суток, дня недели или дня месяца. Примеры эпизодического сбора:

wd1−5h9 — каждый день с понедельника по пятницу в 9:00.

h9m/30;h11 — каждый день в 9:00, 9:30, 10:00, 10:30, 11:00.

h9−10m10−40/30 — каждый день в 9:10, 9:40, 10:10, 10:40.

md1wd1h9m30 — каждый первый день месяца в 9:30 если это понедельник.

Где искать. В настройках элементов данных (items), раздел пользовательский интервал (custom interval).

3. Удалять значение исходного элемента данных для зависимых элементов данных.
Простой пример: вы выполняете команду, которая возвращает портянку с данными, которые потом распознаёте при помощи зависимых метрик. Нет никакого смысла хранить эти данные. тем более если это большой текстовый блок.

Читайте также:  Mikrotik log

Где искать. В настройках элементов данных, раздел период хранения истории. Установить значение в «не хранить».

Если наш подход заинтересовал, подробнее о наших услугах вы можете узнать на  специальной странице
.

Data Base zabbix db

Тут будет различная инфа связная с базой заббикса. На основе MySQL MariaDB innodb

Обычно упираемся в следующие проблемы это :

1. Все стало тормозит пошли ложные срабатывания триггера сервер завис

2. Большие объемы данных нужно их подчистить

3. Потерянные данные нужно убрать

Больше нагрузка падает на оперативную память и на диск.

Сперва рассмотрим структуру базы, далее варианты ее очистки, поиска потерянных данных и тд.

То что сопоставил я к таблице

Связи означает что таблица сделана для связи других таблиц между собой ключами.

Если не хватает оперативки и быстрые диски можно временно использовать файл подкачки SWAP если его нет

Если не хватает оперативы на какое то время поможет swap, но он работает медленнее и быстрее изнашивает диск.

Для начала, нужно убедиться, что своп ещё не подключен:

swapon -s

Если команда выдала пустой результат или что-то навроде:

Результат:

Filename Type Size Used Priority

— значит, своп, скорее всего отсутствует.

Если в таблице в строке swap стоит 0, значит своп отсутствует

Быстрый способ

Используем fallocate:

fallocate -l 4G /swapfile

Результатом будет пустая строка, это нормально.

В отличие от dd, результат будет получен почти сразу, и я рекомендую именно его

Традиционный, медленный способ

команда

dd if=/dev/sda1 of=/swapfile bs=1G count=6

Синтаксис команды простой:

dd — команда предназначена для того, чтобы что-то куда-то копировать побайтово;

if=/dev/zero — указывает на источник, т.е. на то, откуда копируем, в данном случае из /dev/zero — это специальный файл в UNIX-подобных системах, представляющий собой источник нулевых байтов;

Читайте также:  Timeweb скачать бесплатно

of=/swapfile — указывает путь назначения, куда копируем данные;

bs=1G — количество байт, которые будут записаны за раз. В нашем случае, 1 гигабайт. Обозначения: G — гигабайт, M — мегабайт, K — килобайт, и так далее;

count=4 — сколько блоков размером с bs будет создано, в нашем случае 4.

ошибиться с определением пути для of= (куда сохранять файл), можно повредить данные на диске

Теперь, когда файл создан, проверим результат:

ls -lh /swapfile

Ответ

-rw-r—r— 1 root root 6,0G мар 12 14:42 /swapfile

ограничим права доступа

chmod 600 /swapfile

ls -lh /swapfile

ответ

-rw——- 1 root root 6,0G мар 12 14:42 /swapfile

Теперь нужно сделать из swapfile файл подкачки:

mkswap /swapfile

Ответ

mkswap: /swapfile: warning: wiping old ext4 signature.

Setting up swapspace version 1, size = 6291452 KiB

без метки, UUID=9950de08-0d80-4440-93c8-dbcd8c1b31bf

Подключим его к системе:

swapon /swapfile

Проверка

swapon -s

Ответ

Filename Type Size Used Priority

/swapfile file 6291452 0 -1

Как очистить SWAP в Linux

Вообще, это делается с помощью отключения и включения свопа.

swapoff -a && sleep 3 && swapon -a

не рекомендую прибегать к этому способу, так как swap просто очищается,

а не переносится в ОЗУ, и, в случае наличия данных системных процессов, система может стать недоступна.

Удаление файла подкачки

Чтобы деактивировать и удалить файл подкачки, выполните следующие действия:

Сначала отключите пространство подкачки, набрав:

swapoff -v /swapfile

Затем удалите запись файла подкачки /swapfile swap swap defaults 0 0 из файла /etc/fstab.

Наконец, удалите фактический файл подкачки:

rm /swapfile

Запуск вручную Очистки истории Заббикс

zabbix_server -R housekeeper_execute

или

zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute

Пример свернутых таблиц выстроенных по алфавиту для версии 4.2

Читайте также:  Whois-сервис

Сохранённая страница как zabbixbdA-Z это id 1

— Дамп данных таблицы `pma__table_coords`

— Дамп данных таблицы `pma__table_coords`

Схему связи можно просмотреть скачав исходный архив zabbix_4.2.8.orig.tar.gz

Смотрим zabbix_4.2.8.orig.tar\zabbix_4.2.8.orig\zabbix-4.2.8\database\mysql\schema.sql

Оцените статью
Хостинги