Ad Widget

Collapse

Ограничение очистки истории housekeeper'ом

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Serg85
    Junior Member
    • Aug 2014
    • 18

    #1

    Ограничение очистки истории housekeeper'ом

    Приветствую всех!

    Столкнулся с проблемой ограничения удаления истории housekeeper'ом

    Исходные:
    Zabbix 2.2.5 на Debian7
    БД MySQL 5.6
    Количество узлов сети 95
    Количество элементов данных 3038
    Количество триггеров 556

    Ранее период хранения всех элементов стоял по умолчанию 365 дней, но с увеличением хостов сети размер БД стал расти, было принято решение ограничить период хранения до 30 дней.
    Глобально задал ограничение в 30 дней через настройки веб интерфейса, очистку истории. В конфиг добавил следующее:
    HousekeepingFrequency=1 (запуск каждый час)
    MaxHousekeeperDelete=0 (без ограничение на удаление)

    Сейчас период графиков многих узлов достигает 6 месяцев.
    Соответственно ожидалось, что при параметре MaxHousekeeperDelete=0 хаускипер порежет историю сразу до указанных 30 дней и на графиках останется история в 30 дней. НО! не тут то было

    Что вижу сейчас - хаускипер запускается каждый час и работает по 1-2 минуте(смотреть приложенный график ) и удаляет 3-4 часа каждого узла!(наблюдаю по истории графика узлов за весь период, "показать все")
    За 1 день получается по наблюдению что он удаляет 2-3 дня.

    Click image for larger version

Name:	chart2.jpg
Views:	2
Size:	26.0 KB
ID:	316951

    Кто встречал такое, почему удаление происходит не сразу и чем может быть ограничена работа хаускипера?
    Также пока не разобрался, как можно запустить хаускипер вручную чтоб не ждать час?


    После прогона Housekeeper:
    housekeeper [deleted 7005 hist/trends, 0 items, 1536 events, 0 sessions, 0 alarms, 0 audit items i]

    Такое ощущение что стоит какое-то ограничение в настройках. Производительность сервера на которой он стоит достаточная - 4cpu Xeon, 4Гб ram, Hdd SAS в Raid 10

    Что пробовал делать:
    1.Ставил максимальное значение MaxHousekeeperDelete=1000000, также без изменений.
    2.Пробовал деактивировать наблюдение всех узлов перед запуском хаускипера, также без изменений.
    3.Скопировал БД sqldump, перенес на сервер zabbix 2.2.2, настроил также, без изменений.

    Чистка вручную БД не рассматривается, хочу понять грабли с хаускипером.
    Last edited by Serg85; 25-08-2014, 10:03.
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #2
    Извините, но вы не путаете Историю и Тренды?
    После 30 дней хранения истории данные усредняются и сохраняются в Тренды.
    И на графиках вы видите Тренды, а не Историю.

    Вы хотите вообще удалить все данные старше, чем 30 дней? Тогда надо уменьшать оба параметра - для Истории и для Трендов.

    Imho
    Sincerely yours,
    Aleksey

    Comment

    • Serg85
      Junior Member
      • Aug 2014
      • 18

      #3
      График, что приводил в первом посте относится к частоте работы хаускипера, выделен желтым.
      Сделал вот так(см. ниже скриншот)
      На сколько понимаю в таком варианте хранится 30 дней история и 60 изменения, итого 90 дней.
      Тем не менее вопрос открыт, почему удаляется не сразу все до значения 90 дней при MaxHousekeeperDelete=0
      Повторюсь, сейчас графики достигают 6 месяцев и удаление идет по 3 дня в графике за 1 день!

      [ATTACH]7333[/ATTACH]
      Last edited by Serg85; 02-09-2014, 17:43.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        На сколько понимаю в таком варианте хранится 30 дней история и 60 изменения, итого 90 дней.
        Итого: 60 дней, а не 90. Отсчет "треднов" идет от сегодня, а не от "когда кончается история".

        Comment

        • Serg85
          Junior Member
          • Aug 2014
          • 18

          #5
          Благодарю за поправку, вопрос открыт.

          Comment

          • aib
            Senior Member
            • Jan 2014
            • 1615

            #6
            В списке "Запросов на расширение функциональности Zabbix" ваш вопрос обсужден - Increase the housekeeper limit for deleting items (or make it a config variable)

            К сожалению, обсуждение закрыто.

            Но, как минимум, вы знаете теперь, какую строку можно подкорректировать вручную, чтобы заставить ваш собственный Housekeeper работать активнее.
            Sincerely yours,
            Aleksey

            Comment

            • Serg85
              Junior Member
              • Aug 2014
              • 18

              #7
              Так вот где собака зарыта! Спасибо, опробую, завтра отпишусь
              Еще открыт вопрос по запуску хаускипер вручную, как это сделать чтоб не ждать час?

              Comment

              • aib
                Senior Member
                • Jan 2014
                • 1615

                #8
                Каждый раз, как вы перестартовываете Zabbix Server, он запускает Housekeeper.
                Я понимаю, что это жестоко - но работает.
                Sincerely yours,
                Aleksey

                Comment

                • Serg85
                  Junior Member
                  • Aug 2014
                  • 18

                  #9
                  СПАСИБО АЛЕКСЕЙ(aib), ПОЛУЧИЛОСЬ!

                  Напишу для потомков
                  Скачиваем сурсы zabbix, там ищем: src/zabbix_server/housekeeper/housekeeper.c
                  Открываем редактором, ищем строки:

                  В версии 2.2.5(делал именно на ней)
                  /* the maximum number of housekeeping periods to be removed per single housekeeping cycle */
                  #define HK_MAX_DELETE_PERIODS 4

                  В версии ранее может быть так:
                  min_clock = MIN(now - keep_history * SEC_PER_DAY, min_clock + 4 * CONFIG_HOUSEKEEPING_FREQUENCY * SEC_PER_HOUR);

                  В любом случае меняем 4 на нужное нам в большую сторону (как понял, измерение ведется в часах удаления)

                  Далее сохраняем и компилируем. Можно просто заменить бинарник и не пользовать make install

                  Бинарник у меня на Debian7 лежит тут /usr/local/sbin название файла zabbix_server

                  Останавливаем сервер, заменяем бинарник, запускаем срвер zabbix - радуемся
                  Last edited by Serg85; 26-08-2014, 01:16.

                  Comment

                  • aib
                    Senior Member
                    • Jan 2014
                    • 1615

                    #10
                    Спасибо за рассказ!
                    Рад, что у вас получилось.
                    Может, продолжите изыскания и найдете, как конфигурировать интервал Housekeeping'a меньший, чем 1 час? В минутах, например...
                    Sincerely yours,
                    Aleksey

                    Comment

                    • ableev
                      Senior Member
                      Zabbix Certified Specialist
                      • Oct 2012
                      • 276

                      #11
                      Originally posted by aib
                      Спасибо за рассказ!
                      Рад, что у вас получилось.
                      Может, продолжите изыскания и найдете, как конфигурировать интервал Housekeeping'a меньший, чем 1 час? В минутах, например...
                      Serg85 надоумил сделать возможность запуска хаускипера "когда угодно".
                      Протестировал, работает. Патчик даже сбацал.
                      Просьба на код внимания не обращать сильно (хоть он и не идеален, но понятен и не тяжелый, вроде).

                      Comment

                      • aib
                        Senior Member
                        • Jan 2014
                        • 1615

                        #12
                        Просто супер (утащил в копилку)
                        Sincerely yours,
                        Aleksey

                        Comment

                        • grenom
                          Junior Member
                          • Apr 2016
                          • 4

                          #13
                          Была такая же проблема. Айтемы хранились 120 дней, но в один прекрасный момент база разрослась. Было принято решение уменьшить хранение айтемов до 14 дней, а тренды наоборот увеличить. НО, housekeeper очень ленив, и очистка бы заняла месяцы. Поэтому был написан скриптик с ручной очисткой.
                          deletes the old data from MySQL zabbix database. Contribute to grenom/zabbix-cleanup-histoty development by creating an account on GitHub.

                          Сам искал что то подобное, но не нашел Может кому то пригодиться

                          Comment

                          • igoreha311
                            Member
                            • Sep 2011
                            • 99

                            #14
                            Периодически падает zabbix при выполнении housekeeper.

                            Debian 8
                            Zabbix-server: 3.0.1
                            MYSQL: 14.14 Distrib 5.5.47

                            Запускаю раз в сутки ночью housekeeper по крону (в час ночи).
                            Наблюдаю 2 или 3 раз, что заваливается сервер zabbix.
                            Никакой пока зависимости не нашел - может произойти раз в месяц, может раз в 2 недели. Проблема появляется после работы housekeeper.
                            В логах zabbix-server и mysql ничего подозрительного не увидел.

                            Может у кого-то подобная проблема имеет место быть?

                            Comment

                            Working...