Ad Widget

Collapse

Внезапно кончилось место Zabbix 3.0 + psql 9.1

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pdaXimik
    Junior Member
    • May 2015
    • 10

    #1

    Внезапно кончилось место Zabbix 3.0 + psql 9.1

    Совсем внезапно кончилось место на диске. Вебморда сообщает об ошибке, postgresql не запускается ссылаясь на отсутствие места.
    Под базу отведено ~52гб. 51гб занимает директория с номером базы (содержимое на скриншоте).
    Мониторится 200 хостов, на которых около 1200 элементов. 90 дней хистори, год динамики, опрос 30-60с. До недавнего времени (версия 2.0.2) места было достаточно. 3-4 месяца назад обновился на 3.0. Как полагаю - причина именно в этом. Потому как рядом трудится другой сервер (2.2.0) с теми же хостами и на нем всего занято 24гб.
    Вопроса 2:
    - что такого случилось в 3-м заббиксе
    - как выйти героем из этой истории

    Увеличить место возможности нет - сервак старый, диски сказёвые. Бекап есть до обновления и после, но хотелось обойтись малой кровью и не потерять историю за последние 3 месяца.
    pixs.ru/showimage/Basefilesj_2876630_24561667.jpg
  • DmitryL
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2016
    • 278

    #2
    Доброе утро.
    Я правильно понял, что на всех хостах вместе взятых получается 1200 ключей?
    А каким образом удаляете старую историю?

    Comment

    • pdaXimik
      Junior Member
      • May 2015
      • 10

      #3
      Небольшая проблема со временем превращается в катастрофу)

      Originally posted by Dmitryb
      Доброе утро.
      Я правильно понял, что на всех хостах вместе взятых получается 1200 ключей?
      А каким образом удаляете старую историю?
      Доброе! Да, все верно, на разных хостах разное количество итемов, но в сумме немногим более 1200.
      Очисткой занимается хаускипер.
      В таком режиме сервер проработал более 3-х лет. Проблем не наблюдалось.

      Причина разрастания базы - отключенный хаускипер. Который, как я понимаю, отключился после обновления с 2.0.2 до 3.0.

      Удалил руками файл размером 1гб из директории базы psql, к которому было последнее обращение пол года назад. Запустил postgre, посмотрел таблицы:
      history_uint и history_uint_1 больше 3000000 страниц каждая (uint_1 так и чесались руки грохнуть).
      Запустил вакум с анализом. Отработал около часа - места не прибавилось.
      Запустил заббикс-сервер - все работает, данные пишутся. Для хаускипера в конфиге заббикса указал:
      HousekeepingFrequency=24
      MaxHousekeeperDelete=100000

      Оставил сервер в покое на пару дней, дальше будем посмотреть.

      Comment

      • DmitryL
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • May 2016
        • 278

        #4
        Ну тогда всё ясно.
        Вся проблема именно в том что хаускипер был отключен.
        Напомню что хаускипер выполняет просой delete в базе и тем самом если после перерыва вы его включили и он почистил таблицы.
        Свободного место от этого больше не станет. просто в файлах теперь есть пустые места куда писать новые данные.
        Решение - сделать бекап - дропнуть базу - восстановить бекап.

        Comment

        • pdaXimik
          Junior Member
          • May 2015
          • 10

          #5
          Originally posted by Dmitryb
          Решение - сделать бекап - дропнуть базу - восстановить бекап.
          Только после праздников)

          Осталось 2 вопроса:
          Почему отключился хаускипер (как я полагаю - после обновления)?
          Можно ли без ущерба базе грохнуть таблицу history_uint_1?

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3406

            #6
            Originally posted by pdaXimik
            Почему отключился хаускипер (как я полагаю - после обновления)?
            Его настройки есть в двух местах:
            1) конфиг-файл сервера (кстати, что у Вас там?);
            2) начиная с третьей версии, часть настроек делается через веб-интерфейс (Administration -> General -> Housekeeping). Там можно более гранулированно задать, что именно хаускиперу затирать. Вполне возможно, что после обновления на третью версию Вы туда не заглядывали, и остались настройки по умолчанию (ничего не трогать).

            Comment

            • pdaXimik
              Junior Member
              • May 2015
              • 10

              #7
              Originally posted by kos
              Вполне возможно, что после обновления на третью версию Вы туда не заглядывали, и остались настройки по умолчанию (ничего не трогать).
              Конечно не заглядывал. До обновления он был включен. Конфиг также не трогал. Обновление происходило методом "апдейт/апгрейд", вручную ничего не менял.

              Можно заподозрить диверсию (пароли есть еще у 2 людей), но это уже охота на ведьм))

              После праздников сделаю слепок сервера и дропну базу.

              Товарищи, будьте бдительны и устанавливайте триггер на заполнение дисков.

              Comment

              • pdaXimik
                Junior Member
                • May 2015
                • 10

                #8
                Кончились праздники, пора работать!

                Краткая предыстория:
                все место на диске под psql съели 2 таблицы - history_uint и history_uint_1 из базы заббикса.

                При более внимательном рассмотрении выяснилось, что history_uint_1 является индексом двух колонок таблицы history_uint. При этом сам индекс занимает места больше чем вся таблица - 30 и 20 гб. примерно. Опираясь на полный бекап сервера, пошел на крайние меры. Из таблицы потер все записи старее 90 дней. Грохнул весь индекс и создал его снова. В результате имеем 50% свободного места. По-хорошему, нужно и базу целиком дропнуть, но у меня не нашлось чистого харда под дамп... да и поздно уже))

                Comment

                Working...