Костыли 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;

Оригинал в статье Optimizing disk usage of Zabbix and PostgreSQL

Очищаем все сообщения о проблемах и состояние триггеров:
  1. отключаем zabbix-server
  2. очищаем все из базы данных
    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;
VN:F [1.9.22_1171]
Рейтинг: 6.0/10 (1 голос)
Костыли Zabbix, 6.0 out of 10 based on 1 rating

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *