Ad Widget

Collapse

Tabela history_uint crescendo

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Bsabbath66
    Junior Member
    • Jun 2012
    • 11

    #1

    Tabela history_uint crescendo

    Olá Pessoal,
    Tenho um servidor Zabbix 2.2.3 com as seguintes características:
    * Número de hosts (monitorados/não monitorados/templates/removidos) 652 576 / 1 / 75
    * Número de itens (monitorados/desativados/não suportados) 12186 11462 / 444 / 280
    * Número de triggers (habilitadas/desabilitadas) [incidente/ok] 4810 4685 / 125 [7 / 4678]
    * Número de usuários (online) 23 11
    * Desempenho requerido do servidor, novos valores por segundo 126.19 -

    O processo de housekeeper já está habilitado em Administração / Geral / Limpeza de Dados.

    Contudo, minha base de dados MySQL não pára de crescer. A tabela history_uint está atualmente com 44G. A base de dados Zabbix cresceu em torno de 5GB em 10 dias (total hoje é de 67G).
    O Zabbix está em produção não faz 6 meses.

    Gostaria de saber se somente eu é que estou tendo problemas de crescimento expressivo na base de dados do Zabbix.
    E se alguém puder me auxiliar em como corrigir isso. Meu conhecimento em MySQL é básico.

    Abaixo as opções que tenho habilitadas no my.cnf:

    ******************

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    tmpdir = /var/lib/mysql/mysqltmp

    # network
    connect_timeout = 60
    max_connections = 512
    max_allowed_packet = 32M
    max_connect_errors = 500


    # limits
    tmp_table_size = 64M
    max_heap_table_size = 64M

    # logs
    slow_query_log_file = /var/lib/mysql/mysql-slow.log
    slow_query_log = ON

    # innodb
    innodb_data_home_dir = /var/lib/mysql
    innodb_data_file_path = ibdata1:48M:autoextend
    innodb_file_per_table = ON
    innodb_status_file = ON
    innodb_additional_mem_pool_size = 32M
    innodb_buffer_pool_size = 2G
    innodb_flush_method = O_DIRECT
    innodb_io_capacity = 1000
    innodb_flush_log_at_trx_commit = 2
    innodb_support_xa = OFF
    innodb_log_file_size = 128M
    innodb_log_buffer_size = 128M

    # other stuff
    event_scheduler = ON
    query_cache_type = ON
    query_cache_limit = 4M
    query_cache_size = 16M
    join_buffer_size = 256K
    read_buffer_size = 256K
    read_rnd_buffer_size = 256K


    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

    ********************

    Algumas opções ativas em zabbix_server.conf:

    StartPollers=15
    StartPollersUnreachable=4
    StartTrappers=3
    StartPingers=10
    HousekeepingFrequency=3
    MaxHousekeeperDelete=1000
    CacheSize=16M
    Timeout=10

    Aguardo o auxílio dos amigos! Obrigado.
  • Odilhao
    Junior Member
    • Jun 2013
    • 8

    #2
    O seu housekeeper esta ativado na interface web? No zabbix 2.2 o housekeep não é mais configurado na configuração do daemon. Talvez habilitando o housekeep de uma diminuída na sua tabela, no pior caso vai diminuir bastante o crescimento dela.

    Comment

    • Bsabbath66
      Junior Member
      • Jun 2012
      • 11

      #3
      Originally posted by Odilhao
      O seu housekeeper esta ativado na interface web? No zabbix 2.2 o housekeep não é mais configurado na configuração do daemon. Talvez habilitando o housekeep de uma diminuída na sua tabela, no pior caso vai diminuir bastante o crescimento dela.
      Obrigado pela ajuda.
      Sim, como eu havia comentado, o processo de housekeeper já está habilitado em Administração / Geral / Limpeza de Dados.

      Algumas linhas do zabbix_server.log com referência ao housekeeper:

      1904:20140818:231328.229 housekeeper [deleted 5010440 hist/trends, 59925 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 6763.927792 sec, idle 3 hour(s)]
      1904:20140819:021328.230 executing housekeeper
      1904:20140819:034912.177 housekeeper [deleted 5019103 hist/trends, 59639 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 5743.946236 sec, idle 3 hour(s)]
      1904:20140819:064912.177 executing housekeeper
      1904:20140819:073437.149 housekeeper [deleted 5060264 hist/trends, 57710 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 2724.969675 sec, idle 3 hour(s)]
      13593:20140819:092617.366 server #36 started [housekeeper #1]
      13593:20140819:092617.366 executing housekeeper
      13593:20140819:101542.078 housekeeper [deleted 4927472 hist/trends, 112788 items, 0 events, 0 sessions, 0 alarms, 16 audit items in 2964.705994 sec, idle 3 hour(s)]

      Comment

      • Odilhao
        Junior Member
        • Jun 2013
        • 8

        #4
        Vamos ver se mais alguem responde no topico, seus valores por segundo estão baixos para crescer isso tudo com o Housekeep ativado.

        Comment

        • Bsabbath66
          Junior Member
          • Jun 2012
          • 11

          #5
          Eu li em algum lugar que quando utiliza-se o MySQL com INNODB, mesmo com o housekeeper funcionando e deletando as entradas, o espaço ocupado pelo banco no disco não diminui.
          Isto confere?
          Se sim, existe alguma forma de corrigir isso?
          Qual seria a melhor solução para manter um banco de dados enxuto?

          Comment

          • gph
            Junior Member
            • Aug 2014
            • 3

            #6
            Originally posted by Bsabbath66
            Eu li em algum lugar que quando utiliza-se o MySQL com INNODB, mesmo com o housekeeper funcionando e deletando as entradas, o espaço ocupado pelo banco no disco não diminui.
            Isto confere?
            Se sim, existe alguma forma de corrigir isso?
            Qual seria a melhor solução para manter um banco de dados enxuto?
            Opa @Bsabbath66,

            acredito que as únicas maneiras de diminuir o espaço livre alocado no mysql é através do optimize (nunca utilizei) ou criando um dump do banco e importando em outro.

            OBS: a lógica do dump seria, gerar um dump full do banco e após isso dropar todo o banco. Recriar ele com o mesmo nome e importar o dump gerado.

            Porém consulte um especialista antes de utilizar qualquer um dos procedimentos.

            Att,
            Henry

            Comment

            • Bsabbath66
              Junior Member
              • Jun 2012
              • 11

              #7
              Originally posted by gph
              Opa @Bsabbath66,

              acredito que as únicas maneiras de diminuir o espaço livre alocado no mysql é através do optimize (nunca utilizei) ou criando um dump do banco e importando em outro.

              OBS: a lógica do dump seria, gerar um dump full do banco e após isso dropar todo o banco. Recriar ele com o mesmo nome e importar o dump gerado.

              Porém consulte um especialista antes de utilizar qualquer um dos procedimentos.

              Att,
              Henry
              Olá @gph ,
              Obrigado por responder...
              Em um ambiente de teste eu já havia testado o 'optimize' nas tabelas do Zabbix, mas em tabelas como history_uid e history não surtiram efeitos (exibe uma mensagem mais ou menos assim: "Table does not support optimize, doing recreate + analyze instead "). Em outros tabelas até houveram diminuição do espaço utilizado, mas que foram pouco expressivos se comparado ao tamanho total ocupado.

              Esta ideia do dump também já utilizei diversas vezes em ambiente de teste, O problema é que num ambiente de produção gera muita indisponibilidade da ferramenta. Para manter a integridade do banco, eu paro o serviço do Zabbix e o dump mais processo de limpeza e popular a base novamente vai me custar pelo menos 6 horas com o serviço fora do ar.
              Eu procuro algo que seja constante e automático.

              Minha inquietação é que parece que somente eu estou tendo problemas de crescimento expressivo na base de dados do Zabbix. Será que estou fazendo algo errado?

              Comment

              • JFontes
                Member
                Zabbix Certified Specialist
                • Jul 2012
                • 36

                #8
                Você não está gravando as tabelas de history por muito tempo não? Esse valor é de cada item até que ele vá consolidado para a tabela de trends.

                Comment

                • Bsabbath66
                  Junior Member
                  • Jun 2012
                  • 11

                  #9
                  Originally posted by JFontes
                  Você não está gravando as tabelas de history por muito tempo não? Esse valor é de cada item até que ele vá consolidado para a tabela de trends.
                  Praticamente todos os ítens configurados então com 7 dias de histórico e estatística de 365 dias.
                  Intervalo de verificação de 60s em ítens de rede (como ping) e em outros ítens q consideramos críticos.
                  Monitoramento de espaço em disco e outros não críticos (ou que tem mudanças não tão constantes) são de 5min ou mais...

                  Comment

                  • JFontes
                    Member
                    Zabbix Certified Specialist
                    • Jul 2012
                    • 36

                    #10
                    Originally posted by Bsabbath66
                    Praticamente todos os ítens configurados então com 7 dias de histórico e estatística de 365 dias.
                    Intervalo de verificação de 60s em ítens de rede (como ping) e em outros ítens q consideramos críticos.
                    Monitoramento de espaço em disco e outros não críticos (ou que tem mudanças não tão constantes) são de 5min ou mais...

                    Um valor no history tem 90bytes, levando isso em consideração e seus valores por segundo, o espaço ocupado por ele em média, durante 7 dias, é de 6.5GB - Sem contar os novos trends que vão entrando que ocupam bem menos espaço, mas ainda sim influenciam. Eu acreditaria que seu banco vai crescer exponencialmente durante 15 dias e depois, vai permanecer com o espaço estável, fazendo sua manutenção de history e trends. Caso seja "grave", eu tentaria diminuir radicalmente os trends de 1 ano pra poucos meses, já que seus itens estão em somente 7 dias.

                    Abs,

                    Comment

                    • angelhc
                      Senior Member
                      Zabbix Certified Specialist
                      • Nov 2009
                      • 226

                      #11
                      Na verdade, o "housekeeping" apenas marcado como registros excluídos no InnoDB, para recuperar o espaço que você precisa para executar "optimize table <tablename>" a tabela que deseja recuperar.

                      Outra forma mais rápida e tão eficaz seria a de executar um backup com mysqldump, apagar BBDD de zabbix completamente e despejar informações de backup.

                      ==================================================
                      Efectivamente el housekeeping solo marca como borrados los registros en Innodb, para recuperar espacio es necesario ejecutar un optimize de las tablas que queramos recuperar.
                      Otra forma más rápida e igual de efectiva sería ejecutar un backup con mysqldump, borrar la bbdd de zabbix por completo y volcar la información del backup.
                      Number of hosts 1600,Number of items +90k,Number of triggers +22k, Number of users +100, New values per second +1270

                      http://zabbixes.wordpress.com/

                      Comment

                      • evertonbernardi
                        Junior Member
                        • Sep 2014
                        • 10

                        #12
                        Qual o tamanho do arquivo ibdata1 presente em /var/lib/mysql/ ?

                        Tive uma experiência recente de crescimento desse arquivo durante uma migração e em minhas pesquisas encontrei documentações apontando para a possibilidade de utilizar o parâmetro "innodb_file_per_table = 1" que faz com que cada tabela do banco de dados seja salva em um arquivo diferente.

                        Dê uma olhada nesse blog: http://tacticalvim.wordpress.com/200...-mysql-config/

                        Esse aqui tem um procedimento (que não testei) para reduzir o tamanho do ibdata1 após o optimize: https://rtcamp.com/tutorials/mysql/e...ile-per-table/


                        Abraços

                        Everton Bruno Bernardi

                        Comment

                        • angelhc
                          Senior Member
                          Zabbix Certified Specialist
                          • Nov 2009
                          • 226

                          #13
                          Tienes información sobre el tema en este post:




                          SAludos!
                          Number of hosts 1600,Number of items +90k,Number of triggers +22k, Number of users +100, New values per second +1270

                          http://zabbixes.wordpress.com/

                          Comment

                          • christovam
                            Junior Member
                            • Dec 2015
                            • 10

                            #14
                            Olá.

                            Você conseguiu resolver seu problema?

                            Estou enfrentando a mesma coisa..

                            Comment

                            • Hernandes Martins
                              Senior Member
                              Zabbix Certified SpecialistZabbix Certified Professional
                              • Apr 2011
                              • 900

                              #15
                              Vamos lá meu caro,

                              Informe mais dados sobre o seu ambiente.

                              É importante dar uma olhada no seu ambiente primeiramente, procure incluir essas boas praticas no seu ambiente.

                              Por quanto tempo seus itens estão sendo armazenados?

                              Procure manter o período mínimo de 60 até 90 dias, isto vai fazer que os dados antigos sejam descartados durante o processo de housekeeper. Se for o caso revise as informações do housekeeper

                              Ajuste o tempo de coleta dos seus itens a partir de 300 segundos e o mais críticos 150 os demais sempre coloque intervalos maiores.

                              As informações referente ao crescimento da base ocorre principalmente pela enorme quantidade de coletas efetuadas em um período curto de tempo e o armazenamento por muito tempo.

                              Conforme foi mencionado nos posts anteriores, observe que a base em si não irá diminuir, só se você dropar e restaurar uma nova base com o backup, mesmo assim recomendo verificar com um especialista em banco de dados para otimizar o mesmo no seu ambiente zabbix.

                              Abraços
                              __

                              Att.
                              Hernandes Martins - Zabbix Trainer

                              Zabbix Brazil Partner - www.luniobr.com

                              Zabbix Brazil Community - www.zabbixbrasil.org

                              Blog: hernandesmartins.blogspot.com.br

                              Skype: hernandss
                              Telegram: @MrHernandes

                              Español
                              Facebook: facebook.com/groups/zabbixlatam
                              Telegram: https://t.me/ZabbixEspañol

                              Português
                              Facebook: facebook.com/groups/zabbixbrasil/
                              Telegram: https://t.me/ZabbixBrasil

                              Comment

                              Working...