Статья взята с мёртвого сисадминского сайта. Сам я никогда с Zabbix-ом не работал, поэтому за решения не ручаюсь. Возможно кому-то эта инфа всё таки будет полезной.
Принудительное отключение параметров, которые уже не обнаруживаются через LDD, но еще не удалились:
# смотрим сколько таких показателей для нужного нам хоста
SELECT count(*)
FROM items
LEFT JOIN item_discovery ON item_discovery.itemid = items.itemid
WHERE hostid = 10197
AND ts_delete != 0
AND status = 0;
BEGIN;
UPDATE items
SET status = 1
WHERE itemid IN
(SELECT items.itemid
FROM items
LEFT JOIN item_discovery ON item_discovery.itemid = items.itemid
WHERE hostid = 10197
AND ts_delete != 0
AND status = 0
);
# проверяем что количество затронутых строк совпадает с первым SELECT запросом
# и только потом делаем коммит, в противном случае возвращаемся к исходному состоянию выполнив ROLLBACK
COMMIT;
В первом запросе, мы получили количество параметров, которые еще собираются с хоста, но уже помечены на удаление, так как, к примеру, эти параметры не находятся в LLD. Нам не интересно собирать такие данные и мы отключаем их вторым запросом. Обязательно меняйте hostid на своё значение.
Уменьшаем занимаемое место базы в PostgreSQL:
Вкратце:
— В старых версиях Zabbix, при создании схемы базы, используются OIDs. Занимают много места, бесполезны, нужно удалить.
ALTER TABLE test SET WITHOUT OIDS;
— Пересоздаем индексы с типом brin для огромных таблиц history/trends
begin;
drop index history;
create index history_1 on history using brin (itemid, clock);
commit;
Очищение всех сообщений о проблемах и состояние триггеров:
- отключаем zabbix-server
- очищаем все из базы данных
TRUNCATE acknowledges CASCADE;
TRUNCATE alerts CASCADE;
TRUNCATE escalations CASCADE;
TRUNCATE event_recovery CASCADE;
TRUNCATE event_tag CASCADE;
TRUNCATE events CASCADE;
TRUNCATE problem CASCADE;
UPDATE triggers SET value = 0 WHERE value = 1;
Массовое отключение триггеров с нужным нам именем для нужного хоста:
BEGIN;
UPDATE triggers SET status = 1 WHERE triggerid in (
SELECT DISTINCT t.triggerid
FROM triggers t
INNER JOIN functions f ON ( f.triggerid = t.triggerid )
INNER JOIN items i ON ( i.itemid = f.itemid )
INNER JOIN hosts h ON ( i.hostid = h.hostid )
WHERE h.name like '%dlink-sw01%' AND t.description like '%Link Usage%'
);
COMMIT;
Массовое отключение сбора заданных метрик для нужного хоста:
BEGIN;
UPDATE items SET status = 1 WHERE itemid IN (
SELECT DISTINCT i.itemid
FROM items i
INNER JOIN hosts h ON ( i.hostid = h.hostid )
WHERE h.hostid = 10202 AND i.snmp_oid LIKE 'IF-MIB::if%'
);
COMMIT;