Ad Widget

Collapse

Распухание таблицы auditlog

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Oleg Zuev
    Junior Member
    • Feb 2022
    • 16

    #1

    Распухание таблицы auditlog

    Примерно недели две назад упал процесс сервера Zabbix из-за отвала подключения к БД.
    В логах выяснилось, что БД упала из-за недостатка места на диске.
    При анализе размера таблиц обнаружилось, что размер таблицы auditlog вырос очень значительно:
    Code:
     relation | size
    --------------------------+---------
    public.auditlog | 395 GB
    public.auditlog_pkey | 55 GB
    public.history_uint | 11 GB
    ...
    Code:
     SELECT COUNT(*) FROM auditlog
    count
    ------------
    1147125121
    При этом в таблицу с бешеной скоростью пишутся какие-то непонятные записи:
    Code:
     auditid | userid | username | clock | ip | action | resourcetype | resourceid | resource_cuid | resourcename | recordsetid | details
    ---------------------------+--------+----------+------------+----+--------+--------------+------------+---------------+--------------------------+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    cl3bfdc0ymta3efkxl4uqk7po | | System | 1652868737 | | 1 | 15 | 353364 | | Null0-Speed | cl3bfdcfrmtayefkx69xxg13u | {"item.tag[358000]":["update"],"item.tag[358000].value":["update","Interfaces Speed","Interfaces"],"item.tag[357999]":["update"],"item.tag[357999].value":["update","Interfaces","Interfaces Speed"]}
    cl3bfdc0ymta2efkx2sbin87f | | System | 1652868737 | | 1 | 15 | 353363 | | GigabitEthernet0/2-Speed | cl3bfdcfrmtayefkx69xxg13u | {"item.tag[357998]":["update"],"item.tag[357998].value":["update","Interfaces Speed","Interfaces"],"item.tag[357997]":["update"],"item.tag[357997].value":["update","Interfaces","Interfaces Speed"]}
    cl3bfdc0ymta1efkxiugc79nm | | System | 1652868737 | | 1 | 15 | 353362 | | GigabitEthernet0/1-Speed | cl3bfdcfrmtayefkx69xxg13u | {"item.tag[357995]":["update"],"item.tag[357995].value":["update","Interfaces Speed","Interfaces"],"item.tag[357996]":["update"],"item.tag[357996].value":["update","Interfaces","Interfaces Speed"]}
    cl3bfdc0ymta0efkxd1jwvwaz | | System | 1652868737 | | 1 | 15 | 353361 | | FastEthernet0/24-Speed | cl3bfdcfrmtayefkx69xxg13u | {"item.tag[357994]":["update"],"item.tag[357994].value":["update","Interfaces Speed","Interfaces"],"item.tag[357993]":["update"],"item.tag[357993].value":["update","Interfaces","Interfaces Speed"]}
    cl3bfdc0ymt9zefkxkzfxdo0e | | System | 1652868737 | | 1 | 15 | 353360 | | FastEthernet0/23-Speed | cl3bfdcfrmtayefkx69xxg13u | {"item.tag[357992]":["update"],"item.tag[357992].value":["update","Interfaces Speed","Interfaces"],"item.tag[357991]":["update"],"item.tag[357991].value":["update","Interfaces","Interfaces Speed"]}
    Никто не знает что это за записи и как сделать чтобы они не писались?
    Насколько я понял в эту таблицу должны писаться только события аудита сделанные в веб-интерфейсе?
    Запрет на "Enable audit logging" в веб-интерфейсе останавливает запись в эту таблицу.

    PS. Zabbix 6.0.4
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Могу ошибаться, но предполагаю, что это работают правила низкоуровневого обнаружения (LLD) сетевых интерфейсов, обновляющие теги. Возможно, что-то не то прописано в этих правилах.
    По идее, относительно наглядно посмотреть на аудитные записи можно через меню Reports -> Audit.
    Ну и, кроме запрета на запись аудитных логов, можно ограничить срок их хранения (оставить не год, а, скажем, неделю) - там же, в веб-интерфейсе: Administration -> General -> Audit log.

    Comment

    • wins
      Senior Member
      • Sep 2014
      • 307

      #3
      А вы мониторинг размера бд ведете? Может быть какой-нибудь шаблон не оптимально сделан

      Comment

      • Oleg Zuev
        Junior Member
        • Feb 2022
        • 16

        #4
        Originally posted by Kos
        Ну и, кроме запрета на запись аудитных логов, можно ограничить срок их хранения (оставить не год, а, скажем, неделю) - там же, в веб-интерфейсе: Administration -> General -> Audit log.
        Code:
          1818:20220518:202041.203 housekeeper [deleted 14624292 hist/trends, 0 items/triggers, 8576 events, 86 problems, 0 sessions, 0 alarms, 5487 audit, 0 records in
        На данный момент стоит срок хранения 7 дней.
        Housekeeper удалил 5487 записей из 1 миллиарда...

        Comment

        • Oleg Zuev
          Junior Member
          • Feb 2022
          • 16

          #5
          Originally posted by wins
          А вы мониторинг размера бд ведете? Может быть какой-нибудь шаблон не оптимально сделан
          Не веду, а шаблоны уже года 2 как не менялись. Раньше такой проблемы не было.
          Посмотрел по бэкапам - интенсивный рост размера пошел где-то в апреле. До этого более менее ровные по размеру бэкапы были.

          Comment

          • Tristis Oris
            Member
            • Sep 2015
            • 66

            #6
            такой же вопрос. раньше база жила в районе 10гб, потом пошла расти (с весны, да) по гигу+ в день. уже дошла до 40, таблица аудита весит 20.

            Comment

            • mariano.obarrio
              Junior Member
              • May 2022
              • 3

              #7
              Hi guys, I have the same problem with the audit log table, it grows too much and has many rows (179,593,158), the HK works for 2-3 hours and deletes 490 K each time... Is it not possible to truncate the audit log table?

              Comment

              • Oleg Zuev
                Junior Member
                • Feb 2022
                • 16

                #8
                Проблема с 2018 года походу...


                Housekeeper не удаляет старые записи или игнорирует настройки срока хранения указанные в Administration -> General -> Audit log
                Code:
                SELECT * FROM auditlog ORDER BY clock ASC LIMIT 5;
                Code:
                 auditid | userid | username | clock | ip | action | resourcetype | resourceid | resource_cuid | resourcename | recordsetid | details
                ---------------------------+--------+----------+------------+----+--------+--------------+------------+---------------+-----------------+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                cl1g3c3mk70m7cukxqrkzpfpw | | System | 1648797290 | | 1 | 15 | 331819 | | Fan Fan 4B Tach | cl1g3c3na70o3cukx4p1it680 | {"item.description":["update","Fan Sensor ID: Fan 4B Tach\r\nName: (29.4).Fan 4B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 5376.000000","Fan Sensor ID: Fan 4B Tach\r\nName: (29.4).Fan 4B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 5328.000000"]}
                cl1g3c3mk70m5cukx3rq2t85m | | System | 1648797290 | | 1 | 15 | 331817 | | Fan Fan 5B Tach | cl1g3c3na70o3cukx4p1it680 | {"item.description":["update","Fan Sensor ID: Fan 5B Tach\r\nName: (29.5).Fan 5B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 8544.000000","Fan Sensor ID: Fan 5B Tach\r\nName: (29.5).Fan 5B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 8448.000000"]}
                cl1g3c3mk70mbcukx746czt1d | | System | 1648797290 | | 1 | 15 | 331823 | | Fan Fan 2B Tach | cl1g3c3na70o3cukx4p1it680 | {"item.description":["update","Fan Sensor ID: Fan 2B Tach\r\nName: (29.2).Fan 2B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 4608.000000","Fan Sensor ID: Fan 2B Tach\r\nName: (29.2).Fan 2B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 4560.000000"]}
                cl1g3ijm36r0ecvkx8salv1sf | | System | 1648797591 | | 1 | 15 | 331826 | | Fan Fan 1A Tach | cl1g3ijmv6r23cvkxb49dm0mg | {"item.description":["update","Fan Sensor ID: Fan 1A Tach\r\nName: (29.1).Fan 1A Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 530.000000 , {#THRESH_LOW_CRIT}\r\nCur: 8321.000000","Fan Sensor ID: Fan 1A Tach\r\nName: (29.1).Fan 1A Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 530.000000 , {#THRESH_LOW_CRIT}\r\nCur: 7314.000000"]}
                cl1g3ijm36r07cvkx39i1l0ft | | System | 1648797591 | | 1 | 15 | 331819 | | Fan Fan 4B Tach | cl1g3ijmv6r23cvkxb49dm0mg | {"item.description":["update","Fan Sensor ID: Fan 4B Tach\r\nName: (29.4).Fan 4B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 6096.000000","Fan Sensor ID: Fan 4B Tach\r\nName: (29.4).Fan 4B Tach\r\nType: fan\r\nThresholds:\r\n High: {#THRESH_HIGH_WARN} , {#THRESH_HIGH_AVG} , {#THRESH_HIGH_CRIT}\r\n Low: {#THRESH_LOW_WARN} , 480.000000 , {#THRESH_LOW_CRIT}\r\nCur: 5376.000000"]}
                В поле clock стоит 1648797290, это 01.04.2022. В настройках аудита указано хранить записи за 7 дней.
                Процесс очистки чего-то там удаляет, но не понятно что именно
                Code:
                2931494:20220524:064410.316 housekeeper [deleted 31431817 hist/trends, 0 items/triggers, 14924 events, 34 problems, 0 sessions, 0 alarms, 2677 audit, 0 records in 38648.594415 sec, waiting for user command]
                Я уже сомневаюсь что "2677 audit" это относится к таблице auditlog...

                Comment

                • Tristis Oris
                  Member
                  • Sep 2015
                  • 66

                  #9
                  выставил неделю, отключил аудит. 3-4 прохода хаускипер молчал, потом начал что-то удалять до своих лимитов. MaxHousekeeperDelete=10000

                  Но размер базы пока не изменился, занятое место на диске растет дальше.

                  Comment

                  • AlexeyFS
                    Junior Member
                    • Jun 2022
                    • 3

                    #10
                    Добрый день, коллеги. Zabbix 6.0 MySQL Ubuntu удалил файл auditlog, теперь в web интерфейсе не могу ничего делать(добавлять пользователей, хосты, оповещения). Скажите пожалуйста, как исправить?

                    Comment


                    • vladimir_lv
                      vladimir_lv commented
                      Editing a comment
                      CREATE TABLE `auditlog` (
                      `auditid` varchar(25) COLLATE utf8mb4_bin NOT NULL,
                      `userid` bigint unsigned DEFAULT NULL,
                      `username` varchar(100) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
                      `clock` int NOT NULL DEFAULT '0',
                      `ip` varchar(39) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
                      `action` int NOT NULL DEFAULT '0',
                      `resourcetype` int NOT NULL DEFAULT '0',
                      `resourceid` bigint unsigned DEFAULT NULL,
                      `resource_cuid` varchar(25) COLLATE utf8mb4_bin DEFAULT NULL,
                      `resourcename` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
                      `recordsetid` varchar(25) COLLATE utf8mb4_bin NOT NULL,
                      `details` longtext COLLATE utf8mb4_bin NOT NULL,
                      PRIMARY KEY (`auditid`),
                      KEY `auditlog_1` (`userid`,`clock`),
                      KEY `auditlog_2` (`clock`),
                      KEY `auditlog_3` (`resourcetype`,`resourceid`)
                      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin |

                    • AlexeyFS
                      AlexeyFS commented
                      Editing a comment
                      Спасибо большое, за ответ. Запущу скрипт отпишусь по результатам.

                    • AlexeyFS
                      AlexeyFS commented
                      Editing a comment
                      Владимир, спасибо вам большое. У меня все получилось. Перед выполнением вашего скрипта я еще удалил таблицу auditlog из БД zabbix. И все заработало. СПАСИБО!!!
                  • vladimir_lv
                    Senior Member
                    • May 2022
                    • 240

                    #11
                    Auditlog растет, потому что начиная с 6-й версии туда пишется гораздо больше, чем ранее:

                    https://www.zabbix.com/documentation...w600#audit-log

                    The audit log now contains records about all configuration changes for all Zabbix objects, including changes that occurred as a result of executing an LLD rule, a network discovery action, an autoregistration action, or a script execution. Previously, configuration changes initiated from Zabbix server, for example, as a result of executing a discovery rule, were not recorded. Now such object modifications will be stored as audit records attributed to the user System.

                    Comment

                    • Tristis Oris
                      Member
                      • Sep 2015
                      • 66

                      #12
                      не знаю почему, удалось пересоздать таблицу только через клиент DbGate.
                      всякие там HeidiSQL, Beekeeper и тп генерят разный create код, но создать ее не могут.
                      база усохла 57>19гб. посмотрим что дальше получится.

                      вот этот в итоге сработал.
                      Code:
                      CREATE TABLE "public"."auditlog" (
                        "auditid" VARCHAR(25) NOT NULL,
                        "userid" BIGINT NULL,
                        "username" VARCHAR(100) NOT NULL DEFAULT ''::character varying ,
                        "clock" INTEGER NOT NULL DEFAULT 0 ,
                        "ip" VARCHAR(39) NOT NULL DEFAULT ''::character varying ,
                        "action" INTEGER NOT NULL DEFAULT 0 ,
                        "resourcetype" INTEGER NOT NULL DEFAULT 0 ,
                        "resourceid" BIGINT NULL,
                        "resource_cuid" VARCHAR(25) NULL,
                        "resourcename" VARCHAR(255) NOT NULL DEFAULT ''::character varying ,
                        "recordsetid" VARCHAR(25) NOT NULL,
                        "details" TEXT NOT NULL DEFAULT ''::text ,
                        CONSTRAINT "auditlog_pkey" PRIMARY KEY ("auditid")
                      );
                      CREATE INDEX "auditlog_2"
                      ON "public"."auditlog" (
                        "clock" ASC
                      );
                      CREATE INDEX "auditlog_1"
                      ON "public"."auditlog" (
                        "userid" ASC,
                        "clock" ASC
                      );
                      CREATE INDEX "auditlog_3"
                      ON "public"."auditlog" (
                        "resourcetype" ASC,
                        "resourceid" ASC
                      );​

                      Comment

                      Working...