Ad Widget

Collapse

Партиционирование и выбор BD для Zabbix 3.4

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • WALRUS
    Member
    • Apr 2014
    • 45

    #1

    Партиционирование и выбор BD для Zabbix 3.4

    Привет всем. Нуждаюсь в совете.

    В данный момент пользуюсь заббиксом 3.2 система разрослась, и начала дико тормозить.

    По этому решено настроить все с нуля на версии 3.4
    Перед установкой хочется сделать все грамматно с БД что бы потом уже не возвращаться к этому вопросу.

    Хочу настроить партиционирование, вопрос на какой бд лучше это сделать?

    mysql+innodb либо postgresSQL ??

    Внутреннее чутье подсказывает что лучше взять постгресс. Буду очень благодарен если скинете ссылку на мануал по партиционированию бд под заббикс 3.4
  • astrix89
    Senior Member
    • Jun 2017
    • 149

    #2
    Использую mariadb+tokudb+innodb.
    Количество узлов сети (активированных/деактивированных/шаблонов) 14909 14774 / 0 / 135
    Количество элементов данных (активированных/деактивированных/неподдерживаемых) 2848128 2847997 / 0 / 131
    Количество триггеров (активированных/деактивированных [проблема/ок]) 997888 997888 / 0 [1658 / 996230]
    Требуемое быстродействие сервера, новые значения в секунду 10885.8

    Тренды не отключал, данные пишутся сначала в разделе в оперативной памяти, далее партиции перекидываем на жесткие диски, SSD не используется. Данный подход позволил снять практически всю нагрузгу с дисков(по сути осталось только чтение данных о графиках), и раз в некоторое время блокировка таблиц для переноса(процесс занимает не более 30 секунд).

    Comment


    • ikaramzin
      ikaramzin commented
      Editing a comment
      очень заинтересовала ваша модель с использованием оперативной памяти, прошу подробнее описать инструменты либо ссылки с манулами. Или же это недостижимый уровень доступный лишь DBA?
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #3
    Originally posted by walrus
    Хочу настроить партиционирование, вопрос на какой бд лучше это сделать?
    На той, которую лучше знаете.

    Comment

    • WALRUS
      Member
      • Apr 2014
      • 45

      #4
      Originally posted by yukra
      На той, которую лучше знаете.
      Ни какую не знаю толком. так что без разницы. все равно что то нужно будет искать мануалы и информацию в интернете.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #5
        Originally posted by WALRUS
        Ни какую не знаю толком. так что без разницы. все равно что то нужно будет искать мануалы и информацию в интернете.
        Тогда ту, которую лучше знает ваш знакомый dba

        Comment

        • WALRUS
          Member
          • Apr 2014
          • 45

          #6
          Originally posted by yukra
          Тогда ту, которую лучше знает ваш знакомый dba
          Нету у нас в компании dba. своими силами все... так что за подробные инструкции будут весьма признателен. Установка с нуля, так что по сути должно быть какое то тривиальное решение.

          Comment

          • astrix89
            Senior Member
            • Jun 2017
            • 149

            #7
            Originally posted by walrus
            Нету у нас в компании dba. своими силами все... так что за подробные инструкции будут весьма признателен. Установка с нуля, так что по сути должно быть какое то тривиальное решение.
            Текущая нагрузка какая?

            Comment

            • WALRUS
              Member
              • Apr 2014
              • 45

              #8
              Originally posted by astrix89
              Текущая нагрузка какая?

              Comment

              • astrix89
                Senior Member
                • Jun 2017
                • 149

                #9
                Originally posted by walrus
                Судя по нагрузке, она мягко говоря не велика. В какой момент возникают тормоза? Просмотр графиков? Увеличение очереди? Затыки в построении трендов? Housekeeper? Размер базы на данный момент какой?
                И какая база на данный момент используется?
                Last edited by astrix89; 31-01-2018, 15:13.

                Comment

                • karik-himik
                  Senior Member
                  • Oct 2015
                  • 116

                  #10
                  Если вам всё равно без разницы, какую СУБД использовать, то можно попробовать сделать партиционирование как описано в этой книге, для : http://scanlibs.com/zabbix-prakticheskoe-rukovodstvo/

                  В самой книге описан процесс установки в связке с postgres и есть ссылка на гитхаб с готовыми sql-скриптами для партиционирования.
                  У меня на тестовом заббиксе этот вариант отлично работает уже больше полугода.

                  Postgresql 10 умеет партиционирование из коробки: https://postgrespro.ru/docs/postgres...titioning.html

                  Есть еще один, судя по описанию, отличный вариант - расширение pg_pathman: https://postgrespro.ru/docs/postgres...g-pathman.html

                  Сам не пробовал, но если верить интернетам c ютубами, то стоит попробовать pg_pathman

                  Comment

                  • WALRUS
                    Member
                    • Apr 2014
                    • 45

                    #11
                    Originally posted by astrix89
                    Судя по нагрузке, она мягко говоря не велика. В какой момент возникают тормоза? Просмотр графиков? Увеличение очереди? Затыки в построении трендов? Housekeeper? Размер базы на данный момент какой?
                    И какая база на данный момент используется?
                    То что он показывает сейчас 266 требуемое быстродействие он врет. там иногда и до 1000 подскакивает.
                    Тормозит при формирование отчетов, при загрузке узлов сети, при рисовании графиков да и просто обновляешь страницу и дэшборд может висеть по 5 минут...
                    база весит 112gb
                    хаускипер включен. немного даже поднастраивал.

                    Comment

                    • astrix89
                      Senior Member
                      • Jun 2017
                      • 149

                      #12
                      Originally posted by walrus
                      То что он показывает сейчас 266 требуемое быстродействие он врет. там иногда и до 1000 подскакивает.
                      Тормозит при формирование отчетов, при загрузке узлов сети, при рисовании графиков да и просто обновляешь страницу и дэшборд может висеть по 5 минут...
                      база весит 112gb
                      хаускипер включен. немного даже поднастраивал.
                      Я так подозреваю что вы упираетесь в дисковую подсистему в таком случае. Смена базы/инсталл по новой решит вашу проблему на какое-то время.
                      А причина в следующем: заббикс постоянно записывает получаемые метрики, соответственно идут постоянные обращения к дисковой подсистеме. Если база висит на жестких дисках(именно hdd, не ssd), вы сталкнетесь с физическими ограничениями на операции чтения/записи. Попытка одновременно прочитать и записать данные будет вызывать дикие лаги. И чем больше база, тем сильнее будут тормоза в дальнейшем, данные могут начать фрагментироваться, это еще больше усугубит ситуацию.
                      Вывод отсюда следующий: вне зависимости от базы, без понимания происходящих внутри заббикса процессов, будет такая проблема.

                      Comment

                      • WALRUS
                        Member
                        • Apr 2014
                        • 45

                        #13
                        Originally posted by astrix89
                        Я так подозреваю что вы упираетесь в дисковую подсистему в таком случае. Смена базы/инсталл по новой решит вашу проблему на какое-то время.
                        А причина в следующем: заббикс постоянно записывает получаемые метрики, соответственно идут постоянные обращения к дисковой подсистеме. Если база висит на жестких дисках(именно hdd, не ssd), вы сталкнетесь с физическими ограничениями на операции чтения/записи. Попытка одновременно прочитать и записать данные будет вызывать дикие лаги. И чем больше база, тем сильнее будут тормоза в дальнейшем, данные могут начать фрагментироваться, это еще больше усугубит ситуацию.
                        Вывод отсюда следующий: вне зависимости от базы, без понимания происходящих внутри заббикса процессов, будет такая проблема.
                        Меня интересуют запросы за не большой промежуток времени, например сформировать отчет за прошлую неделю. как я понимаю сейчас он что бы обратиться к такой информации перелопачивает всю таблицу, при партиционировании он будет брать только часть таблицы и это позволит ускорить процесс формирования отчетов. подвисания дэшборда я так понимаю связано с тем же самым, тупо происходит чтение из всей базы...

                        Comment

                        • astrix89
                          Senior Member
                          • Jun 2017
                          • 149

                          #14
                          Originally posted by WALRUS
                          Меня интересуют запросы за не большой промежуток времени, например сформировать отчет за прошлую неделю. как я понимаю сейчас он что бы обратиться к такой информации перелопачивает всю таблицу, при партиционировании он будет брать только часть таблицы и это позволит ускорить процесс формирования отчетов. подвисания дэшборда я так понимаю связано с тем же самым, тупо происходит чтение из всей базы...
                          Вот вам запрос "Отчет о доступности"(режим по узлу сети) за январь(база mariadb/mysql)
                          Sending data SELECT g.groupid,g.name FROM groups g WHERE EXISTS (SELECT NULL FROM hosts h,items i,functions f,triggers t,hosts_groups hg WHERE hg.hostid=h.hostid AND h.status='0' AND hg.hostid=i.hostid AND i.itemid=f.itemid AND f.triggerid=t.triggerid AND t.flags IN ('0','4') AND g.groupid=hg.groupid) (выполняется 2-3 минуты)
                          В нем нет ни каких запросов к таблицам history, history_uint, history_log, history_str, history_text, trends, trends_uint(собственно для этих таблиц и делаются партиционирование). Соответственно вам это не поможет.
                          Если у вас используется mysql, в обязательном порядке необходимо делать innodb_file_per_table. Вполне вероятно что это может решить вашу проблему.

                          Comment

                          • WALRUS
                            Member
                            • Apr 2014
                            • 45

                            #15
                            Originally posted by astrix89
                            Вот вам запрос "Отчет о доступности"(режим по узлу сети) за январь(база mariadb/mysql)
                            sending data select g.groupid,g.name from groups g where exists (select null from hosts h,items i,functions f,triggers t,hosts_groups hg where hg.hostid=h.hostid and h.status='0' and hg.hostid=i.hostid and i.itemid=f.itemid and f.triggerid=t.triggerid and t.flags in ('0','4') and g.groupid=hg.groupid) (выполняется 2-3 минуты)
                            В нем нет ни каких запросов к таблицам history, history_uint, history_log, history_str, history_text, trends, trends_uint(собственно для этих таблиц и делаются партиционирование). Соответственно вам это не поможет.
                            Если у вас используется mysql, в обязательном порядке необходимо делать innodb_file_per_table. Вполне вероятно что это может решить вашу проблему.
                            Новой инсталляции в любом случае быть! Если использовать постгресс я столкнусь с теми же проблемами или их будет меньше? Но партиционирование в любом случае хочу настроить. пусть будет. есть какой то более менее нормальный манул по установке и настройке bd с партиционированием под заббикс 3.4 ?

                            Comment

                            Working...