Ad Widget

Collapse

Почистить базу от узлов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • DeeZ
    Member
    • Aug 2015
    • 82

    #1

    Почистить базу от узлов

    Пока изучал Заббикс насоздовал тригеров и узлов, насобиалось куча инфо от узлов, с портов и состояний. База разрослась на 50Гб за неделю.
    Теперь когда боле менее разобрался - хочу удалить все, оставив только то что сделал я. Какие базы дропнуть что бы избавиться от хостов, и их истории, тригеров и трендов? я так понимаю что во всех базах изначально есть какие то записи. их можно импортировать из исходников. но как сохранить все мои шаблоны, графики и комплексные экраны с экшенами, трегеры, обнаружения?
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by DeeZ
    Пока изучал Заббикс насоздовал тригеров и узлов, насобиалось куча инфо от узлов, с портов и состояний. База разрослась на 50Гб за неделю.
    Теперь когда боле менее разобрался - хочу удалить все, оставив только то что сделал я. Какие базы дропнуть что бы избавиться от хостов, и их истории, тригеров и трендов? я так понимаю что во всех базах изначально есть какие то записи. их можно импортировать из исходников. но как сохранить все мои шаблоны, графики и комплексные экраны с экшенами, трегеры, обнаружения?
    Удалите все ненужное из интерфейса (лишние хосты и тп.), остановите zabbix-server, сделайте OPTIMIZE https://dev.mysql.com/doc/refman/5.1...ize-table.html на все таблицы. В крайнем случайте сделайте импорт\экспорт.

    Comment

    • DeeZ
      Member
      • Aug 2015
      • 82

      #3
      Originally posted by yukra
      Удалите все ненужное из интерфейса (лишние хосты и тп.), остановите zabbix-server, сделайте optimize https://dev.mysql.com/doc/refman/5.1...ize-table.html на все таблицы. В крайнем случайте сделайте импорт\экспорт.
      импорт\экспорт возможен не всех элементов. например экшены не забэкапить.
      Вторая рпобелма в том что у меня нет рабочего сервера. лежит дамб со старого, от куда я хочу выдернуть только нужные таблицы что бы эмпортировать только натсройки без узлов и трегеров.

      Comment

      • Zentarim
        Senior Member
        • Mar 2012
        • 526

        #4
        Originally posted by DeeZ
        ... хочу удалить все, оставив только то что сделал я. Какие базы дропнуть что бы избавиться от хостов, и их истории, тригеров и трендов?...
        Вообще-то это через веб-интерфейс делается.

        Потом делайте optimize table на всех history таблицах.

        Вторая рпобелма в том что у меня нет рабочего сервера. лежит дамб со старого, от куда я хочу выдернуть только нужные таблицы что бы эмпортировать только натсройки без узлов и трегеров.
        Не вижу проблемы. Развернуть дамп и удалить хосты руками с последующим optimize table. Это будет куда безопаснее, нежели вы будете пытаться разобраться, какие таблицы и какое их содержимое (а вам явно надо брать только часть таблицы хостов) загружать в новую базу.

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          Таблицы с данными, а так же эвенты и прочие товарищи имеют связность только на уровне приложения: удаление элементов данных (items) не приведет к чистке history*/trends*. Для чистки есть специальный процесс zabbix - housekeeper, вам надо его настроить, а так же обратить внимание что он удаляет не бесконечное кол-во строк за один проход, а следовательно после его настройки надо несколько раз перезапустить zabbix, в зависимости от того сколько там насоздавалось, смотрите логи.

          P.S. если надо просто "все почистить нафик", то можно просто транкейтить таблицы данными: history*, trends*, events* и еще там есть всякие аудитлоги и что то связанное с дискавери. Но основной объем это данные (history/trends).

          Comment

          • Zentarim
            Senior Member
            • Mar 2012
            • 526

            #6
            Originally posted by Jimson
            удаление элементов данных (items) не приведет к чистке history*/trends*.
            Там можно почистить историю и динамику изменений для каждого элемента данных.
            Но вообще да, ошибся. Мне казалось, что там была кнопка удаления хоста вместе с данными.

            По мне так проще сделать так:
            1) Развернуть бэкап.
            2) удалить ненужные хосты вручную через веб-морду
            3) Если важна история, то подождать, пока housekeeper вычистит удаленные элементы данных(долго). Если не важна - то да, truncate history таблиц.
            4) optimize history таблиц.

            Comment

            • DeeZ
              Member
              • Aug 2015
              • 82

              #7
              Originally posted by zentarim
              По мне так проще сделать так:
              1) Развернуть бэкап.
              на этом пункет можно собрать вещи и отправиться в отпуск ))) тк делает он это по три-четыре дня.
              быстрее пересоздать правила и шаблоны (чем я уже и занялся).
              Хотел отделаться малой кровью

              спасибо.

              Comment

              • Jimson
                Senior Member
                • Jan 2008
                • 1327

                #8
                Можно было и не целиком дампить, исключить history таблицы, как уже было сказано не один раз.

                Comment

                • Zentarim
                  Senior Member
                  • Mar 2012
                  • 526

                  #9
                  Originally posted by DeeZ
                  на этом пункет можно собрать вещи и отправиться в отпуск ))) тк делает он это по три-четыре дня.
                  быстрее пересоздать правила и шаблоны (чем я уже и занялся).
                  Хотел отделаться малой кровью

                  спасибо.

                  Code:
                  #!/bin/sh
                  MYSQL_USER='YYYYYYYYYYYY
                  MYSQL_PASS='XXXXXXXXXXX'
                  MYSQL_DB='zabbix_server'
                  BACKUPDIR='/var/zabbix_backup'
                  DAYS_STORE='180'
                  DATE=`date +%d-%m-%Y`
                  
                  echo `date +"%T %d-%m-%Y"` "     Backup schema ... "
                  /usr/local/bin/mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} --no-data  > ${BACKUPDIR}/${DATE}_schema.sql
                  echo `date +"%T %d-%m-%Y"` "     Done. "
                  
                  echo `date +"%T %d-%m-%Y"` "     Backup data ... "
                  /usr/local/bin/mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} --no-create-info --ignore-table=${MYSQL_DB}.history --ignore-table=${MYSQL_DB}.history_log --ignore-table=${MYSQL_DB}.history_str --ignore-table=${MYSQL_DB}.history_text --ignore-table=${MYSQL_DB}.history_uint --ignore-table=${MYSQL_DB}.trends --ignore-table=${MYSQL_DB}.trends_uint > ${BACKUPDIR}/${DATE}_data.sql
                  echo `date +"%T %d-%m-%Y"` "     Done. "
                  Бэкап базы без данных истории.

                  Comment

                  • DeeZ
                    Member
                    • Aug 2015
                    • 82

                    #10
                    Originally posted by Zentarim
                    Бэкап базы без данных истории.
                    Спасибо. Добавил еще эвенты и процедуры в ваш скрипт:

                    Code:
                    #!/bin/sh
                    MYSQL_USER='YYYYYYYYYYYY
                    MYSQL_PASS='XXXXXXXXXXX'
                    MYSQL_DB='zabbix_server'
                    BACKUPDIR='/var/zabbix_backup'
                    DATE=`date +%d-%m-%Y`
                    
                    echo `date +"%T %d-%m-%Y"` "     Backup schema ... "
                    mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} --no-data  > ${BACKUPDIR}/${DATE}_schema.sql
                    echo `date +"%T %d-%m-%Y"` "     Done. "
                    
                    echo `date +"%T %d-%m-%Y"` "     Backup data ... "
                    mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} --no-create-info --ignore-table=${MYSQL_DB}.history --ignore-table=${MYSQL_DB}.history_log --ignore-table=${MYSQL_DB}.history_str --ignore-table=${MYSQL_DB}.history_text --ignore-table=${MYSQL_DB}.history_uint --ignore-table=${MYSQL_DB}.trends --ignore-table=${MYSQL_DB}.trends_uint > ${BACKUPDIR}/${DATE}_data.sql
                    echo `date +"%T %d-%m-%Y"` "     Done. "
                    
                    echo `date +"%T %d-%m-%Y"` "     Backup events and procedures ... "
                    mysqldump -u${MYSQL_USER} -p${MYSQL_PASS}  --routines --events --no-create-info --no-data --no-create-db --skip-opt ${MYSQL_DB} --no-data  > ${BACKUPDIR}/${DATE}_events.sql
                    echo `date +"%T %d-%m-%Y"` "     Done. "

                    Comment

                    Working...