Ad Widget

Collapse

С полуночи перестали собираться данные

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Gentledevil
    Junior Member
    • Sep 2016
    • 4

    #1

    С полуночи перестали собираться данные

    Добрый день.
    Версия заббикса 3.2.
    Сегодня 28.09.2016 с полуночи ни с того ни с сего перестали собираться данные.

    Причем заббикс продолжает опрашивать хосты, триггеры тоже вроде срабатывают.
    Но значение "последние данные" зафиксировано на дате 27.09.2016 23:59 .

    Можете подсказать куда смотреть и что курить?
  • Futureservice
    Junior Member
    • May 2016
    • 2

    #2
    С полуночи перестали собираться данные

    Пробовали перезапускать zabbix_server?

    Вообще стоит глянуть логи, по умолчанию логи пишутся в директорию /tmp

    Comment

    • Gentledevil
      Junior Member
      • Sep 2016
      • 4

      #3
      Originally posted by Futureservice
      Пробовали перезапускать zabbix_server?

      Вообще стоит глянуть логи, по умолчанию логи пишутся в директорию /tmp
      Да перезапускать пробовал, не помогло.
      В логах ругается что в таблице нет партиции для временной метки:

      [Z3005] query failed: [1526] Table has no partition for value 1475049758 [insert into history (itemid,clock,ns,value) values (57098,1475049758,633428852,0.058319);

      подскажите что должно создавать эти партиции по умолчанию и как это поправить?

      Table: history
      Create Table: CREATE TABLE `history` (
      `itemid` bigint(20) unsigned NOT NULL,
      `clock` int(11) NOT NULL DEFAULT '0',
      `value` double(16,4) NOT NULL DEFAULT '0.0000',
      `ns` int(11) NOT NULL DEFAULT '0',
      KEY `history_1` (`itemid`,`clock`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
      /*!50100 PARTITION BY RANGE (`clock`)
      (PARTITION p201608170000 VALUES LESS THAN (1471467600) ENGINE = InnoDB,
      PARTITION p201608180000 VALUES LESS THAN (1471554000) ENGINE = InnoDB,
      PARTITION p201608190000 VALUES LESS THAN (1471640400) ENGINE = InnoDB,
      PARTITION p201608200000 VALUES LESS THAN (1471726800) ENGINE = InnoDB,
      PARTITION p201608210000 VALUES LESS THAN (1471813200) ENGINE = InnoDB,
      PARTITION p201608220000 VALUES LESS THAN (1471899600) ENGINE = InnoDB,
      PARTITION p201608230000 VALUES LESS THAN (1471986000) ENGINE = InnoDB,
      PARTITION p201608240000 VALUES LESS THAN (1472072400) ENGINE = InnoDB,
      PARTITION p201608250000 VALUES LESS THAN (1472158800) ENGINE = InnoDB,
      PARTITION p201608260000 VALUES LESS THAN (1472245200) ENGINE = InnoDB,
      PARTITION p201608270000 VALUES LESS THAN (1472331600) ENGINE = InnoDB,
      PARTITION p201608280000 VALUES LESS THAN (1472418000) ENGINE = InnoDB,
      PARTITION p201608290000 VALUES LESS THAN (1472504400) ENGINE = InnoDB,
      PARTITION p201608300000 VALUES LESS THAN (1472590800) ENGINE = InnoDB,
      PARTITION p201608310000 VALUES LESS THAN (1472677200) ENGINE = InnoDB,
      PARTITION p201609010000 VALUES LESS THAN (1472763600) ENGINE = InnoDB,
      PARTITION p201609020000 VALUES LESS THAN (1472850000) ENGINE = InnoDB,
      PARTITION p201609030000 VALUES LESS THAN (1472936400) ENGINE = InnoDB,
      PARTITION p201609040000 VALUES LESS THAN (1473022800) ENGINE = InnoDB,
      PARTITION p201609050000 VALUES LESS THAN (1473109200) ENGINE = InnoDB,
      PARTITION p201609060000 VALUES LESS THAN (1473195600) ENGINE = InnoDB,
      PARTITION p201609070000 VALUES LESS THAN (1473282000) ENGINE = InnoDB,
      PARTITION p201609080000 VALUES LESS THAN (1473368400) ENGINE = InnoDB,
      PARTITION p201609090000 VALUES LESS THAN (1473454800) ENGINE = InnoDB,
      PARTITION p201609100000 VALUES LESS THAN (1473541200) ENGINE = InnoDB,
      PARTITION p201609110000 VALUES LESS THAN (1473627600) ENGINE = InnoDB,
      PARTITION p201609120000 VALUES LESS THAN (1473714000) ENGINE = InnoDB,
      PARTITION p201609130000 VALUES LESS THAN (1473800400) ENGINE = InnoDB,
      PARTITION p201609140000 VALUES LESS THAN (1473886800) ENGINE = InnoDB,
      PARTITION p201609150000 VALUES LESS THAN (1473973200) ENGINE = InnoDB,
      PARTITION p201609160000 VALUES LESS THAN (1474059600) ENGINE = InnoDB,
      PARTITION p201609170000 VALUES LESS THAN (1474146000) ENGINE = InnoDB,
      PARTITION p201609180000 VALUES LESS THAN (1474232400) ENGINE = InnoDB,
      PARTITION p201609190000 VALUES LESS THAN (1474318800) ENGINE = InnoDB,
      PARTITION p201609200000 VALUES LESS THAN (1474405200) ENGINE = InnoDB,
      PARTITION p201609210000 VALUES LESS THAN (1474491600) ENGINE = InnoDB,
      PARTITION p201609220000 VALUES LESS THAN (1474578000) ENGINE = InnoDB,
      PARTITION p201609230000 VALUES LESS THAN (1474664400) ENGINE = InnoDB,
      PARTITION p201609240000 VALUES LESS THAN (1474750800) ENGINE = InnoDB,
      PARTITION p201609250000 VALUES LESS THAN (1474837200) ENGINE = InnoDB,
      PARTITION p201609260000 VALUES LESS THAN (1474923600) ENGINE = InnoDB,
      PARTITION p201609270000 VALUES LESS THAN (1475010000) ENGINE = InnoDB) */

      как раз для сегодняшнего числа PARTITION отсутствует.
      Но ежедневно вручную ее создавать не хотелось бы. Уточните что и как ее должно создавать.
      Last edited by Gentledevil; 28-09-2016, 10:36.

      Comment

      • Dorlas
        Member
        • May 2016
        • 31

        #4
        Originally posted by gentledevil
        как раз для сегодняшнего числа partition отсутствует.
        Но ежедневно вручную ее создавать не хотелось бы. Уточните что и как ее должно создавать.
        В этом и есть проблема!
        Нужно либо в базе процедуры писать, либо скрипт, который будет подключаться из вне и добавлять партиции...
        Я выбрал второй вариант, пишется скрипт за 5-10 минут (у меня в скрипте меньше 20 строк), скрипт проверяет кол-во партиций, если больше определённого кол-ва, то он удаляет последнюю, так же потом проверяет, а не создана ли следующая партиция, чтоб случайно не перетереть её, после только данной проверки он её создаст...
        Преимуществом скрипта я считаю, что если вруд нужно увеличить/уменьшить кол-во партиций, не нужно лезть в БД, а всеголишь нужно поправить 1 цифру в скрипте...

        Comment

        • Gentledevil
          Junior Member
          • Sep 2016
          • 4

          #5
          Originally posted by dorlas
          В этом и есть проблема!
          Нужно либо в базе процедуры писать, либо скрипт, который будет подключаться из вне и добавлять партиции...
          Я выбрал второй вариант, пишется скрипт за 5-10 минут (у меня в скрипте меньше 20 строк), скрипт проверяет кол-во партиций, если больше определённого кол-ва, то он удаляет последнюю, так же потом проверяет, а не создана ли следующая партиция, чтоб случайно не перетереть её, после только данной проверки он её создаст...
          Преимуществом скрипта я считаю, что если вруд нужно увеличить/уменьшить кол-во партиций, не нужно лезть в БД, а всеголишь нужно поправить 1 цифру в скрипте...
          Дело в том что до 28 числа эти партиции создавались сами, и не создались только 28 числа.
          То есть сегодня (29-ого) следующая партиция уже была создана.
          Поэтому мне интересно узнать, что за механизм их создает и как в случае его не отработки, запустить вручную, или при необходимости откорректировать.

          процедур в базе нет.

          Comment

          • Dorlas
            Member
            • May 2016
            • 31

            #6
            Originally posted by gentledevil
            Поэтому мне интересно узнать, что за механизм их создает и как в случае его не отработки, запустить вручную, или при необходимости откорректировать.
            А кто вам настраивал партиции? может у него спросить как реализовал?

            Comment

            • id2669099
              Member
              • Mar 2016
              • 68

              #7
              партиции создаются если включен планировщик и создано задание

              посмотреть на статус планировщика:
              Code:
              SHOW VARIABLES LIKE '%event%';
              посмотреть задания, где zabbix - это название базы:
              Code:
              SHOW EVENTS FROM `zabbix`\G;

              Comment

              • Gentledevil
                Junior Member
                • Sep 2016
                • 4

                #8
                Originally posted by dorlas
                А кто вам настраивал партиции? может у него спросить как реализовал?
                того человека уже не найти....


                Originally posted by id2669099
                партиции создаются если включен планировщик и создано задание

                посмотреть на статус планировщика:
                Code:
                show variables like '%event%';
                посмотреть задания, где zabbix - это название базы:
                Code:
                show events from `zabbix`\g;

                Планировщик включен но заданий в нем нет.

                Comment

                • yukra
                  Senior Member
                  • Apr 2013
                  • 1359

                  #9
                  Originally posted by gentledevil
                  того человека уже не найти....
                  а нефиг убивать единственного разбирающегося человека ...

                  Comment

                  • Ivan.D
                    Junior Member
                    • Oct 2013
                    • 28

                    #10
                    А попробуйте пересоздать БД.
                    Скрипты для создания можно взять из папки с исходниками zabbix.

                    Делается дамп бд.
                    Удаляется, создается бд.
                    Импортируется дамп в новую бд.

                    Comment

                    • sadman
                      Senior Member
                      • Dec 2010
                      • 1611

                      #11
                      Originally posted by yukra
                      а нефиг убивать единственного разбирающегося человека ...
                      ...не допросив его с пристрастием перед этим...

                      Comment

                      • yukra
                        Senior Member
                        • Apr 2013
                        • 1359

                        #12
                        Originally posted by ivan.d
                        А попробуйте пересоздать БД.
                        Скрипты для создания можно взять из папки с исходниками zabbix.

                        Делается дамп бд.
                        Удаляется, создается бд.
                        Импортируется дамп в новую бд.
                        ... и получаете отсутствие секционирования.

                        Comment

                        • id2669099
                          Member
                          • Mar 2016
                          • 68

                          #13
                          Originally posted by gentledevil
                          того человека уже не найти....





                          Планировщик включен но заданий в нем нет.
                          вероятно, надо добавить в задание процедуру создания партиций

                          Comment

                          • lentyai
                            Junior Member
                            Zabbix Certified Specialist
                            • Oct 2008
                            • 29

                            #14
                            покурите тут
                            Join the friendly and open Zabbix community on our forums and social media platforms.


                            должно помочь.
                            :-)

                            Если сами не разбираетесь, то нанимайте знающего человека, т.к. прикрутить чей-то скрипт для своих нужд не сможете.
                            А еще полезно создавать(пересоздавать) партицию по-умолчанию на максимально возможное время, чтобы данные не обрывались даже тогда, когда партиции новые перестали создаваться.

                            Comment

                            Working...