База данных Заббикс

Процесс установки zabbix а так же дополнительных различных вспомогательных программ
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 865
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 39 раз
Контактная информация:

База данных Заббикс

Сообщение Артём Мамзиков »

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

Обычно упираемся в следующие проблемы это :
1. Все стало тормозит пошли ложные срабатывания триггера сервер завис
2. Большие объемы данных нужно их подчистить
3. Потерянные данные нужно убрать

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

Кто не читал рекомендую посмотреть Партиционирование базы данных MySQL Partitioning Zabbix так же там описано как работает стандартная очистка истории housekeeper.

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


Описание Таблиц в базе данных
Оф.Схема БД 4.0
структура таблицы zabbix
Описание таблиц на примере API

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

acknowledges (Подтверждает) - Эта таблица содержит подтверждения событий.
actions (Действия) - Созданные действия (которые необходимо предпринять при срабатывании триггера.)
alerts (предупреждения) - Отправка сообщений
applications - Группы элементов данных
application_discovery (обнаружение) Макросы для групп LLD, обнаруженные группы
application_prototype - Прототипы групп элементов данных
application_template -шаблон связка таблиц ключ (applicationid , templateid)
auditlog - Журнал аудита
auditlog_details Журнал аудита Детали (старое значение стало новое значение, например изменение триггера или узла)
autoreg_host Авто регистрация хоста(узла)
conditions - условия?
config - Конфигурация Тип Аунтификации настройки LDAP
correlation - Корреляция событий
corr_condition - Корреляция условия
corr_condition_group - Корреляция группа
corr_condition_tag - Корреляция тег
corr_condition_tagpair
corr_condition_tagvalue - Корреляция тег значения
corr_operation - Корреляция операции
dashboard - Панель управления (дашборт) Список созданных панелей
dashboard_user - Пользователь панели управления
dashboard_usrgrp - Группа пользователей панели управления
dbversion - Версия базы данных (заббикса)
dchecks Проверка (связи)?
dhosts Хост(Узел) (связи) обнаружения Доступен/Недоступен
drules (правила) - Правила обнаружения
dservices (имена узлов IP DNS)?
escalations эскалации (связи) - если проблема не устранена сообщения будут приходить через определенный интервал времени, получать сообщения о восстановлении сервиса
events - События (Проблемы)
event_recovery - восстановление событий
event_suppress - подавление событий
event_tag - тег события
expressions (выражения) Регулярные выражения
functions - функции (триггеров для узлов связи)
globalmacro - Глобальные Макросы
globalvars -
graphs - Графики
graphs_items - Данные для графика Элементы данных цвет
graph_discovery - Обнаружение графиков (связь)
graph_theme - Графическая тема оформления (Веб-интерфейс - Тема по умолчанию)
group_discovery - Обнаруженные группы?
group_prototype - Прототипы групп?
history - История (числовые данные с плавающей запятой)
history_log - История Лог (журнал)
history_str - История Строка (до 255 символов)
history_text - История Текст
history_uint - История единицы (измерения, числовой целые)
hostmacro - Макросы Узлов (Хостов)
hosts - Хосты (узлы) Название, описание узлов и шаблонов (связи)
hosts_groups - Группы для узлов и шаблонов (связи)
hosts_links - Хост ссылка быстрее всего связи узлов между собой зависимости
hosts_links_settings - Настройка связи узлов
hosts_templates - связь шаблонов и узлов
host_discovery - Обнаруженные хосты (связь)
host_inventory - Инвентаризационные данные Узла
host_tag - Теги Узла
housekeeper - Очистка истории zabbix
hstgrp - Имена групп шаблонов
httpstep - Шаги веб проверки в узле (ссылка ключевое слово код состояния)
httpstepitem - элемент шага http (связи)
httpstep_field - поле шага http (Логин Пароль) переменные
httptest - HTTP-тест
httptestitem - HTTP-тест-элемент (связи)
httptest_field - http тестовое поле (Логины Пароли) из переменных узлов (связи)
icon_map - карта значков
icon_mapping - отображение значков
ids - идентификаторы (все таблицы бд с присвоением id)
images - Изображения (дефолтные иконки)
interface - Интерфейсы (узлов IP DNS Port)
interface_discovery - Найденные Интерфейсы
items - Элементы данных
items_applications - связи
item_application_prototype - связи
item_condition - Правило обнаружения Фильтры привязка к узлам
item_discovery - связи
item_preproc - значения предобработки элемента в узлах
lld_macro_path - (путь к макросу lld)?
maintenances - Обслуживание (Периоды обслуживания)
maintenances_groups - группы Обслуживания (связи)
maintenances_hosts - хосты (узлы) Обслуживания (связи)
maintenances_windows - Обслуживания windows
maintenance_tag - Обслуживание Теги
manage_partitions - Партицирование правила создания таблиц
mappings - Сопоставления (Преобразование значений)
media - СМИ способы оповещения Пользователи Пользователь Оповещения
media_type - Способы оповещений
opcommand - Команды (Действия Выполнить удаленные команды на узлах сети)
opcommand_grp
opcommand_hst - связи
opconditions - условия операции
operations - операции связи
opgroup - группа оп связи
opinventory - инвентаризация оп связи
opmessage - Действия Операции (восстановления обновления (Тема по умолчанию, Сообщение по умолчанию))
opmessage_grp
opmessage_usr - связи
optemplate - шаблон операции
problem - Проблемы (текущие + история, так же для дашборта) (связи)
problem_tag - Теги проблем (текущие + история) связь на eventid
profiles - Профиля (Настройки отображения и уведомлений веб интерфейсе)
proxy_autoreg_host - Прокси авто регистрация хостов
proxy_dhistory - Прокси история
proxy_history - Прокси история
regexps - Глобальные Регулярные выражения
rights - Права
screens - Экраны?
screens_items - элементы экрана (связи)
screen_user - Пользователи экрана (связи)
screen_usrgrp - Группы экрана (связи)
scripts - Скрипты в разделе Администрирование
services - Сервисы
services_links - Ссылки на сервисы
services_times - Элементы Сервисов
service_alarms - Оповещение Сервисов
sessions - Сессии пользователей Аудит (входы выходы пользователей веб интерфейса)
slides - слайды ?
slideshows - слайд-шоу
slideshow_user - слайд-шоу_пользователь
slideshow_usrgrp - слайд-шоу_Групп_пользователей
sysmaps - Карты сетей
sysmaps_elements - Элементы данных карте сетей
sysmaps_links - Цвет линий, описание, ярлык тд
sysmaps_link_triggers - триггеры на карте сетей
sysmap_element_trigger - триггеры на элементы карты сетей
ysmap_element_url - url адрес на карте сетей
sysmap_shape - формы на карте (размер, цвет, наименование)
sysmap_url - url на карте
sysmap_user - пользователи карт
sysmap_usrgrp - группы карт
tag_filter - Фильтр тегов
task - Задачи
task_acknowledge - Задачи событий
task_check_now - Задача проверить сейчас
task_close_problem - Задача закрытия проблем
task_remote_command - Задача удаленных команд
task_remote_command_result - Результат выполнения удаленных команд
timeperiods - периоды времени (периодичность)
trends - тенденции данные (время значения мин сред мак)
trends_uint - тенденции данные числовые
triggers - Триггеры
trigger_depends - Триггер зависит
trigger_discovery - Обнаружение триггера
trigger_tag - Тег триггера
users - Пользователи системы заббикс
users_groups - Группы пользователей связи
usrgrp - Группы
valuemaps - карты значений название элементов ?
widget - виджет То что создано на дашбортах-Панели
widget_field - поле виджета


Если не хватает оперативки и быстрые диски можно временно использовать файл подкачки SWAP если его нет
подключение swap (файл подкачки)
Показать
Если не хватает оперативы на какое то время поможет swap, но он работает медленнее и быстрее изнашивает диск.
Для начала, нужно убедиться, что своп ещё не подключен:
swapon -s
Если команда выдала пустой результат или что-то навроде:
Результат:
Filename Type Size Used Priority
— значит, своп, скорее всего отсутствует.

Дополнительно проверим командой:
free -m
total used free shared buffers cached
Mem: 8101 4656 3445 42 191 1664
-/+ buffers/cache: 2800 5301
Swap: 0 0 0

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

надо проверить, сколько свободного места есть на диске
df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/sda1 458G 105G 330G 25% /
udev 10M 0 10M 0% /dev
tmpfs 1,6G 8,6M 1,6G 1% /run
tmpfs 4,0G 0 4,0G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 4,0G 0 4,0G 0% /sys/fs/cgroup
tmpfs 811M 0 811M 0% /run/user/0

Быстрый способ
Используем fallocate:
fallocate -l 4G /swapfile
Результатом будет пустая строка, это нормально.
В отличие от dd, результат будет получен почти сразу, и я рекомендую именно его

Традиционный, медленный способ
команда
dd if=/dev/sda1 of=/swapfile bs=1G count=6

Синтаксис команды простой:
dd — команда предназначена для того, чтобы что-то куда-то копировать побайтово;
if=/dev/zero — указывает на источник, т.е. на то, откуда копируем, в данном случае из /dev/zero — это специальный файл в UNIX-подобных системах, представляющий собой источник нулевых байтов;
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

Добавление свопа в автозагрузку
echo "/swapfile none swap sw 0 0" >> /etc/fstab нельзя чтоб был пробел иначе хана всей системе)
Проверка
nano /etc/fstab

Как очистить 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


Схема БД Zabbix версию не знаю нашел в интернете
schema_zabbix.mwb.zip
schema_zabbix.mwb.zip
(69.53 КБ) 65 скачиваний
чем открыть .mwb например mysql-workbench-community-8.0.27-winx64

Виде картинки
Схема БД Zabbix
Схема БД Zabbix
Так же связи можно посмотреть в phpMyAdmin выбрав базу данных zabbixbd и перейти на вкладку дизайнер

Пример свернутых таблиц выстроенных по алфавиту для версии 4.2
Сохранённая страница как zabbixbdA-Z это id 1
Схема БД Zabbix phpmyadmin дизайнер.jpg
Схема БД Zabbix phpmyadmin дизайнер.jpg
Как создать 2 страницу в дизайнере для этой же базы и открыть это уже id 2
phpmyadmin дизайнер как создать новую страницу и открыть
phpmyadmin дизайнер как создать новую страницу и открыть
Расстановка сохраняется в База данных: phpmyadmin »Таблица: pma__table_coords
По алфавиту свернуто id 1
Показать
-- Дамп данных таблицы `pma__table_coords`
--

REPLACE INTO `pma__table_coords` (`db_name`, `table_name`, `pdf_page_number`, `x`, `y`) VALUES
('zabbixdb', 'acknowledges', 1, 40, 10),
('zabbixdb', 'actions', 1, 40, 50),
('zabbixdb', 'alerts', 1, 40, 90),
('zabbixdb', 'application_discovery', 1, 40, 170),
('zabbixdb', 'application_prototype', 1, 40, 210),
('zabbixdb', 'application_template', 1, 40, 250),
('zabbixdb', 'applications', 1, 40, 130),
('zabbixdb', 'auditlog', 1, 40, 290),
('zabbixdb', 'auditlog_details', 1, 40, 330),
('zabbixdb', 'autoreg_host', 1, 40, 370),
('zabbixdb', 'conditions', 1, 40, 410),
('zabbixdb', 'config', 1, 40, 450),
('zabbixdb', 'corr_condition', 1, 40, 530),
('zabbixdb', 'corr_condition_group', 1, 40, 570),
('zabbixdb', 'corr_condition_tag', 1, 40, 610),
('zabbixdb', 'corr_condition_tagpair', 1, 40, 650),
('zabbixdb', 'corr_condition_tagvalue', 1, 40, 690),
('zabbixdb', 'corr_operation', 1, 40, 730),
('zabbixdb', 'correlation', 1, 40, 490),
('zabbixdb', 'dashboard', 1, 40, 770),
('zabbixdb', 'dashboard_user', 1, 40, 810),
('zabbixdb', 'dashboard_usrgrp', 1, 40, 850),
('zabbixdb', 'dbversion', 1, 40, 890),
('zabbixdb', 'dchecks', 1, 40, 930),
('zabbixdb', 'dhosts', 1, 320, 10),
('zabbixdb', 'drules', 1, 320, 50),
('zabbixdb', 'dservices', 1, 320, 90),
('zabbixdb', 'escalations', 1, 320, 130),
('zabbixdb', 'event_recovery', 1, 320, 210),
('zabbixdb', 'event_suppress', 1, 320, 250),
('zabbixdb', 'event_tag', 1, 320, 290),
('zabbixdb', 'events', 1, 320, 170),
('zabbixdb', 'expressions', 1, 320, 330),
('zabbixdb', 'functions', 1, 320, 370),
('zabbixdb', 'globalmacro', 1, 320, 410),
('zabbixdb', 'globalvars', 1, 320, 450),
('zabbixdb', 'graph_discovery', 1, 320, 570),
('zabbixdb', 'graph_theme', 1, 320, 610),
('zabbixdb', 'graphs', 1, 320, 490),
('zabbixdb', 'graphs_items', 1, 320, 530),
('zabbixdb', 'group_discovery', 1, 320, 650),
('zabbixdb', 'group_prototype', 1, 320, 690),
('zabbixdb', 'history', 1, 320, 730),
('zabbixdb', 'history_log', 1, 320, 770),
('zabbixdb', 'history_str', 1, 320, 810),
('zabbixdb', 'history_text', 1, 320, 850),
('zabbixdb', 'history_uint', 1, 320, 890),
('zabbixdb', 'host_discovery', 1, 550, 250),
('zabbixdb', 'host_inventory', 1, 550, 290),
('zabbixdb', 'host_tag', 1, 550, 330),
('zabbixdb', 'hostmacro', 1, 550, 10),
('zabbixdb', 'hosts', 1, 550, 50),
('zabbixdb', 'hosts_groups', 1, 550, 90),
('zabbixdb', 'hosts_links', 1, 550, 130),
('zabbixdb', 'hosts_links_settings', 1, 550, 170),
('zabbixdb', 'hosts_templates', 1, 550, 210),
('zabbixdb', 'housekeeper', 1, 550, 370),
('zabbixdb', 'hstgrp', 1, 550, 410),
('zabbixdb', 'httpstep', 1, 550, 450),
('zabbixdb', 'httpstep_field', 1, 550, 650),
('zabbixdb', 'httpstepitem', 1, 550, 610),
('zabbixdb', 'httptest', 1, 550, 570),
('zabbixdb', 'httptest_field', 1, 550, 530),
('zabbixdb', 'httptestitem', 1, 550, 490),
('zabbixdb', 'icon_map', 1, 550, 690),
('zabbixdb', 'icon_mapping', 1, 550, 730),
('zabbixdb', 'ids', 1, 550, 770),
('zabbixdb', 'images', 1, 550, 810),
('zabbixdb', 'interface', 1, 550, 850),
('zabbixdb', 'interface_discovery', 1, 550, 890),
('zabbixdb', 'item_application_prototype', 1, 800, 90),
('zabbixdb', 'item_condition', 1, 800, 130),
('zabbixdb', 'item_discovery', 1, 800, 170),
('zabbixdb', 'item_preproc', 1, 800, 210),
('zabbixdb', 'items', 1, 800, 10),
('zabbixdb', 'items_applications', 1, 800, 50),
('zabbixdb', 'lld_macro_path', 1, 800, 250),
('zabbixdb', 'maintenance_tag', 1, 800, 450),
('zabbixdb', 'maintenances', 1, 800, 290),
('zabbixdb', 'maintenances_groups', 1, 800, 330),
('zabbixdb', 'maintenances_hosts', 1, 800, 370),
('zabbixdb', 'maintenances_windows', 1, 800, 410),
('zabbixdb', 'manage_partitions', 1, 800, 490),
('zabbixdb', 'mappings', 1, 800, 530),
('zabbixdb', 'media', 1, 800, 570),
('zabbixdb', 'media_type', 1, 800, 610),
('zabbixdb', 'opcommand', 1, 800, 650),
('zabbixdb', 'opcommand_grp', 1, 800, 690),
('zabbixdb', 'opcommand_hst', 1, 800, 730),
('zabbixdb', 'opconditions', 1, 800, 770),
('zabbixdb', 'operations', 1, 800, 810),
('zabbixdb', 'opgroup', 1, 800, 850),
('zabbixdb', 'opinventory', 1, 800, 890),
('zabbixdb', 'opmessage', 1, 800, 930),
('zabbixdb', 'opmessage_grp', 1, 800, 970),
('zabbixdb', 'opmessage_usr', 1, 800, 1010),
('zabbixdb', 'optemplate', 1, 1110, 10),
('zabbixdb', 'problem', 1, 1110, 50),
('zabbixdb', 'problem_tag', 1, 1110, 90),
('zabbixdb', 'profiles', 1, 1110, 130),
('zabbixdb', 'proxy_autoreg_host', 1, 1110, 170),
('zabbixdb', 'proxy_dhistory', 1, 1110, 210),
('zabbixdb', 'proxy_history', 1, 1110, 250),
('zabbixdb', 'regexps', 1, 1110, 290),
('zabbixdb', 'rights', 1, 1110, 330),
('zabbixdb', 'screen_user', 1, 1110, 450),
('zabbixdb', 'screen_usrgrp', 1, 1110, 490),
('zabbixdb', 'screens', 1, 1110, 370),
('zabbixdb', 'screens_items', 1, 1110, 410),
('zabbixdb', 'scripts', 1, 1110, 530),
('zabbixdb', 'service_alarms', 1, 1110, 690),
('zabbixdb', 'services', 1, 1110, 570),
('zabbixdb', 'services_links', 1, 1110, 610),
('zabbixdb', 'services_times', 1, 1110, 650),
('zabbixdb', 'sessions', 1, 1110, 730),
('zabbixdb', 'slides', 1, 1110, 770),
('zabbixdb', 'slideshow_user', 1, 1110, 850),
('zabbixdb', 'slideshow_usrgrp', 1, 1110, 890),
('zabbixdb', 'slideshows', 1, 1110, 810),
('zabbixdb', 'sysmap_element_trigger', 1, 1110, 1090),
('zabbixdb', 'sysmap_element_url', 1, 1110, 1130),
('zabbixdb', 'sysmap_shape', 1, 1110, 1170),
('zabbixdb', 'sysmap_url', 1, 1110, 1210),
('zabbixdb', 'sysmap_user', 1, 1110, 1250),
('zabbixdb', 'sysmap_usrgrp', 1, 1110, 1290),
('zabbixdb', 'sysmaps', 1, 1110, 930),
('zabbixdb', 'sysmaps_elements', 1, 1110, 970),
('zabbixdb', 'sysmaps_link_triggers', 1, 1110, 1050),
('zabbixdb', 'sysmaps_links', 1, 1110, 1010),
('zabbixdb', 'tag_filter', 1, 1380, 10),
('zabbixdb', 'task', 1, 1380, 50),
('zabbixdb', 'task_acknowledge', 1, 1380, 90),
('zabbixdb', 'task_check_now', 1, 1380, 130),
('zabbixdb', 'task_close_problem', 1, 1380, 170),
('zabbixdb', 'task_remote_command', 1, 1380, 210),
('zabbixdb', 'task_remote_command_result', 1, 1380, 250),
('zabbixdb', 'timeperiods', 1, 1380, 290),
('zabbixdb', 'trends', 1, 1380, 330),
('zabbixdb', 'trends_uint', 1, 1380, 370),
('zabbixdb', 'trigger_depends', 1, 1380, 450),
('zabbixdb', 'trigger_discovery', 1, 1380, 490),
('zabbixdb', 'trigger_tag', 1, 1380, 530),
('zabbixdb', 'triggers', 1, 1380, 410),
('zabbixdb', 'users', 1, 1380, 570),
('zabbixdb', 'users_groups', 1, 1380, 610),
('zabbixdb', 'usrgrp', 1, 1380, 650),
('zabbixdb', 'valuemaps', 1, 1380, 690),
('zabbixdb', 'widget', 1, 1380, 730),
('zabbixdb', 'widget_field', 1, 1380, 770);
По алфавиту развернуто id 2
Показать
-- Дамп данных таблицы `pma__table_coords`
--

REPLACE INTO `pma__table_coords` (`db_name`, `table_name`, `pdf_page_number`, `x`, `y`) VALUES
('zabbixdb', 'acknowledges', 2, 40, 10),
('zabbixdb', 'actions', 2, 40, 240),
('zabbixdb', 'alerts', 2, 40, 610),
('zabbixdb', 'application_discovery', 2, 40, 1170),
('zabbixdb', 'application_prototype', 2, 40, 1350),
('zabbixdb', 'application_template', 2, 40, 1490),
('zabbixdb', 'applications', 2, 40, 1030),
('zabbixdb', 'auditlog', 2, 40, 1600),
('zabbixdb', 'auditlog_details', 2, 40, 1860),
('zabbixdb', 'autoreg_host', 2, 40, 2050),
('zabbixdb', 'conditions', 2, 40, 2260),
('zabbixdb', 'config', 2, 40, 2450),
('zabbixdb', 'corr_condition', 2, 40, 4260),
('zabbixdb', 'corr_condition_group', 2, 40, 4380),
('zabbixdb', 'corr_condition_tag', 2, 40, 4500),
('zabbixdb', 'corr_condition_tagpair', 2, 40, 4590),
('zabbixdb', 'corr_condition_tagvalue', 2, 40, 4700),
('zabbixdb', 'corr_operation', 2, 40, 4840),
('zabbixdb', 'correlation', 2, 40, 4070),
('zabbixdb', 'dashboard', 2, 40, 4960),
('zabbixdb', 'dashboard_user', 2, 40, 5100),
('zabbixdb', 'dashboard_usrgrp', 2, 40, 5240),
('zabbixdb', 'dbversion', 2, 40, 5380),
('zabbixdb', 'dchecks', 2, 40, 5470),
('zabbixdb', 'dhosts', 2, 360, 10),
('zabbixdb', 'drules', 2, 360, 170),
('zabbixdb', 'dservices', 2, 360, 380),
('zabbixdb', 'escalations', 2, 360, 670),
('zabbixdb', 'event_recovery', 2, 360, 1250),
('zabbixdb', 'event_suppress', 2, 360, 1420),
('zabbixdb', 'event_tag', 2, 360, 1560),
('zabbixdb', 'events', 2, 360, 960),
('zabbixdb', 'expressions', 2, 360, 1700),
('zabbixdb', 'functions', 2, 360, 1890),
('zabbixdb', 'globalmacro', 2, 360, 2060),
('zabbixdb', 'globalvars', 2, 360, 2180),
('zabbixdb', 'graph_discovery', 2, 360, 3040),
('zabbixdb', 'graph_theme', 2, 360, 3130),
('zabbixdb', 'graphs', 2, 360, 2280),
('zabbixdb', 'graphs_items', 2, 360, 2780),
('zabbixdb', 'group_discovery', 2, 360, 3480),
('zabbixdb', 'group_prototype', 2, 360, 3650),
('zabbixdb', 'history', 2, 360, 3810),
('zabbixdb', 'history_log', 2, 360, 3950),
('zabbixdb', 'history_str', 2, 360, 4180),
('zabbixdb', 'history_text', 2, 360, 4320),
('zabbixdb', 'history_uint', 2, 360, 4460),
('zabbixdb', 'host_discovery', 2, 680, 1710),
('zabbixdb', 'host_inventory', 2, 680, 1900),
('zabbixdb', 'host_tag', 2, 680, 3640),
('zabbixdb', 'hostmacro', 2, 680, 10),
('zabbixdb', 'hosts', 2, 680, 150),
('zabbixdb', 'hosts_groups', 2, 680, 1160),
('zabbixdb', 'hosts_links', 2, 680, 1280),
('zabbixdb', 'hosts_links_settings', 2, 680, 1420),
('zabbixdb', 'hosts_templates', 2, 680, 1590),
('zabbixdb', 'housekeeper', 2, 680, 3780),
('zabbixdb', 'hstgrp', 2, 680, 3920),
('zabbixdb', 'httpstep', 2, 680, 4060),
('zabbixdb', 'httpstep_field', 2, 680, 5320),
('zabbixdb', 'httpstepitem', 2, 680, 5180),
('zabbixdb', 'httptest', 2, 680, 4690),
('zabbixdb', 'httptest_field', 2, 680, 4530),
('zabbixdb', 'httptestitem', 2, 680, 4390),
('zabbixdb', 'icon_map', 2, 1000, 10),
('zabbixdb', 'icon_mapping', 2, 1000, 140),
('zabbixdb', 'ids', 2, 1000, 330),
('zabbixdb', 'images', 2, 1000, 450),
('zabbixdb', 'interface', 2, 1000, 600),
('zabbixdb', 'interface_discovery', 2, 1000, 860),
('zabbixdb', 'item_application_prototype', 2, 1000, 2610),
('zabbixdb', 'item_condition', 2, 1000, 2730),
('zabbixdb', 'item_discovery', 2, 1000, 2900),
('zabbixdb', 'item_preproc', 2, 1000, 3090),
('zabbixdb', 'items', 2, 1000, 960),
('zabbixdb', 'items_applications', 2, 1000, 2490),
('zabbixdb', 'lld_macro_path', 2, 1000, 3300),
('zabbixdb', 'maintenance_tag', 2, 1000, 4000),
('zabbixdb', 'maintenances', 2, 1000, 3440),
('zabbixdb', 'maintenances_groups', 2, 1000, 3650),
('zabbixdb', 'maintenances_hosts', 2, 1000, 3770),
('zabbixdb', 'maintenances_windows', 2, 1000, 3890),
('zabbixdb', 'manage_partitions', 2, 1000, 4160),
('zabbixdb', 'mappings', 2, 1000, 4330),
('zabbixdb', 'media', 2, 1000, 4470),
('zabbixdb', 'media_type', 2, 1000, 4680),
('zabbixdb', 'opcommand', 2, 1360, 10),
('zabbixdb', 'opcommand_grp', 2, 1360, 320),
('zabbixdb', 'opcommand_hst', 2, 1360, 440),
('zabbixdb', 'opconditions', 2, 1360, 560),
('zabbixdb', 'operations', 2, 1360, 730),
('zabbixdb', 'opgroup', 2, 1360, 970),
('zabbixdb', 'opinventory', 2, 1360, 1090),
('zabbixdb', 'opmessage', 2, 1360, 1180),
('zabbixdb', 'opmessage_grp', 2, 1360, 1350),
('zabbixdb', 'opmessage_usr', 2, 1360, 1470),
('zabbixdb', 'optemplate', 2, 1360, 1590),
('zabbixdb', 'problem', 2, 1360, 1710),
('zabbixdb', 'problem_tag', 2, 1360, 2090),
('zabbixdb', 'profiles', 2, 1360, 2230),
('zabbixdb', 'proxy_autoreg_host', 2, 1360, 2490),
('zabbixdb', 'proxy_dhistory', 2, 1360, 2710),
('zabbixdb', 'proxy_history', 2, 1360, 2970),
('zabbixdb', 'regexps', 2, 1360, 3320),
('zabbixdb', 'rights', 2, 1360, 3440),
('zabbixdb', 'screen_user', 2, 1360, 4280),
('zabbixdb', 'screen_usrgrp', 2, 1360, 4420),
('zabbixdb', 'screens', 2, 1360, 3580),
('zabbixdb', 'screens_items', 2, 1360, 3790),
('zabbixdb', 'scripts', 2, 1360, 4560),
('zabbixdb', 'service_alarms', 2, 1690, 560),
('zabbixdb', 'services', 2, 1690, 10),
('zabbixdb', 'services_links', 2, 1690, 240),
('zabbixdb', 'services_times', 2, 1690, 380),
('zabbixdb', 'sessions', 2, 1690, 700),
('zabbixdb', 'slides', 2, 1690, 840),
('zabbixdb', 'slideshow_user', 2, 1690, 1160),
('zabbixdb', 'slideshow_usrgrp', 2, 1690, 1300),
('zabbixdb', 'slideshows', 2, 1690, 1000),
('zabbixdb', 'sysmap_element_trigger', 2, 1690, 3090),
('zabbixdb', 'sysmap_element_url', 2, 1690, 3200),
('zabbixdb', 'sysmap_shape', 2, 1690, 3340),
('zabbixdb', 'sysmap_url', 2, 1690, 3810),
('zabbixdb', 'sysmap_user', 2, 1690, 3980),
('zabbixdb', 'sysmap_usrgrp', 2, 1690, 4130),
('zabbixdb', 'sysmaps', 2, 1690, 1440),
('zabbixdb', 'sysmaps_elements', 2, 1690, 2220),
('zabbixdb', 'sysmaps_link_triggers', 2, 1690, 2920),
('zabbixdb', 'sysmaps_links', 2, 1690, 2710),
('zabbixdb', 'tag_filter', 2, 1690, 4270),
('zabbixdb', 'task', 2, 2040, 10),
('zabbixdb', 'task_acknowledge', 2, 2040, 200),
('zabbixdb', 'task_check_now', 2, 2040, 290),
('zabbixdb', 'task_close_problem', 2, 2040, 390),
('zabbixdb', 'task_remote_command', 2, 2040, 480),
('zabbixdb', 'task_remote_command_result', 2, 2040, 850),
('zabbixdb', 'timeperiods', 2, 2040, 1000),
('zabbixdb', 'trends', 2, 2040, 1250),
('zabbixdb', 'trends_uint', 2, 2040, 1430),
('zabbixdb', 'trigger_depends', 2, 2040, 2140),
('zabbixdb', 'trigger_discovery', 2, 2040, 2260),
('zabbixdb', 'trigger_tag', 2, 2040, 2360),
('zabbixdb', 'triggers', 2, 2040, 1620),
('zabbixdb', 'users', 2, 2040, 2500),
('zabbixdb', 'users_groups', 2, 2040, 2920),
('zabbixdb', 'usrgrp', 2, 2040, 3040),
('zabbixdb', 'valuemaps', 2, 2040, 3200),
('zabbixdb', 'widget', 2, 2040, 3290),
('zabbixdb', 'widget_field', 2, 2040, 3530);
Выстроить по алфавиту раскрытые таблицы для 2 страницы
Выстроить по алфавиту раскрытые таблицы для 2 страницы
Схема zabbixdb с раскрытыми таблицами
Схема БД Zabbix phpmyadmin дизайнер развернуто
Схема БД Zabbix phpmyadmin дизайнер развернуто
Схема БД Zabbix phpmyadmin дизайнер развернуто
Так же можно выполнить Экспорт в форматы Dia , ESP , PDF , SVG
phpmyadmin дизайнер Экспорт схемы связей
phpmyadmin дизайнер Экспорт схемы связей
Для просмотра DIA формата можно использовать dia-setup-0.97.2-2-unsigned.exe

Схему связи можно просмотреть скачав исходный архив 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
Стандартные связи zabbix 4.2
Показать
ALTER TABLE `acknowledges` ADD CONSTRAINT `c_acknowledges_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `acknowledges` ADD CONSTRAINT `c_acknowledges_2` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_2` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_4` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_5` FOREIGN KEY (`p_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_6` FOREIGN KEY (`acknowledgeid`) REFERENCES `acknowledges` (`acknowledgeid`) ON DELETE CASCADE;
ALTER TABLE `applications` ADD CONSTRAINT `c_applications_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `application_discovery` ADD CONSTRAINT `c_application_discovery_1` FOREIGN KEY (`applicationid`) REFERENCES `applications` (`applicationid`) ON DELETE CASCADE;
ALTER TABLE `application_discovery` ADD CONSTRAINT `c_application_discovery_2` FOREIGN KEY (`application_prototypeid`) REFERENCES `application_prototype` (`application_prototypeid`) ON DELETE CASCADE;
ALTER TABLE `application_prototype` ADD CONSTRAINT `c_application_prototype_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `application_prototype` ADD CONSTRAINT `c_application_prototype_2` FOREIGN KEY (`templateid`) REFERENCES `application_prototype` (`application_prototypeid`) ON DELETE CASCADE;
ALTER TABLE `application_template` ADD CONSTRAINT `c_application_template_1` FOREIGN KEY (`applicationid`) REFERENCES `applications` (`applicationid`) ON DELETE CASCADE;
ALTER TABLE `application_template` ADD CONSTRAINT `c_application_template_2` FOREIGN KEY (`templateid`) REFERENCES `applications` (`applicationid`) ON DELETE CASCADE;
ALTER TABLE `auditlog` ADD CONSTRAINT `c_auditlog_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `auditlog_details` ADD CONSTRAINT `c_auditlog_details_1` FOREIGN KEY (`auditid`) REFERENCES `auditlog` (`auditid`) ON DELETE CASCADE;
ALTER TABLE `autoreg_host` ADD CONSTRAINT `c_autoreg_host_1` FOREIGN KEY (`proxy_hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `conditions` ADD CONSTRAINT `c_conditions_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `config` ADD CONSTRAINT `c_config_1` FOREIGN KEY (`alert_usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `config` ADD CONSTRAINT `c_config_2` FOREIGN KEY (`discovery_groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `corr_condition` ADD CONSTRAINT `c_corr_condition_1` FOREIGN KEY (`correlationid`) REFERENCES `correlation` (`correlationid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_tag` ADD CONSTRAINT `c_corr_condition_tag_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_group` ADD CONSTRAINT `c_corr_condition_group_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_group` ADD CONSTRAINT `c_corr_condition_group_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `corr_condition_tagpair` ADD CONSTRAINT `c_corr_condition_tagpair_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_tagvalue` ADD CONSTRAINT `c_corr_condition_tagvalue_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_operation` ADD CONSTRAINT `c_corr_operation_1` FOREIGN KEY (`correlationid`) REFERENCES `correlation` (`correlationid`) ON DELETE CASCADE;
ALTER TABLE `dashboard` ADD CONSTRAINT `c_dashboard_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `dashboard_user` ADD CONSTRAINT `c_dashboard_user_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_user` ADD CONSTRAINT `c_dashboard_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_usrgrp` ADD CONSTRAINT `c_dashboard_usrgrp_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_usrgrp` ADD CONSTRAINT `c_dashboard_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `dchecks` ADD CONSTRAINT `c_dchecks_1` FOREIGN KEY (`druleid`) REFERENCES `drules` (`druleid`) ON DELETE CASCADE;
ALTER TABLE `dhosts` ADD CONSTRAINT `c_dhosts_1` FOREIGN KEY (`druleid`) REFERENCES `drules` (`druleid`) ON DELETE CASCADE;
ALTER TABLE `drules` ADD CONSTRAINT `c_drules_1` FOREIGN KEY (`proxy_hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `dservices` ADD CONSTRAINT `c_dservices_1` FOREIGN KEY (`dhostid`) REFERENCES `dhosts` (`dhostid`) ON DELETE CASCADE;
ALTER TABLE `dservices` ADD CONSTRAINT `c_dservices_2` FOREIGN KEY (`dcheckid`) REFERENCES `dchecks` (`dcheckid`) ON DELETE CASCADE;
ALTER TABLE `event_recovery` ADD CONSTRAINT `c_event_recovery_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_recovery` ADD CONSTRAINT `c_event_recovery_2` FOREIGN KEY (`r_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_recovery` ADD CONSTRAINT `c_event_recovery_3` FOREIGN KEY (`c_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_suppress` ADD CONSTRAINT `c_event_suppress_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_suppress` ADD CONSTRAINT `c_event_suppress_2` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `event_tag` ADD CONSTRAINT `c_event_tag_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `expressions` ADD CONSTRAINT `c_expressions_1` FOREIGN KEY (`regexpid`) REFERENCES `regexps` (`regexpid`) ON DELETE CASCADE;
ALTER TABLE `functions` ADD CONSTRAINT `c_functions_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `functions` ADD CONSTRAINT `c_functions_2` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `graphs` ADD CONSTRAINT `c_graphs_1` FOREIGN KEY (`templateid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `graphs` ADD CONSTRAINT `c_graphs_2` FOREIGN KEY (`ymin_itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `graphs` ADD CONSTRAINT `c_graphs_3` FOREIGN KEY (`ymax_itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `graphs_items` ADD CONSTRAINT `c_graphs_items_1` FOREIGN KEY (`graphid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `graphs_items` ADD CONSTRAINT `c_graphs_items_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `graph_discovery` ADD CONSTRAINT `c_graph_discovery_1` FOREIGN KEY (`graphid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `graph_discovery` ADD CONSTRAINT `c_graph_discovery_2` FOREIGN KEY (`parent_graphid`) REFERENCES `graphs` (`graphid`);
ALTER TABLE `group_prototype` ADD CONSTRAINT `c_group_prototype_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `group_prototype` ADD CONSTRAINT `c_group_prototype_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `group_prototype` ADD CONSTRAINT `c_group_prototype_3` FOREIGN KEY (`templateid`) REFERENCES `group_prototype` (`group_prototypeid`) ON DELETE CASCADE;
ALTER TABLE `group_discovery` ADD CONSTRAINT `c_group_discovery_1` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `group_discovery` ADD CONSTRAINT `c_group_discovery_2` FOREIGN KEY (`parent_group_prototypeid`) REFERENCES `group_prototype` (`group_prototypeid`);
ALTER TABLE `hostmacro` ADD CONSTRAINT `c_hostmacro_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_1` FOREIGN KEY (`proxy_hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_2` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`);
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_3` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hosts_groups` ADD CONSTRAINT `c_hosts_groups_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hosts_groups` ADD CONSTRAINT `c_hosts_groups_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `hosts_templates` ADD CONSTRAINT `c_hosts_templates_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hosts_templates` ADD CONSTRAINT `c_hosts_templates_2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `host_discovery` ADD CONSTRAINT `c_host_discovery_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `host_discovery` ADD CONSTRAINT `c_host_discovery_2` FOREIGN KEY (`parent_hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `host_discovery` ADD CONSTRAINT `c_host_discovery_3` FOREIGN KEY (`parent_itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `host_inventory` ADD CONSTRAINT `c_host_inventory_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `host_tag` ADD CONSTRAINT `c_host_tag_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `httptest` ADD CONSTRAINT `c_httptest_1` FOREIGN KEY (`applicationid`) REFERENCES `applications` (`applicationid`);
ALTER TABLE `httptest` ADD CONSTRAINT `c_httptest_2` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `httptest` ADD CONSTRAINT `c_httptest_3` FOREIGN KEY (`templateid`) REFERENCES `httptest` (`httptestid`) ON DELETE CASCADE;
ALTER TABLE `httpstep` ADD CONSTRAINT `c_httpstep_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`) ON DELETE CASCADE;
ALTER TABLE `httpstepitem` ADD CONSTRAINT `c_httpstepitem_1` FOREIGN KEY (`httpstepid`) REFERENCES `httpstep` (`httpstepid`) ON DELETE CASCADE;
ALTER TABLE `httpstepitem` ADD CONSTRAINT `c_httpstepitem_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `httptestitem` ADD CONSTRAINT `c_httptestitem_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`) ON DELETE CASCADE;
ALTER TABLE `httptestitem` ADD CONSTRAINT `c_httptestitem_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `httptest_field` ADD CONSTRAINT `c_httptest_field_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`) ON DELETE CASCADE;
ALTER TABLE `httpstep_field` ADD CONSTRAINT `c_httpstep_field_1` FOREIGN KEY (`httpstepid`) REFERENCES `httpstep` (`httpstepid`) ON DELETE CASCADE;
ALTER TABLE `icon_map` ADD CONSTRAINT `c_icon_map_1` FOREIGN KEY (`default_iconid`) REFERENCES `images` (`imageid`);
ALTER TABLE `icon_mapping` ADD CONSTRAINT `c_icon_mapping_1` FOREIGN KEY (`iconmapid`) REFERENCES `icon_map` (`iconmapid`) ON DELETE CASCADE;
ALTER TABLE `icon_mapping` ADD CONSTRAINT `c_icon_mapping_2` FOREIGN KEY (`iconid`) REFERENCES `images` (`imageid`);
ALTER TABLE `interface` ADD CONSTRAINT `c_interface_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `interface_discovery` ADD CONSTRAINT `c_interface_discovery_1` FOREIGN KEY (`interfaceid`) REFERENCES `interface` (`interfaceid`) ON DELETE CASCADE;
ALTER TABLE `interface_discovery` ADD CONSTRAINT `c_interface_discovery_2` FOREIGN KEY (`parent_interfaceid`) REFERENCES `interface` (`interfaceid`) ON DELETE CASCADE;
ALTER TABLE `items` ADD CONSTRAINT `c_items_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `items` ADD CONSTRAINT `c_items_2` FOREIGN KEY (`templateid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `items` ADD CONSTRAINT `c_items_3` FOREIGN KEY (`valuemapid`) REFERENCES `valuemaps` (`valuemapid`);
ALTER TABLE `items` ADD CONSTRAINT `c_items_4` FOREIGN KEY (`interfaceid`) REFERENCES `interface` (`interfaceid`);
ALTER TABLE `items` ADD CONSTRAINT `c_items_5` FOREIGN KEY (`master_itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `items_applications` ADD CONSTRAINT `c_items_applications_1` FOREIGN KEY (`applicationid`) REFERENCES `applications` (`applicationid`) ON DELETE CASCADE;
ALTER TABLE `items_applications` ADD CONSTRAINT `c_items_applications_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_application_prototype` ADD CONSTRAINT `c_item_application_prototype_1` FOREIGN KEY (`application_prototypeid`) REFERENCES `application_prototype` (`application_prototypeid`) ON DELETE CASCADE;
ALTER TABLE `item_application_prototype` ADD CONSTRAINT `c_item_application_prototype_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_condition` ADD CONSTRAINT `c_item_condition_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_discovery` ADD CONSTRAINT `c_item_discovery_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_discovery` ADD CONSTRAINT `c_item_discovery_2` FOREIGN KEY (`parent_itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_preproc` ADD CONSTRAINT `c_item_preproc_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `lld_macro_path` ADD CONSTRAINT `c_lld_macro_path_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_groups` ADD CONSTRAINT `c_maintenances_groups_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_groups` ADD CONSTRAINT `c_maintenances_groups_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_hosts` ADD CONSTRAINT `c_maintenances_hosts_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_hosts` ADD CONSTRAINT `c_maintenances_hosts_2` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_windows` ADD CONSTRAINT `c_maintenances_windows_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_windows` ADD CONSTRAINT `c_maintenances_windows_2` FOREIGN KEY (`timeperiodid`) REFERENCES `timeperiods` (`timeperiodid`) ON DELETE CASCADE;
ALTER TABLE `maintenance_tag` ADD CONSTRAINT `c_maintenance_tag_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `mappings` ADD CONSTRAINT `c_mappings_1` FOREIGN KEY (`valuemapid`) REFERENCES `valuemaps` (`valuemapid`) ON DELETE CASCADE;
ALTER TABLE `media` ADD CONSTRAINT `c_media_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `media` ADD CONSTRAINT `c_media_2` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `opcommand` ADD CONSTRAINT `c_opcommand_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opcommand` ADD CONSTRAINT `c_opcommand_2` FOREIGN KEY (`scriptid`) REFERENCES `scripts` (`scriptid`);
ALTER TABLE `opcommand_grp` ADD CONSTRAINT `c_opcommand_grp_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opcommand_grp` ADD CONSTRAINT `c_opcommand_grp_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `opcommand_hst` ADD CONSTRAINT `c_opcommand_hst_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opcommand_hst` ADD CONSTRAINT `c_opcommand_hst_2` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `opconditions` ADD CONSTRAINT `c_opconditions_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `operations` ADD CONSTRAINT `c_operations_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `opgroup` ADD CONSTRAINT `c_opgroup_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opgroup` ADD CONSTRAINT `c_opgroup_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `opinventory` ADD CONSTRAINT `c_opinventory_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage` ADD CONSTRAINT `c_opmessage_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage` ADD CONSTRAINT `c_opmessage_2` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`);
ALTER TABLE `opmessage_grp` ADD CONSTRAINT `c_opmessage_grp_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage_grp` ADD CONSTRAINT `c_opmessage_grp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `opmessage_usr` ADD CONSTRAINT `c_opmessage_usr_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage_usr` ADD CONSTRAINT `c_opmessage_usr_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `optemplate` ADD CONSTRAINT `c_optemplate_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `optemplate` ADD CONSTRAINT `c_optemplate_2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `problem` ADD CONSTRAINT `c_problem_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `problem` ADD CONSTRAINT `c_problem_2` FOREIGN KEY (`r_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `problem_tag` ADD CONSTRAINT `c_problem_tag_1` FOREIGN KEY (`eventid`) REFERENCES `problem` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `profiles` ADD CONSTRAINT `c_profiles_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `rights` ADD CONSTRAINT `c_rights_1` FOREIGN KEY (`groupid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `rights` ADD CONSTRAINT `c_rights_2` FOREIGN KEY (`id`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `screens` ADD CONSTRAINT `c_screens_1` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `screens` ADD CONSTRAINT `c_screens_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `screens_items` ADD CONSTRAINT `c_screens_items_1` FOREIGN KEY (`screenid`) REFERENCES `screens` (`screenid`) ON DELETE CASCADE;
ALTER TABLE `screen_user` ADD CONSTRAINT `c_screen_user_1` FOREIGN KEY (`screenid`) REFERENCES `screens` (`screenid`) ON DELETE CASCADE;
ALTER TABLE `screen_user` ADD CONSTRAINT `c_screen_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `screen_usrgrp` ADD CONSTRAINT `c_screen_usrgrp_1` FOREIGN KEY (`screenid`) REFERENCES `screens` (`screenid`) ON DELETE CASCADE;
ALTER TABLE `screen_usrgrp` ADD CONSTRAINT `c_screen_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `scripts` ADD CONSTRAINT `c_scripts_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `scripts` ADD CONSTRAINT `c_scripts_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `services` ADD CONSTRAINT `c_services_1` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `services_links` ADD CONSTRAINT `c_services_links_1` FOREIGN KEY (`serviceupid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `services_links` ADD CONSTRAINT `c_services_links_2` FOREIGN KEY (`servicedownid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `services_times` ADD CONSTRAINT `c_services_times_1` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `service_alarms` ADD CONSTRAINT `c_service_alarms_1` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `sessions` ADD CONSTRAINT `c_sessions_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `slides` ADD CONSTRAINT `c_slides_1` FOREIGN KEY (`slideshowid`) REFERENCES `slideshows` (`slideshowid`) ON DELETE CASCADE;
ALTER TABLE `slides` ADD CONSTRAINT `c_slides_2` FOREIGN KEY (`screenid`) REFERENCES `screens` (`screenid`) ON DELETE CASCADE;
ALTER TABLE `slideshows` ADD CONSTRAINT `c_slideshows_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `slideshow_user` ADD CONSTRAINT `c_slideshow_user_1` FOREIGN KEY (`slideshowid`) REFERENCES `slideshows` (`slideshowid`) ON DELETE CASCADE;
ALTER TABLE `slideshow_user` ADD CONSTRAINT `c_slideshow_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `slideshow_usrgrp` ADD CONSTRAINT `c_slideshow_usrgrp_1` FOREIGN KEY (`slideshowid`) REFERENCES `slideshows` (`slideshowid`) ON DELETE CASCADE;
ALTER TABLE `slideshow_usrgrp` ADD CONSTRAINT `c_slideshow_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps` ADD CONSTRAINT `c_sysmaps_1` FOREIGN KEY (`backgroundid`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps` ADD CONSTRAINT `c_sysmaps_2` FOREIGN KEY (`iconmapid`) REFERENCES `icon_map` (`iconmapid`);
ALTER TABLE `sysmaps` ADD CONSTRAINT `c_sysmaps_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_2` FOREIGN KEY (`iconid_off`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_3` FOREIGN KEY (`iconid_on`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_4` FOREIGN KEY (`iconid_disabled`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_5` FOREIGN KEY (`iconid_maintenance`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_2` FOREIGN KEY (`selementid1`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_3` FOREIGN KEY (`selementid2`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_link_triggers` ADD CONSTRAINT `c_sysmaps_link_triggers_1` FOREIGN KEY (`linkid`) REFERENCES `sysmaps_links` (`linkid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_link_triggers` ADD CONSTRAINT `c_sysmaps_link_triggers_2` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_element_trigger` ADD CONSTRAINT `c_sysmap_element_trigger_1` FOREIGN KEY (`selementid`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_element_trigger` ADD CONSTRAINT `c_sysmap_element_trigger_2` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_element_url` ADD CONSTRAINT `c_sysmap_element_url_1` FOREIGN KEY (`selementid`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_shape` ADD CONSTRAINT `c_sysmap_shape_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_url` ADD CONSTRAINT `c_sysmap_url_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_user` ADD CONSTRAINT `c_sysmap_user_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_user` ADD CONSTRAINT `c_sysmap_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_usrgrp` ADD CONSTRAINT `c_sysmap_usrgrp_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_usrgrp` ADD CONSTRAINT `c_sysmap_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `tag_filter` ADD CONSTRAINT `c_tag_filter_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `tag_filter` ADD CONSTRAINT `c_tag_filter_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `task` ADD CONSTRAINT `c_task_1` FOREIGN KEY (`proxy_hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `task_acknowledge` ADD CONSTRAINT `c_task_acknowledge_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_check_now` ADD CONSTRAINT `c_task_check_now_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_close_problem` ADD CONSTRAINT `c_task_close_problem_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_remote_command` ADD CONSTRAINT `c_task_remote_command_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_remote_command_result` ADD CONSTRAINT `c_task_remote_command_result_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `triggers` ADD CONSTRAINT `c_triggers_1` FOREIGN KEY (`templateid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `trigger_depends` ADD CONSTRAINT `c_trigger_depends_1` FOREIGN KEY (`triggerid_down`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `trigger_depends` ADD CONSTRAINT `c_trigger_depends_2` FOREIGN KEY (`triggerid_up`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `trigger_discovery` ADD CONSTRAINT `c_trigger_discovery_1` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `trigger_discovery` ADD CONSTRAINT `c_trigger_discovery_2` FOREIGN KEY (`parent_triggerid`) REFERENCES `triggers` (`triggerid`);
ALTER TABLE `trigger_tag` ADD CONSTRAINT `c_trigger_tag_1` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `users_groups` ADD CONSTRAINT `c_users_groups_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `users_groups` ADD CONSTRAINT `c_users_groups_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `widget` ADD CONSTRAINT `c_widget_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_1` FOREIGN KEY (`widgetid`) REFERENCES `widget` (`widgetid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_2` FOREIGN KEY (`value_groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_3` FOREIGN KEY (`value_hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_4` FOREIGN KEY (`value_itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_5` FOREIGN KEY (`value_graphid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_6` FOREIGN KEY (`value_sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
количество слов: 6073
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 865
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 39 раз
Контактная информация:

База данных Заббикс

Сообщение Артём Мамзиков »

Вход в MySql через командую строку
mysql -uroot -pПароль
Просмотр баз список
SHOW DATABASES;
Выбор базы
use zabbixdb

Либо через phpMyAdmin - Выбираем базу Заббикса и SQL - Запрос

B MySQL - Дата у нас хранится в виде количества секунд (прошедших с начала «эпохи Юникса») с 1970-01-01 00:00:00
Например 2021-09-24 09:31:14 это значение 1632468674
Есть конвекторы онлайн например: Конвертер отметки времени в дату или Epoc Конвертер

Пример: выбор данных из таблицы history
С 2021-05-01 00:00:00 (> больше) до текущего момента
SELECT * FROM history WHERE clock > '1619816400';
Выбрать данные ДО 2021-05-01 00:00:00 (< меньше)
SELECT * FROM history WHERE clock < (1619816400);
SELECT * FROM `history` WHERE `clock` < '1619816400' ORDER BY `clock` DESC;

Для того что бы не конвертировать в секунды можно воспользоваться функцией
UNIX_TIMESTAMP() вызывается с аргументом date (она возвращает величину аргумента как количество секунд с 1970-01-01 00:00:00)
TIMESTAMP — тип данных для хранения даты и времени
Данная функция сама конвертирует из указанной даты в секунды.
Пример:
SELECT * FROM history WHERE clock > (UNIX_TIMESTAMP("2021-05-01 00:00:00"));
SELECT * FROM history WHERE clock < (UNIX_TIMESTAMP("2021-05-01 00:00:00"));

Функция NOW возвращает текущий момент времени в формате год-месяц-день часы:минуты:секунды
Выбрать от текущей даты до 2021-05-01 00:00:00
SELECT * FROM history WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (UNIX_TIMESTAMP("2021-05-01 00:00:00"));

Вывести за определённые промежуток времени, отобразить 1000 строк
SELECT * FROM `имя бд`.`имя таблицы` WHERE `clock` > (UNIX_TIMESTAMP(" время от ")) AND `clock` < (UNIX_TIMESTAMP(" время до ")) LIMIT 1000;
Пример:
SELECT * FROM `zabbixdb`.`history` WHERE `clock` > (UNIX_TIMESTAMP("2018-01-14 08:00:00")) AND `clock` < (UNIX_TIMESTAMP("2018-07-27 08:00:00")) LIMIT 10000;
SELECT * FROM `zabbixdb`.`history` WHERE (UNIX_TIMESTAMP("2019-05-24 16:28:15") - clock) AND `clock` < (UNIX_TIMESTAMP("2020-07-27 08:00:00"));
SELECT * FROM `zabbixdb`.`history` WHERE clock < (UNIX_TIMESTAMP("2021-06-30 23:59:26")) ORDER BY `history`.`clock` DESC ;
Для диапазона конкретных Узлов заббикс
SELECT * FROM `zabbixdb`.`history` WHERE `clock` > (UNIX_TIMESTAMP("2014-09-14 14:00:00")) AND `clock` < (UNIX_TIMESTAMP("2014-09-24 08:00:00")) AND `itemid` IN (SELECT itemid FROM `zabbix`.`items` WHERE `hostid` = '10276' OR `hostid` = '10245' OR `hostid` = '10089') LIMIT 1000;

Для того чтоб узнать размер таблиц конкретной базы данных:
SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "zabbixdb";

Физически БД Хранится /var/lib/mysql/zabbixdb в файле ibdata1
Размер папки du -h /var/lib/mysql
Размер файлов ls -l /var/lib/mysql/ --block-size=G

Снимаем дамп копии
Вся база Заббикс сервера
mysqldump -u root -p zabbixdb > zabbixdb.sql
Отдельная таблица
mysqldump -u root -p zabbixdb history > history.sql
Без функции create чтоб в дальнейшем не затереть таблицу
mysqldump -u root -p --no-create-info --lock-tables zabbixdb history > history.sql
Экспорт всех баз
mysqldump -u root -pПароль --all-databases > /root/all_database.sql
mysqldump --routines -u "root" -pПароль db_name > [path\]db_name.sql

SHOW TRIGGERS; - показать триггеры (связи)

Для удаления данных из таблицы вместо SELECT * используем DELETE
Пример:
DELETE FROM history WHERE clock < (1619816400); удаление до 2021-05-01 00:00:00
DELETE FROM history WHERE clock < (UNIX_TIMESTAMP("2021-05-01 00:00:00"));
DELETE FROM history WHERE (UNIX_TIMESTAMP(NOW()) - clock) < (UNIX_TIMESTAMP("2021-05-01 00:00:00"));

DELETE FROM `имя бд`.`имя таблицы` WHERE `clock` > (UNIX_TIMESTAMP(" время от ")) AND `clock` < (UNIX_TIMESTAMP(" время до "));
DELETE FROM `zabbixdb`.`history` WHERE `clock` > (UNIX_TIMESTAMP("2018-01-14 08:00:00")) AND `clock` < (UNIX_TIMESTAMP("2018-07-27 08:00:00"));

Выбрать данных все что старше 3 месяца
SELECT * FROM `БД`.`ТАБЛИЦА` WHERE `СТОЛБЕЦ` < DATE_SUB(CURDATE(), INTERVAL 3 MONTH); - отработает если дата в столбце формата гггг-мм-дд
SELECT * FROM `zabbixdb`.`history` WHERE `clock` < (UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 MONTH)))

Проверка SELECT DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
функция DATE_SUB возвращает дату, после которой вычитается определенный интервал даты/времени.
CURDATE возвращает текущую дату
DATE_SUB( date, INTERVAL value unit )
date - дата, на которую должен быть вычтен интервал.
value - значение интервала времени / даты, которое вы хотите вычесть. Вы можете указать положительные и отрицательные значения для этого параметра.
unit - единичный тип интервала, например DAY, MONTH, MINUTE, HOUR и т.д.

Перед Удалением данных из таблиц, проверяйте всегда сперва вывод результатов из таблицы SELECT ом правильны ли он на разных версиях MySql запрос может отличатся или проигнорирует какой либо критерий и выдаст всю таблицу!


TRUNCATE TABLE history; - удаление содержимого таблицы

Все аналогично можно повторить для таблиц history_uint , alerts , acknowledges , events , history , history_uint , history_str , history_text , history_log , trends , trends_uint и другие таблицы при необходимости


Как найти и удалить потерянные записи в таблице MySQL

Пример есть 2 таблицs test и extest
в обоих таблицах есть столбец ID
данные должны совпадать в обоих таблицах, где данные не совпадают считаются отсевающими
Например основная таблица у нас будет test а на отсутствие проверяем таблицу extest

Добавим данные для таблиц
INSERT INTO test(id, text) VALUES ('1', 'текст');
INSERT INTO test(id, text) VALUES ('2', 'ntrcn');
INSERT INTO test(id, text) VALUES ('5', 'rewn');

INSERT INTO extest(id, text) VALUES ('1', 'текстx');
INSERT INTO extest(id, text) VALUES ('2', 'тетw');
INSERT INTO extest(id, text) VALUES ('3', 'тx');

В таблице extest находим строки которые отсутствуют в test
Далее
(отсутствующие данные удаляем из extest таблицы)

Использование LEFT JOIN / IS NULL:
SELECT * FROM extest b LEFT JOIN test f ON f.Id = b.id WHERE f.id IS NULL
DELETE b FROM extest b LEFT JOIN test f ON f.Id = b.id WHERE f.id IS NULL

Использование НЕ СУЩЕСТВУЕТ:
SELECT * FROM extest WHERE NOT EXISTS(SELECT NULL FROM test f WHERE f.id = id)
DELETE FROM extest WHERE NOT EXISTS(SELECT NULL FROM test f WHERE f.id = id)

Использование NOT IN:
SELECT * FROM extest WHERE id NOT IN (SELECT f.id FROM test f)
DELETE FROM extest WHERE id NOT IN (SELECT f.id FROM test f)

NOT IN (NULL)возвращает пустой набор результатов, поэтому значения NULL должны быть исключены. Но idколонка, вероятно, в любом случае не будет обнуляемой, поэтому «вряд ли понадобится»
SELECT * FROM extest WHERE id NOT IN (SELECT id FROM test WHERE id is NOT NULL)
DELETE FROM extest WHERE id NOT IN (SELECT id FROM test WHERE id is NOT NULL)

Предупреждение
По возможности выполняйте УДАЛЕНИЯ внутри транзакции (при условии, что поддерживается - IE: не в MyISAM), чтобы вы могли использовать откат для отмены изменений в случае возникновения проблем.

Наоборот как найти одинаковые ID в 2х таблицах
select * from extest where id in (select id from test);
получаем 1 и 2

Через JOIN
SELECT `a`.`id` FROM `test` AS `a` INNER JOIN `extest` AS `b` ON `a`.`id` = `b`.`id`
получаем 1 и 2

Тут покажет одинаковые данные из 2х столбцов
SELECT * FROM test,extest WHERE test.id=extest.id;

Объединение строк по одинаковым ID для одной таблицы
SELECT LEFT(GROUP_CONCAT(DISTINCT id ORDER BY id DESC SEPARATOR ';'),19) as id FROM `test`
SELECT GROUP_CONCAT(DISTINCT id SEPARATOR ';') as id FROM `test`


roblem - хранится 3 месяца, при удалении удаляются старые проблемы с дашборта, но при получении новых значений дальнейшей ошибки не срабатывают
так как было 1 ошибка и осталось условие ошибка 1. другой момент если триггер вышел из ошибки и снова произошла ошибка триггер отработает. (а так сделано чтоб дату триггера не менять когда сработал сохраняется значение)
По этому у старых триггеров нужно сменить 1 на 0 и они снова отработают но уже с новой датой!
lastchange - столбец даты (где 0 триггер никогда не срабатывал)
value - значение 1-триггер в проблеме, 0 - все ок

То есть мы исправили value на 0 (зелёный) и убрали сообщение об ошибке.
Иногда бывают просто серые ячейки, со статусом ОК, но они тоже не проверяются.

Описание таблицы триггеров API

Выбрать все триггеры в проблеме просмотреть
SELECT * FROM `zabbixdb`.`triggers` WHERE `value` = 1;

Выберем данные старше 3х месяцев триггеры в проблеме
SELECT * FROM `zabbixdb`.`triggers` WHERE `lastchange` < (UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 MONTH))) AND `value` = 1;


UPDATE модифицирует столбцы в существующих строках таблиц с новыми значениями.
Предложение SET указывает, какие столбцы изменять, и значения, которые им должны быть заданы.
Предложение WHERE, если задано, определяет, какие строки должны модифицироваться. Иначе модифицируются все строки.
Если определено предложение ORDER BY, строки будут модифицироваться в том порядке, который определен.

Проверим сперва на 1 элементе пример
1590482931 26.05.2020, 11:48:51 - 22251 {26637}=1 NoPingAgent {HOST.NAME
SELECT * FROM `zabbixdb`.`triggers` WHERE `lastchange` = (1590482931) AND `value` = 1;
UPDATE `triggers` SET value=0, lastchange=UNIX_TIMESTAMP(NOW()), error='' WHERE `lastchange` = (1590482931) AND `value` = 1;
Все ок

Заменим проблему на ОК поменяем число на текущее удалим ошибку все что старше 3х месяцев
UPDATE `triggers` SET value=0, lastchange=UNIX_TIMESTAMP(NOW()), error='' WHERE `lastchange` < (UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 MONTH))) AND `value` = 1;

Триггер стал в состояние ОК но по-прежнему на текущую ошибку повторно не срабатывает.
Лечится это перезапуском заббикс сервера, но для автоматических действий не совсем вариант.
количество слов: 860
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 865
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 39 раз
Контактная информация:

База данных Заббикс

Сообщение Артём Мамзиков »

Сравним 2 таблицы на одинаковые ID все что отсутствует выйдет в ответ данные (значит в одной Талице есть, а в другой нет).

Тут главное точно узнать что для всех сравниваемых id должна быть связь и в правильном направлении запрос
Например: Тег события и события, мы не можем сравнивать события по тегам так как не у всех событий есть тег и все эти события выйдут, а вот наоборот
теги будем сравнивать с событиям то у нас не должно быть такого что тег есть а события нет значит это потерянные данные.
В некоторых случаях нужно составить более сложный вопрос одной таблицы сразу к нескольким и если не в одной из сравниваемых таблиц нет результата , элемент можно считать потерянным
В некоторых условиях возможно такое что например элемент без группы и приравнивать к группе его нет смысла.

Перед удалением сделайте резервную копию данных!!!
Все что вы делаете на свой страх и риск данные команды не были полностью проверены.

Версия zabbix 4.2

-- Строки, потерянных записей таблицы подтверждения acknowledges
-- Сравниваем acknowledges (подтверждения) c users (пользователи) по столбцу userid
SELECT * FROM acknowledges WHERE userid NOT IN (SELECT userid FROM users WHERE userid is NOT NULL);
-- Сравниваем acknowledges (подтверждения) c events (события) по столбцу eventid
SELECT * FROM acknowledges WHERE eventid NOT IN (SELECT eventid FROM events WHERE eventid is NOT NULL);
-- Сравниваем acknowledges (подтверждения) c alerts (отправка сообщений) по столбцу acknowledgeid
SELECT * FROM acknowledges WHERE acknowledgeid NOT IN (SELECT acknowledgeid FROM alerts WHERE acknowledgeid is NOT NULL);

-- Строки, потерянных записей таблицы предупреждений alerts
-- Сравниваем alerts (отправка сообщений) с actions (Действия) по столбцу actionid
SELECT * FROM alerts WHERE actionid NOT IN (SELECT actionid FROM actions WHERE actionid is NOT NULL);
-- Сравниваем alerts (отправка сообщений) с events (события) по столбцу eventid
SELECT * FROM alerts WHERE eventid NOT IN (SELECT eventid FROM events WHERE eventid is NOT NULL);
-- Сравниваем alerts (отправка сообщений) с events (события) по столбцу p_eventid
SELECT * FROM alerts WHERE p_eventid NOT IN (SELECT eventid FROM events WHERE p_eventid is NOT NULL);
-- Сравниваем alerts (отправка сообщений) с users (Пользователи) по столбцу userid
SELECT * FROM alerts WHERE userid NOT IN (SELECT userid FROM users WHERE userid is NOT NULL);
-- Сравниваем alerts (отправка сообщений) с media_type (способы оповещения) по столбцу mediatypeid
SELECT * FROM alerts WHERE mediatypeid NOT IN (SELECT mediatypeid FROM media_type WHERE mediatypeid is NOT NULL);
-- Сравниваем alerts (отправка сообщений) c acknowledges (подтверждения) по столбцу acknowledgeid
SELECT * FROM alerts WHERE acknowledgeid NOT IN (SELECT acknowledgeid FROM acknowledges WHERE acknowledgeid is NOT NULL);

-- Строки, потерянных записей таблицы приложения applications, которые больше не сопоставляются с хостом
-- Сравниваем applications (Группы элементов данных) с таблицей hosts (Узлы) по столбцу hostid
SELECT * FROM applications WHERE hostid NOT IN (SELECT hostid FROM hosts WHERE hostid is NOT NULL);

-- Строки, потерянных сведений таблицы журнала аудита (таких как учетные данные) auditlog_details
-- Сравниваем auditlog_details (аудитлог детали - кто что изменял) с auditlog (аудитлог) по столбцу auditid
SELECT * FROM auditlog_details WHERE auditid NOT IN (SELECT auditid FROM auditlog WHERE auditid is NOT NULL);
-- Сравниваем auditlog (аудитлог) с users (Пользователи) на отсутствующих пользователей по столбцу userid
SELECT * FROM auditlog WHERE userid NOT IN (SELECT userid FROM users WHERE userid is NOT NULL);

-- Cтроки, потерянных таблицы условий conditions
-- Сравниваем conditions (условия) с actions (Действия) по столбцу actionid
SELECT * FROM conditions WHERE actionid NOT IN (SELECT actionid FROM actions WHERE actionid is NOT NULL);

-- Cтроки, потерянных таблицы функций functions
-- Сравниваем functions (функции) с items (Элементы данных) по столбцу itemid
SELECT * FROM functions WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем functions (функции) с triggers (триггеры) по столбцу triggerid
SELECT * FROM functions WHERE triggerid NOT IN (SELECT triggerid FROM triggers WHERE triggerid is NOT NULL);

-- Cтроки, потерянных элементов таблицы графика graphs_items
-- Сравниваем graphs_items (элементов графика) с graphs (Графики) по столбцу graphid
SELECT * FROM graphs_items WHERE graphid NOT IN (SELECT graphid FROM graphs WHERE graphid is NOT NULL);
-- Сравниваем graphs_items (элементов графика) с items (Элементы данных) по столбцу itemid
SELECT * FROM graphs_items WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);

-- Записи в таблице история /тенденции для элементов history/trends, которые больше не существуют
-- Сравниваем history (история) с items (Элементы данных) по столбцу itemid
SELECT * FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем history_uint (история числовая) с items (Элементы данных) по столбцу itemid
SELECT * FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем history_log (История лог) с items (Элементы данных) по столбцу itemid
SELECT * FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем history_str (История строк) с items (Элементы данных) по столбцу itemid
SELECT * FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем history_text (История текст) с items (Элементы данных) по столбцу itemid
SELECT * FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Для версии zabbix 1.8
-- Сравниваем history_sync (История) с items (Элементы данных) по столбцу itemid
SELECT * FROM history_sync WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);

-- Для версии zabbix 1.8
-- Строки, потерянных таблицы host_profiles
-- Сравниваем hosts_profiles (профиль хоста) с hosts (Хосты) по столбцу hostid
SELECT * FROM hosts_profiles WHERE hostid NOT IN (SELECT hostid FROM hosts WHERE hostid is NOT NULL);
-- Сравниваем hosts_profiles_ext (профиль хоста ext) с hosts (Хосты) по столбцу hostid
SELECT * FROM hosts_profiles_ext WHERE hostid NOT IN (SELECT hostid FROM hosts WHERE hostid is NOT NULL);

-- Строки, таблицы макроса потерянного хоста hostmacro
-- Сравниваем hostmacro (макросы узлов) с hosts (узлы) по столбцу hostid
SELECT * FROM hostmacro WHERE hostid NOT IN (SELECT hostid FROM hosts WHERE hostid is NOT NULL);

-- Строки, потерянных данных таблицы элемента items (могут быть элементы шаблонов , не узлов? элементы без групп , без связей ?)
-- Сравниваем items (Элементы данных) с hosts (узлы) по столбцу hostid
SELECT * FROM items WHERE hostid NOT IN (SELECT hostid FROM hosts WHERE hostid is NOT NULL);
-- Сравниваем items_applications (Элементы данных связи) с applications (Группы элементов данных) по столбцу applicationid
SELECT * FROM items_applications WHERE applicationid NOT IN (SELECT applicationid FROM applications WHERE applicationid is NOT NULL);
-- Сравниваем items_applications (Элементы данных связи) с items (Элементы данных) по столбцу itemid
SELECT * FROM items_applications WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);

-- Строки, потерянных данных таблицы проверки веб HTTP httpstep
-- Сравниваем httpstep (шаги веб проверки в узле) с httptest (веб тест) по столбцу httptestid
SELECT * FROM httpstep WHERE httptestid NOT IN (SELECT httptestid FROM httptest WHERE httptestid is NOT NULL);
-- Сравниваем httptestitem (веб-тест-элемент) с httpstep (шаги веб проверки в узле) по столбцу httpstepid
SELECT * FROM httpstepitem WHERE httpstepid NOT IN (SELECT httpstepid FROM httpstep WHERE httpstepid is NOT NULL);
-- Сравниваем httptestitem (веб-тест-элемент) с items (Элементы данных) по столбцу itemid
SELECT * FROM httpstepitem WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем httpstep (шаги веб проверки в узле) с applications (группы элементов данных) по столбцу applicationid
SELECT * FROM httptest WHERE applicationid NOT IN (SELECT applicationid FROM applications WHERE applicationid is NOT NULL);

-- Строки, потерянных данных таблицы обслуживания maintenances
-- Сравниваем maintenances_groups (группы обслуживания) с maintenances (Периоды обслуживания) по столбцу maintenanceid
SELECT * FROM maintenances_groups WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances WHERE maintenanceid is NOT NULL);
-- Сравниваем maintenances_hosts (узлы обслуживания) с maintenances (Периоды обслуживания) по столбцу maintenanceid
SELECT * FROM maintenances_hosts WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances WHERE maintenanceid is NOT NULL);
-- Сравниваем maintenances_hosts (узлы обслуживания) с hosts (узлы) по столбцу hostid
SELECT * FROM maintenances_hosts WHERE hostid NOT IN (SELECT hostid FROM hosts WHERE hostid is NOT NULL);
-- Сравниваем maintenances_windows (Обслуживания windows) с maintenances (Периоды обслуживания) по столбцу maintenanceid
SELECT * FROM maintenances_windows WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances WHERE maintenanceid is NOT NULL);
-- Сравниваем maintenances_windows (Обслуживания windows) с timeperiods (периодичность) по столбцу timeperiodid
SELECT * FROM maintenances_windows WHERE timeperiodid NOT IN (SELECT timeperiodid FROM timeperiods WHERE timeperiodid is NOT NULL);
Для версии zabbix 3.x
-- Сравниваем maintenances_groups (группы обслуживания) с groups (группы) по столбцу groupid
SELECT * FROM maintenances_groups WHERE groupid NOT IN (SELECT groupid FROM groups WHERE groupid is NOT NULL); hosts_groups?

-- Строки, потерянных таблицы сопоставлений mappings
-- Сравниваем mappings (Преобразование значений) с valuemaps (значений название) по столбцу valuemapid
SELECT * FROM mappings WHERE valuemapid NOT IN (SELECT valuemapid FROM valuemaps WHERE valuemapid is NOT NULL);

-- Строки, потерянных таблиц носителей / пользовательских элементов media / user items
-- Сравниваем media (способы оповещения) с users (пользователи) по столбцу userid
SELECT * FROM media WHERE userid NOT IN (SELECT userid FROM users WHERE userid is NOT NULL);
-- Сравниваем media (способы оповещения) с media_type (тип оповещения) по столбцу mediatypeid
SELECT * FROM media WHERE mediatypeid NOT IN (SELECT mediatypeid FROM media_type WHERE mediatypeid is NOT NULL);
-- Сравниваем rights (права) с usrgrp (группы) по столбцу usrgrpid
SELECT * FROM rights WHERE groupid NOT IN (SELECT usrgrpid FROM usrgrp WHERE usrgrpid is NOT NULL);
Для версии zabbix 3.x
-- Сравниваем rights (права) с groups (группы) по столбцу groupid
SELECT * FROM rights WHERE id NOT IN (SELECT groupid FROM groups WHERE groupid is NOT NULL);

-- Строки, потерянных таблицы экранов screens
-- Сравниваем screens_items (элементы экраны) с screens (экраны) по столбцу screenid
SELECT * FROM screens_items WHERE screenid NOT IN (SELECT screenid FROM screens WHERE screenid is NOT NULL);

-- Строки, потерянных таблицы сессий не существующих пользователей
-- Сравниваем sessions (сессии пользователей) с users (пользователи) по столбцу userid
SELECT * FROM sessions WHERE userid NOT IN (SELECT userid FROM users WHERE userid is NOT NULL);

-- Строки, потерянные таблицы данные элементов данных
-- Сравниваем trends (данные значения элементов) с items (элементы данных) по столбцу itemid
SELECT * FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);
-- Сравниваем trends_uint (данные числовые значения элементов) с items (элементы данных) по столбцу itemid
SELECT * FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE itemid is NOT NULL);

-- Строки, потерянных таблицы событий и триггеров triggers
-- Сравниваем trigger_depends (триггер зависит) с triggers (триггеры) по столбцам triggerid_down и triggerid
SELECT * FROM trigger_depends WHERE triggerid_down NOT IN (SELECT triggerid FROM triggers WHERE triggerid is NOT NULL);
-- Сравниваем trigger_depends (триггер зависит) с triggers (триггеры) по столбцам triggerid_up и triggerid
SELECT * FROM trigger_depends WHERE triggerid_up NOT IN (SELECT triggerid FROM triggers WHERE triggerid is NOT NULL);
-- Для версии zabbix 2.x
-- Сравниваем user_history (история пользователя) с users (пользователи) по столбцу userid
SELECT * FROM user_history WHERE userid NOT IN (SELECT userid FROM users WHERE userid is NOT NULL);

-- Строки, потерянных таблицы оповещения услуг
-- Сравниваем service_alarms (оповещение сервисов) с services (сервисы) по столбцу serviceid
SELECT * FROM service_alarms WHERE serviceid NOT IN (SELECT serviceid FROM services WHERE serviceid is NOT NULL);

-- Строки, потерянных таблицы событий events (возможно не на все события оповещение ?)
-- Сравниваем events (события) с alerts (отправка сообщений) по столбцу eventid
SELECT * FROM events WHERE eventid NOT IN (SELECT eventid FROM alerts WHERE eventid is NOT NULL);

-- Строки, потерянных таблицы восстановленных событий event_recovery (если из всех 3х не совпало можно считать потерянными)
-- Сравниваем event_recovery (восстановленные события) c events (события проблемы) по столбцу eventid
SELECT * FROM event_recovery WHERE eventid NOT IN (SELECT eventid FROM events WHERE eventid is NOT NULL);
-- Сравниваем event_recovery (восстановленные события) c events (события проблемы) по столбцам eventid и r_eventid
SELECT * FROM event_recovery WHERE r_eventid NOT IN (SELECT eventid FROM events WHERE r_eventid is NOT NULL);
-- Сравниваем event_recovery (восстановленные события) c events (события проблемы) по столбцам eventid и c_eventid
SELECT * FROM event_recovery WHERE c_eventid NOT IN (SELECT eventid FROM events WHERE c_eventid is NOT NULL);
--Совпадение не найдено не в одном из 3х столбцов (возможна короляция событий)
SELECT * FROM event_recovery WHERE NOT eventid IN (SELECT eventid FROM events) AND NOT r_eventid IN (SELECT eventid FROM events) AND NOT c_eventid IN (SELECT eventid FROM events)

-- Строки, потерянных таблицы подавленных событий event_suppress
-- Сравниваем event_suppress (подавленные события) c events (события проблемы) по столбцу eventid
SELECT * FROM event_suppress WHERE eventid NOT IN (SELECT eventid FROM events WHERE eventid is NOT NULL);
-- Строки, потерянных таблицы тегов событий
-- Сравниваем event_tag (тег события) c events (события проблемы) по столбцу eventid
SELECT * FROM event_tag WHERE eventid NOT IN (SELECT eventid FROM events WHERE eventid is NOT NULL);

-- Строки, потерянных таблицы проблем problem (возможно есть проблемы которые не относятся к событиям?)
-- Сравниваем problem (проблемы) с events (события проблемы) по столбцу eventid
SELECT * FROM problem WHERE eventid NOT IN (SELECT eventid FROM events WHERE eventid is NOT NULL);
-- Сравниваем problem (проблемы) с event_recovery (восстановленные события) по столбцам eventid и r_eventid
SELECT * FROM problem WHERE eventid NOT IN (SELECT r_eventid FROM event_recovery WHERE r_eventid is NOT NULL);
-- Сравниваем сразу к 2 столбцам
SELECT * FROM problem WHERE NOT eventid IN (SELECT eventid FROM events) AND NOT eventid IN (SELECT r_eventid FROM event_recovery);

-- Выбрать старше 3х месяцев тенденций (данные ,данные числовые)
SELECT count(itemid) AS trends FROM trends WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (90 * 24 * 60 * 60);
SELECT count(itemid) AS trends_uint FROM trends_uint WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (90 * 24 * 60 * 60);

Ответ в виде количества строк
-- Подсчитайте количество строк, которые будут удалены для всех потерянных записей подтверждения acknowledges
SELECT COUNT(*) AS acknowedges_missing_user FROM acknowledges WHERE NOT userid IN (SELECT userid FROM users);
SELECT COUNT(*) AS acknowedges_missing_event FROM acknowledges WHERE NOT eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS acknowedges_missing_alert FROM acknowledges WHERE NOT acknowledgeid IN (SELECT acknowledgeid FROM alerts);

-- Подсчитайте количество строк, которые будут удалены для потерянных записей предупреждений alerts
SELECT COUNT(*) AS alerts_missing_action FROM alerts WHERE NOT actionid IN (SELECT actionid FROM actions);
SELECT COUNT(*) AS alerts_missing_event FROM alerts WHERE NOT eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS alerts_missing_event FROM alerts WHERE NOT p_eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS alerts_missing_user FROM alerts WHERE NOT userid IN (SELECT userid FROM users);
SELECT COUNT(*) AS alerts_missing_mediatype FROM alerts WHERE NOT mediatypeid IN (SELECT mediatypeid FROM media_type);

-- Подсчитайте количество строк, которые будут удалены для потерянных записей приложения applications, которые больше не сопоставляются с хостом
SELECT COUNT(*) AS applications_missing_host FROM applications WHERE NOT hostid IN (SELECT hostid FROM hosts);

-- Подсчитайте количество строк, которые будут удалены для потерянных сведений журнала аудита auditlog_details (таких как учетные данные входа)
-- SELECT COUNT(*) AS auditlog_missing_details FROM auditlog_details WHERE NOT auditid IN (SELECT auditid FROM auditlog); -- Это занимает экспоненциальное время, отключено
-- Подсчитайте количество строк, которые будут удалены для потерянных Аудитлог не существующих пользователей
SELECT COUNT(*) AS auditlog_missing_user FROM auditlog WHERE NOT userid IN (SELECT userid FROM users);

-- Подсчитайте количество строк, которые будут удалены для потерянных условий conditions
SELECT COUNT(*) AS conditions_missing_acction FROM conditions WHERE NOT actionid IN (SELECT actionid FROM actions);

-- Подсчитайте количество строк, которые будут удалены для потерянных функций functions
SELECT COUNT(*) AS functions_missing_item FROM functions WHERE NOT itemid IN (SELECT itemid FROM items);
SELECT COUNT(*) AS functions_missing_trigger FROM functions WHERE NOT triggerid IN (SELECT triggerid FROM triggers);

-- Подсчитайте количество строк, которые будут удалены для потерянных элементов графика graphs_items
SELECT COUNT(*) AS graph_items_missing_graphs FROM graphs_items WHERE NOT graphid IN (SELECT graphid FROM graphs);
SELECT COUNT(*) AS graph_items_missing_items FROM graphs_items WHERE NOT itemid IN (SELECT itemid FROM items);

-- Подсчитайте количество записей в таблице история /тенденции для элементов history/trends, которые больше не существуют
SELECT COUNT(itemid) AS history_missing_item FROM history WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_uint_missing_item FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_log_missing_item FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_str_missing_item FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_text_missing_item FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items);
-- Для заббикс версии 2.х
--SELECT COUNT(*) AS user_history_missing_user FROM user_history WHERE NOT userid IN (SELECT userid FROM users);
-- Для заббикс версии 1.8
--SELECT COUNT(itemid) AS history_sync_missing_item FROM history_sync WHERE itemid NOT IN (SELECT itemid FROM items);
-- Подсчитайте количество строк, которые будут удалены для потерянных файлов host_profiles
--SELECT COUNT(*) AS host_profiles_missing_hosts FROM hosts_profiles WHERE NOT hostid IN (SELECT hostid FROM hosts);
--SELECT COUNT(*) AS host_profiles_external_missing_hosts FROM hosts_profiles_ext WHERE NOT hostid IN (SELECT hostid FROM hosts);

-- Подсчитайте количество строк, которые будут удалены для макроса потерянного хоста hostmacro
SELECT COUNT(*) AS host_macros_missing_hosts FROM hostmacro WHERE NOT hostid IN (SELECT hostid FROM hosts);

-- Подсчитайте количество строк, которые будут удалены для потерянных данных элемента items
SELECT COUNT(itemid) AS items_missing_hosts FROM items WHERE hostid NOT IN (SELECT hostid FROM hosts);
SELECT COUNT(*) AS item_apps_missing_apps FROM items_applications WHERE applicationid NOT IN (SELECT applicationid FROM applications);
SELECT COUNT(*) AS item_apps_missing_items FROM items_applications WHERE itemid NOT IN (SELECT itemid FROM items);

-- Подсчитайте количество строк, которые будут удалены для потерянных данных проверки HTTP httpstep
SELECT COUNT(*) AS http_step_missing_tests FROM httpstep WHERE NOT httptestid IN (SELECT httptestid FROM httptest);
SELECT COUNT(*) AS http_step_items_missing_steps FROM httpstepitem WHERE NOT httpstepid IN (SELECT httpstepid FROM httpstep);
SELECT COUNT(*) AS http_step_items_missing_items FROM httpstepitem WHERE NOT itemid IN (SELECT itemid FROM items);
SELECT COUNT(*) AS http_test_missing_apps FROM httptest WHERE applicationid NOT IN (SELECT applicationid FROM applications);

-- Подсчитайте количество строк, которые будут удалены для потерянных данных обслуживания maintenances
SELECT COUNT(*) AS maintenance_group_missing_maintenances FROM maintenances_groups WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
-SELECT COUNT(*) AS maintenance_group_missing_groups FROM maintenances_groups WHERE groupid NOT IN (SELECT groupid FROM groups);
SELECT COUNT(*) AS maintenances_hosts_missing_maintenances FROM maintenances_hosts WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
SELECT COUNT(*) AS maintenances_hosts_missing_hosts FROM maintenances_hosts WHERE hostid NOT IN (SELECT hostid FROM hosts);
SELECT COUNT(*) AS maintenances_windows_missing_maintenances FROM maintenances_windows WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
SELECT COUNT(*) AS maintenances_windows_missing_windows FROM maintenances_windows WHERE timeperiodid NOT IN (SELECT timeperiodid FROM timeperiods);

-- Подсчитайте количество строк, которые будут удалены для потерянных сопоставлений mappings
SELECT COUNT(*) AS mappings_missing_valuemap FROM mappings WHERE NOT valuemapid IN (SELECT valuemapid FROM valuemaps);

-- Подсчитайте количество строк, которые будут удалены для потерянных носителей / пользовательских элементов media / user items
SELECT COUNT(*) AS media_missing_user FROM media WHERE NOT userid IN (SELECT userid FROM users);
SELECT COUNT(*) AS media_missing_type FROM media WHERE NOT mediatypeid IN (SELECT mediatypeid FROM media_type);
SELECT COUNT(*) AS rights_missing_user FROM rights WHERE NOT groupid IN (SELECT usrgrpid FROM usrgrp);
-- Для заббикс версии 3.х
--SELECT COUNT(*) AS rights_missing_group FROM rights WHERE NOT id IN (SELECT groupid FROM groups);

-- Подсчитайте количество строк, которые будут удалены для потерянных экранов screens
SELECT COUNT(*) AS screens_items_missing_screen FROM screens_items WHERE screenid NOT IN (SELECT screenid FROM screens);

-- Подсчитайте количество строк, которые будут удалены для потерянных сессий не существующих пользователей
SELECT COUNT(*) AS sessions_missing_user FROM sessions WHERE NOT userid IN (SELECT userid FROM users);

-- Подсчитайте количество строк, которые будут удалены для потерянные данные элементов данных
SELECT COUNT(itemid) AS trends_missing_item FROM trends WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS trends_uint_missing_item FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items);

-- Подсчитайте количество строк, которые будут удалены для потерянных событий и триггеров triggers
SELECT COUNT(*) AS trigger_down_dependency_missing_trigger FROM trigger_depends WHERE triggerid_down NOT IN (SELECT triggerid FROM triggers);
SELECT COUNT(*) AS trigger_up_dependency_missing_trigger FROM trigger_depends WHERE triggerid_up NOT IN (SELECT triggerid FROM triggers);

-- Подсчитайте количество строк, которые будут удалены для потерянных оповещения услуг
SELECT COUNT(*) AS service_alarms_missing_services FROM service_alarms WHERE NOT serviceid IN (SELECT serviceid FROM services);

-- Подсчитайте количество строк, которые будут удалены для потерянных событий (возможно не на все события оповещение ?)
SELECT COUNT(*) AS events_missing_alerts FROM events WHERE NOT eventid IN (SELECT eventid FROM alerts);

-- Подсчитайте количество строк, которые будут удалены для потерянных восстановленных событий (если из всех 3х не совпало можно считать потерянными)
SELECT COUNT(*) AS event_recovery_missing_events FROM event_recovery WHERE NOT eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS event_recovery_missing_events FROM event_recovery WHERE NOT r_eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS event_recovery_missing_events FROM event_recovery WHERE NOT c_eventid IN (SELECT eventid FROM events);
-- Количество строк где не в одном из 3х столбцов совпадение не найдено
SELECT COUNT(*) AS event_recovery_missing_events FROM event_recovery WHERE NOT eventid IN (SELECT eventid FROM events) AND NOT r_eventid IN (SELECT eventid FROM events) AND NOT c_eventid IN (SELECT eventid FROM events)

--Подсчитайте количество строк, которые будут удалены для потерянных подавленных событий
SELECT COUNT(*) AS event_suppress_missing_events FROM event_suppress WHERE NOT eventid IN (SELECT eventid FROM events);

--Подсчитайте количество строк, которые будут удалены для потерянных тегов событий
SELECT COUNT(*) AS event_tag_missing_events FROM event_tag WHERE NOT eventid IN (SELECT eventid FROM events);

-- Строки, потерянных проблем (возможно есть проблемы которые не относятся к событиям?)
SELECT COUNT(*) AS problem_missing_events FROM problem WHERE NOT eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS problem_missing_events FROM problem WHERE NOT eventid IN (SELECT r_eventid FROM event_recovery);
-- Сразу для 2х столбцов
SELECT COUNT(*) AS problem_missing_events FROM problem WHERE NOT eventid IN (SELECT eventid FROM events) AND NOT eventid IN (SELECT r_eventid FROM event_recovery);

Скачать
check-orphaned-data.zbx.zip
check-orphaned-data.zbx.zip
(2 КБ) 44 скачивания
Данными запросами можно прикинуть, сколько данных будет очищено неактивных итемов:
SELECT count(itemid) AS history FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_uint FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='1');
SELECT count(itemid) AS history_str FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_text FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_log FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS trends FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS trends_uint FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');

Удаления всех неактивных итемов записей из таблиц:
DELETE FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
Удалить из трендов _ uint, где itemid отсутствует (выберите itemid из элементов, где status = '0')

Данными запросами вы очистите базу данных zabbix от значений неактивных элементов данных. Но реально размер базы данных у вас не уменьшится, потому что в дефолтной настройке базы данных используется формат innodb. Все данные хранятся в файле ibdata1, который автоматически не очищается после удаления данных из базы.

Скрипты взятые с Оригинальные скрипты EN burner1024/zabbix-sql
Скачать
zabbix-sql-master-rus.zip
zabbix-sql-master-rus.zip
(14.39 КБ) 49 скачиваний
Описание на Русском
Показать
Кратное описание
проверить-ЛЛД-триггеров my.sql - check-lld-triggers.my.sql
проверить-старые данные my.sql - check-old-data.my.sql
проверить потерянных данных.zbx ХХ .sql - check-orphaned-data.zbxXX.sql XX - версия заббикс
проверить неиспользуемые данные .sql - check-unused-data

удалить-ЛЛД-триггеров my.sql - delete-lld-triggers.my.sql
удалить старые данные my.sql - delete-old-data.my.sql
удалить потерянные данные.zbx ХХ .sql - delete-orphaned-data.zbx XX.sql XX - версия заббикс
удаление неиспользуемых данных .sql - delete-unused-data.sql

стоп-и-удалить-по электронной почте-уведомления .sql - stop-and-delete-email-alerts.sql
стоп-email-оповещения my.sql - stop-email-alerts.sql

Полное описание
# Репозиторий SQL Zabbix

Репозиторий SQL Zabbix

Это репозиторий содержит несколько полезных запросов к базе данных Zabbix, в основном для очистки старых и/ или потерянных данных.

- [Важные примечания] (#important-notes)
- [Использование](#usage)
* [Потерянные данные](#orphaned-data)
* [Старые данные](#old-data)
* [Неиспользуемые данные](#unused-data)
* [Остановить поток электронной почты](#stop-email-flood)
* [триггеры LLD] (#lld-triggers)

### Важные примечания

* Если у вас большая база данных, пожалуйста, обратите внимание, что это может занять некоторое время (обычно несколько часов).
* Используйте запросы на свой страх и риск. Сначала сделайте **резервные копии**. Запросы были (в основном) протестированы на Zabbix 1.8-3.0.
* Некоторые сценарии специфичны для Mysql или Postgresql, они называются *.my.sql и *.pg.sql соответственно. Некоторые из них также зависят от версии Zabbix. Имена файлов объясняются сами собой.
* Патчи приветствуются.

### Использование

#### Потерянные данные
Потерянные данные - это история, принадлежащая удаленным хостам и подобным им.

mysql zabbix < check-orphaned-data.sql
psql -A -R ' : ' -P 'footer=off' zabbix < check-orphaned-data.zbx2x.sql

mysql zabbix < delete-orphaned-data.sql
psql -A -R ' : ' -P 'footer=off' zabbix < delete-orphaned-data.zbx2x.sql

#### Старые данные
Этот набор запросов позволяет удалить все данные старше указанного периода. По умолчанию 1 неделя для истории, 3 месяца для тенденций - редактируйте sql по своему усмотрению.

mysql zabbix < check-old-data.my.sql
psql -A -R ' : ' -P 'footer=off' zabbix < check-old-data.pg.sql

mysql zabbix < delete-old-data.my.sql
psql -A -R ' : ' -P 'footer=off' zabbix < delete-old-data.pg.sql

** ПРИМЕЧАНИЕ**: из-за того, как работают базы данных (в частности, MySQL), выполнение этих сценариев не уменьшит размер базы данных Zabbix, если она уже раздута. После этого вам придется сбросить и перезагрузить базу данных. Что делают скрипты, так это сохраняют свой размер более или менее постоянным, если вы запускаете их регулярно.

#### Неиспользуемые данные
При этом удаляется вся история отключенных элементов. Может пригодиться, когда вы отключите значительное количество элементов и вам больше не понадобятся собранные данные.

mysql zabbix < check-unused-data.sql
psql -A -R ' : ' -P 'footer=off' zabbix < check-unused-data.sql

mysql zabbix < delete-unused-data.sql
psql -A -R ' : ' -P 'footer=off' zabbix < delete-unused-data.sql

#### Остановить поток электронной почты
(Используйте stop-and-delete-email-alerts.sql, если вас не интересует история предупреждений)

service zabbix-server stop
psql zabbix < stop-email-alerts.sql
service zabbix-server start

#### Триггеры LLD
Zabbix автоматически создаст триггеры "Обнаружение смонтированной файловой системы", которые вы не можете отключить или удалить из веб-интерфейса. Эти запросы позволят вам удалить их все сразу (дисковое пространство и индексы). [Вдохновленный](https://www.zabbix.com/forum/showthread.php?t=44028 ).

mysql zabbix < check-lld-triggers.my.sql
psql -A -R ' : ' -P 'footer=off' zabbix < check-lld-triggers.pg.sql

mysql zabbix < delete-lld-triggers.my.sql
psql -A -R ' : ' -P 'footer=off' zabbix < delete-lld-triggers.pg.sql

Оличие скриптов check/delete-orphaned-data
в 1.8 есть +3 команды
-- Подсчитайте количество записей в таблице история /тенденции для элементов history/trends, которые больше не существуют
SELECT COUNT(itemid) AS history_sync_missing_item FROM history_sync WHERE itemid NOT IN (SELECT itemid FROM items);
-- Подсчитайте количество строк, которые будут удалены для потерянных файлов host_profiles
SELECT COUNT(*) AS host_profiles_missing_hosts FROM hosts_profiles WHERE NOT hostid IN (SELECT hostid FROM hosts);
SELECT COUNT(*) AS host_profiles_external_missing_hosts FROM hosts_profiles_ext WHERE NOT hostid IN (SELECT hostid FROM hosts);
в 2 версии 1 команда
SELECT COUNT(*) AS user_history_missing_user FROM user_history WHERE NOT userid IN (SELECT userid FROM users);
Потерянные данные - это история, принадлежащая удаленным хостам и подобным им.
Просмотреть количество
check-orphaned-data.zbx1.8-3.sql
Показать
-- Подсчитайте количество строк, которые будут удалены для всех потерянных записей подтверждения acknowledges
SELECT COUNT(*) AS acknowedges_missing_user FROM acknowledges WHERE NOT userid IN (SELECT userid FROM users);
SELECT COUNT(*) AS acknowedges_missing_event FROM acknowledges WHERE NOT eventid IN (SELECT eventid FROM events);

-- Подсчитайте количество строк, которые будут удалены для потерянных записей предупреждений alerts
SELECT COUNT(*) AS alerts_missing_action FROM alerts WHERE NOT actionid IN (SELECT actionid FROM actions);
SELECT COUNT(*) AS alerts_missing_event FROM alerts WHERE NOT eventid IN (SELECT eventid FROM events);
SELECT COUNT(*) AS alerts_missing_user FROM alerts WHERE NOT userid IN (SELECT userid FROM users);
SELECT COUNT(*) AS alerts_missing_mediatype FROM alerts WHERE NOT mediatypeid IN (SELECT mediatypeid FROM media_type);

-- Подсчитайте количество строк, которые будут удалены для потерянных записей приложения applications, которые больше не сопоставляются с хостом
SELECT COUNT(*) AS applications_missing_host FROM applications WHERE NOT hostid IN (SELECT hostid FROM hosts);

-- Подсчитайте количество строк, которые будут удалены для потерянных сведений журнала аудита auditlog_details (таких как учетные данные входа)
-- SELECT COUNT(*) AS auditlog_missing_details FROM auditlog_details WHERE NOT auditid IN (SELECT auditid FROM auditlog); -- Это занимает экспоненциальное время, отключено
SELECT COUNT(*) AS auditlog_missing_user FROM auditlog WHERE NOT userid IN (SELECT userid FROM users);

-- Подсчитайте количество строк, которые будут удалены для потерянных условий conditions
SELECT COUNT(*) AS conditions_missing_acction FROM conditions WHERE NOT actionid IN (SELECT actionid FROM actions);

-- Подсчитайте количество строк, которые будут удалены для потерянных функций functions
SELECT COUNT(*) AS functions_missing_item FROM functions WHERE NOT itemid IN (SELECT itemid FROM items);
SELECT COUNT(*) AS functions_missing_trigger FROM functions WHERE NOT triggerid IN (SELECT triggerid FROM triggers);

-- Подсчитайте количество строк, которые будут удалены для потерянных элементов графика graphs_items
SELECT COUNT(*) AS graph_items_missing_graphs FROM graphs_items WHERE NOT graphid IN (SELECT graphid FROM graphs);
SELECT COUNT(*) AS graph_items_missing_items FROM graphs_items WHERE NOT itemid IN (SELECT itemid FROM items);

-- Подсчитайте количество записей в таблице история /тенденции для элементов history/trends, которые больше не существуют
SELECT COUNT(itemid) AS history_missing_item FROM history WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_uint_missing_item FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_log_missing_item FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_str_missing_item FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS history_text_missing_item FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items);
-- Для заббикс версии 1.8
SELECT COUNT(itemid) AS history_sync_missing_item FROM history_sync WHERE itemid NOT IN (SELECT itemid FROM items);

-- Для заббикс версии 1.8
-- Подсчитайте количество строк, которые будут удалены для потерянных файлов host_profiles
SELECT COUNT(*) AS host_profiles_missing_hosts FROM hosts_profiles WHERE NOT hostid IN (SELECT hostid FROM hosts);
SELECT COUNT(*) AS host_profiles_external_missing_hosts FROM hosts_profiles_ext WHERE NOT hostid IN (SELECT hostid FROM hosts);

-- Подсчитайте количество строк, которые будут удалены для макроса потерянного хоста hostmacro
SELECT COUNT(*) AS host_macros_missing_hosts FROM hostmacro WHERE NOT hostid IN (SELECT hostid FROM hosts);

-- Подсчитайте количество строк, которые будут удалены для потерянных данных элемента items
SELECT COUNT(itemid) AS items_missing_hosts FROM items WHERE hostid NOT IN (SELECT hostid FROM hosts);
SELECT COUNT(*) AS item_apps_missing_apps FROM items_applications WHERE applicationid NOT IN (SELECT applicationid FROM applications);
SELECT COUNT(*) AS item_apps_missing_items FROM items_applications WHERE itemid NOT IN (SELECT itemid FROM items);

-- Подсчитайте количество строк, которые будут удалены для потерянных данных проверки HTTP httpstep
SELECT COUNT(*) AS http_step_missing_tests FROM httpstep WHERE NOT httptestid IN (SELECT httptestid FROM httptest);
SELECT COUNT(*) AS http_step_items_missing_steps FROM httpstepitem WHERE NOT httpstepid IN (SELECT httpstepid FROM httpstep);
SELECT COUNT(*) AS http_step_items_missing_items FROM httpstepitem WHERE NOT itemid IN (SELECT itemid FROM items);
SELECT COUNT(*) AS http_test_missing_apps FROM httptest WHERE applicationid NOT IN (SELECT applicationid FROM applications);

-- Подсчитайте количество строк, которые будут удалены для потерянных данных обслуживания maintenances
SELECT COUNT(*) AS maintenance_group_missing_maintenances FROM maintenances_groups WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
SELECT COUNT(*) AS maintenance_group_missing_groups FROM maintenances_groups WHERE groupid NOT IN (SELECT groupid FROM groups);
SELECT COUNT(*) AS maintenances_hosts_missing_maintenances FROM maintenances_hosts WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
SELECT COUNT(*) AS maintenances_hosts_missing_hosts FROM maintenances_hosts WHERE hostid NOT IN (SELECT hostid FROM hosts);
SELECT COUNT(*) AS maintenances_windows_missing_maintenances FROM maintenances_windows WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
SELECT COUNT(*) AS maintenances_windows_missing_windows FROM maintenances_windows WHERE timeperiodid NOT IN (SELECT timeperiodid FROM timeperiods);

-- Подсчитайте количество строк, которые будут удалены для потерянных сопоставлений mappings
SELECT COUNT(*) AS mappings_missing_valuemap FROM mappings WHERE NOT valuemapid IN (SELECT valuemapid FROM valuemaps);

-- Подсчитайте количество строк, которые будут удалены для потерянных носителей / пользовательских элементов media / user items
SELECT COUNT(*) AS media_missing_user FROM media WHERE NOT userid IN (SELECT userid FROM users);
SELECT COUNT(*) AS media_missing_type FROM media WHERE NOT mediatypeid IN (SELECT mediatypeid FROM media_type);
SELECT COUNT(*) AS rights_missing_user FROM rights WHERE NOT groupid IN (SELECT usrgrpid FROM usrgrp);
SELECT COUNT(*) AS rights_missing_group FROM rights WHERE NOT id IN (SELECT groupid FROM groups);

-- Подсчитайте количество строк, которые будут удалены для потерянных экранов screens
SELECT COUNT(*) AS screens_items_missing_screen FROM screens_items WHERE screenid NOT IN (SELECT screenid FROM screens);

SELECT COUNT(*) AS sessions_missing_user FROM sessions WHERE NOT userid IN (SELECT userid FROM users);

SELECT COUNT(itemid) AS trends_missing_item FROM trends WHERE itemid NOT IN (SELECT itemid FROM items);
SELECT COUNT(itemid) AS trends_uint_missing_item FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items);

-- Подсчитайте количество строк, которые будут удалены для потерянных событий и триггеров triggers
SELECT COUNT(*) AS trigger_down_dependency_missing_trigger FROM trigger_depends WHERE triggerid_down NOT IN (SELECT triggerid FROM triggers);
SELECT COUNT(*) AS trigger_up_dependency_missing_trigger FROM trigger_depends WHERE triggerid_up NOT IN (SELECT triggerid FROM triggers);

-- Для заббикс версии 2.х
SELECT COUNT(*) AS user_history_missing_user FROM user_history WHERE NOT userid IN (SELECT userid FROM users);
Удаление
delete-orphaned-data.zbx1.8-3.sql
Показать
DELETE FROM acknowledges WHERE NOT userid IN (SELECT userid FROM users);
DELETE FROM acknowledges WHERE NOT eventid IN (SELECT eventid FROM events);

DELETE FROM alerts WHERE NOT actionid IN (SELECT actionid FROM actions);
DELETE FROM alerts WHERE NOT eventid IN (SELECT eventid FROM events);
DELETE FROM alerts WHERE NOT userid IN (SELECT userid FROM users);
DELETE FROM alerts WHERE NOT mediatypeid IN (SELECT mediatypeid FROM media_type);

DELETE FROM applications WHERE NOT hostid IN (SELECT hostid FROM hosts);

DELETE FROM auditlog WHERE NOT userid IN (SELECT userid FROM users);

DELETE FROM conditions WHERE NOT actionid IN (SELECT actionid FROM actions);

DELETE FROM functions WHERE NOT itemid IN (SELECT itemid FROM items);
DELETE FROM functions WHERE NOT triggerid IN (SELECT triggerid FROM triggers);

DELETE FROM graphs_items WHERE NOT graphid IN (SELECT graphid FROM graphs);
DELETE FROM graphs_items WHERE NOT itemid IN (SELECT itemid FROM items);

DELETE FROM history WHERE itemid NOT IN (SELECT itemid FROM items);
DELETE FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items);
DELETE FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items);
DELETE FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items);
DELETE FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items);
-- Для заббикс версии 1.8
DELETE FROM history_sync WHERE itemid NOT IN (SELECT itemid FROM items);

-- Для заббикс версии 1.8
DELETE FROM hosts_profiles WHERE NOT hostid IN (SELECT hostid FROM hosts);
DELETE FROM hosts_profiles_ext WHERE NOT hostid IN (SELECT hostid FROM hosts);

DELETE FROM hostmacro WHERE NOT hostid IN (SELECT hostid FROM hosts);

DELETE FROM items WHERE hostid NOT IN (SELECT hostid FROM hosts);
DELETE FROM items_applications WHERE applicationid NOT IN (SELECT applicationid FROM applications);
DELETE FROM items_applications WHERE itemid NOT IN (SELECT itemid FROM items);

DELETE FROM httpstep WHERE NOT httptestid IN (SELECT httptestid FROM httptest);
DELETE FROM httpstepitem WHERE NOT httpstepid IN (SELECT httpstepid FROM httpstep);
DELETE FROM httpstepitem WHERE NOT itemid IN (SELECT itemid FROM items);
DELETE FROM httptest WHERE applicationid NOT IN (SELECT applicationid FROM applications);

DELETE FROM maintenances_groups WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
DELETE FROM maintenances_groups WHERE groupid NOT IN (SELECT groupid FROM groups);
DELETE FROM maintenances_hosts WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
DELETE FROM maintenances_hosts WHERE hostid NOT IN (SELECT hostid FROM hosts);
DELETE FROM maintenances_windows WHERE maintenanceid NOT IN (SELECT maintenanceid FROM maintenances);
DELETE FROM maintenances_windows WHERE timeperiodid NOT IN (SELECT timeperiodid FROM timeperiods);

DELETE FROM mappings WHERE NOT valuemapid IN (SELECT valuemapid FROM valuemaps);

DELETE FROM media WHERE NOT userid IN (SELECT userid FROM users);
DELETE FROM media WHERE NOT mediatypeid IN (SELECT mediatypeid FROM media_type);

DELETE FROM rights WHERE NOT groupid IN (SELECT usrgrpid FROM usrgrp);
DELETE FROM rights WHERE NOT id IN (SELECT groupid FROM groups);

DELETE FROM screens_items WHERE screenid NOT IN (SELECT screenid FROM screens);

DELETE FROM sessions WHERE NOT userid IN (SELECT userid FROM users);

DELETE FROM trends WHERE itemid NOT IN (SELECT itemid FROM items);
DELETE FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items);

DELETE FROM trigger_depends WHERE triggerid_down NOT IN (SELECT triggerid FROM triggers);
DELETE FROM trigger_depends WHERE triggerid_up NOT IN (SELECT triggerid FROM triggers);

-- Для заббикс версии 2.х
DELETE FROM user_history WHERE NOT userid IN (SELECT userid FROM users);
Удалить все данные старше указанного периода. По умолчанию 1 неделя для истории, 3 месяца для тенденций - редактируйте sql по своему усмотрению.
Просмотреть количество
check-old-data.my.sql
Показать
-- Старые данные Этот набор запросов позволяет Выбрать все данные старше указанного периода. По умолчанию 1 неделя для истории, 3 месяца для тенденций - редактируйте sql по своему усмотрению.
-- интервалы в днях
SET @history_interval = 7;
SET @trends_interval = 90;

SELECT count(alertid) AS alerts FROM alerts WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
SELECT count(acknowledgeid) AS acknowledges FROM acknowledges WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
SELECT count(eventid) AS events FROM events WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);

SELECT count(itemid) AS history FROM history WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
SELECT count(itemid) AS history_uint FROM history_uint WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
SELECT count(itemid) AS history_str FROM history_str WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
SELECT count(itemid) AS history_text FROM history_text WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
SELECT count(itemid) AS history_log FROM history_log WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);

SELECT count(itemid) AS trends FROM trends WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@trends_interval * 24 * 60 * 60);
SELECT count(itemid) AS trends_uint FROM trends_uint WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@trends_interval * 24 * 60 * 60);
Удалить
delete-old-data.my.sql
Показать
-- интервалы в днях
SET @history_interval = 7;
SET @trends_interval = 90;

DELETE FROM alerts WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
DELETE FROM acknowledges WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
DELETE FROM events WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);

DELETE FROM history WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
DELETE FROM history_uint WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
DELETE FROM history_str WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
DELETE FROM history_text WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);
DELETE FROM history_log WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@history_interval * 24 * 60 * 60);

DELETE FROM trends WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@trends_interval * 24 * 60 * 60);
DELETE FROM trends_uint WHERE (UNIX_TIMESTAMP(NOW()) - clock) > (@trends_interval * 24 * 60 * 60);
Просмотреть количество
check-old-data.pg.sql
Показать
-- интервалы в днях
\set history_interval 7
\set trends_interval 90

SELECT count(alertid) AS alerts FROM alerts WHERE age(to_timestamp(alerts.clock)) > (:history_interval * interval '1 day');

SELECT count(acknowledgeid) AS acknowledges FROM acknowledges WHERE age(to_timestamp(acknowledges.clock)) > (:history_interval * interval '1 day');

SELECT count(eventid) AS events FROM events WHERE age(to_timestamp(events.clock)) > (:history_interval * interval '1 day');

SELECT count(itemid) AS history FROM history WHERE age(to_timestamp(history.clock)) > (:history_interval * interval '1 day');
SELECT count(itemid) AS history_uint FROM history_uint WHERE age(to_timestamp(history_uint.clock)) > (:history_interval * interval '1 day') ;
SELECT count(itemid) AS history_str FROM history_str WHERE age(to_timestamp(history_str.clock)) > (:history_interval * interval '1 day') ;
SELECT count(itemid) AS history_text FROM history_text WHERE age(to_timestamp(history_text.clock)) > (:history_interval * interval '1 day') ;
SELECT count(itemid) AS history_log FROM history_log WHERE age(to_timestamp(history_log.clock)) > (:history_interval * interval '1 day') ;

SELECT count(itemid) AS trends FROM trends WHERE age(to_timestamp(trends.clock)) > (:trends_interval * interval '1 day');
SELECT count(itemid) AS trends_uint FROM trends_uint WHERE age(to_timestamp(trends_uint.clock)) > (:trends_interval * interval '1 day') ;
Удалить
delete-old-data.pg.sql
Показать
-- сохраняйте 1 неделю истории и 3 месяца тенденций
\set history_interval 7
\set trends_interval 90

DELETE FROM alerts where age(to_timestamp(alerts.clock)) > (:history_interval * interval '1 day');

DELETE FROM acknowledges where age(to_timestamp(acknowledges.clock)) > (:history_interval * interval '1 day');

DELETE FROM events where age(to_timestamp(events.clock)) > (:history_interval * interval '1 day');

DELETE FROM history where age(to_timestamp(history.clock)) > (:history_interval * interval '1 day');
DELETE FROM history_uint where age(to_timestamp(history_uint.clock)) > (:history_interval * interval '1 day') ;
DELETE FROM history_str where age(to_timestamp(history_str.clock)) > (:history_interval * interval '1 day') ;
DELETE FROM history_text where age(to_timestamp(history_text.clock)) > (:history_interval * interval '1 day') ;
DELETE FROM history_log where age(to_timestamp(history_log.clock)) > (:history_interval * interval '1 day') ;

DELETE FROM trends where age(to_timestamp(trends.clock)) > (:trends_interval * interval '1 day');
DELETE FROM trends_uint where age(to_timestamp(trends_uint.clock)) > (:trends_interval * interval '1 day') ;
Неиспользуемые данные удаляется вся история отключенных элементов
Просмотреть количество
check-unused-data.sql
Показать
-- Неиспользуемые данные, при этом удаляется вся история отключенных элементов. Может пригодиться, когда вы отключите значительное количество элементов и вам больше не понадобятся собранные данные.
SELECT count(itemid) AS history FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_uint FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_str FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_text FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS history_log FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');

SELECT count(itemid) AS trends FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
SELECT count(itemid) AS trends_uint FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
Удалить
delete-unused-data.sql
Показать
DELETE FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');

DELETE FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
DELETE FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
Остановить поток электронной почты
Используйте, если вас не интересует история предупреждени
stop-and-delete-email-alerts.sql
Показать
TRUNCATE alerts;
TRUNCATE escalations;
service zabbix-server stop
psql zabbix < stop-email-alerts.sql
service zabbix-server start
stop-email-alerts.sql
Показать
UPDATE alerts SET status=2,error='' WHERE status=0 AND alerttype=0;
TRUNCATE escalations;
Триггеры LLD Обнаружение смонтированной файловой системы позволят вам удалить их все сразу
Просмотреть
check-lld-triggers.my.sql
Показать
-- Триггеры LLD Zabbix автоматически создаст триггеры "Обнаружение смонтированной файловой системы", которые вы не можете отключить или удалить из веб-интерфейса. Эти запросы позволят вам удалить их все сразу (дисковое пространство и индексы). [Вдохновленный](https://www.zabbix.com/forum/showthread.php?t=44028 ).
SELECT count(triggerid)
AS diskspace
FROM triggers
WHERE description LIKE 'Free disk space is less than 20|%%'
ESCAPE '|'
AND NOT description LIKE '%{#FSNAME}%';

SELECT count(triggerid)
AS inodes
FROM triggers
WHERE description LIKE 'Free disk space is less than 20|%%'
ESCAPE '|'
AND NOT description LIKE '%{#FSNAME}%';
check-lld-triggers.pg.sql
Показать
SELECT count(triggerid)
FROM triggers
WHERE description ~* 'disk space.*less.*20%' AND NOT description ~* '{#';
Удалить
delete-lld-triggers.my.sql
Показать
DELETE FROM triggers
WHERE description LIKE 'Free disk space is less than 20|%%'
ESCAPE '|'
AND NOT description LIKE '%{#FSNAME}%';
delete-lld-triggers.pg.sql
Показать
DELETE
FROM triggers
WHERE description ~* 'disk space.*less.*20%' AND NOT description ~* '{#';
количество слов: 5714
Ответить Вложения 9 Пред. темаСлед. тема

Вернуться в «Установка Заббикс и Дополнений»