Ad Widget

Collapse

Informe de ocupación de HD

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sancho
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Mar 2015
    • 295

    #1

    Informe de ocupación de HD

    Antes que nada un saludo a todos,
    Aunque hace tiempo que recurro al foro buscando información, este es mi primer post.
    Estoy comenzando con zabbix por lo que haré muchas preguntas de novato, y preguntaré alguna que otra barbaridad, así que perdón de antemano

    Como ya he dicho, desde hace poco estoy monitorizando los servidores y la red de mi empresa, por ahora estoy logrando obtener casi toda la información que necesitamos, pero hay algo que no logro sacar.
    Necesito conocer la ocupación de los discos duros de los últimos 3 meses, por ahora con los gráficos lo he logrado, pero necesitaría sacarlo en modo texto. Lo único que he logrado parecido a lo que necesito es crear un screen con data overview, pero los datos que me da son solo los e tiempo real, si selecciono en la barra de tiempo los datos de otra fecha no me cambia la información, me da todo el tiempo la información del momento.

    Me podéis orientar??

    Muchas gracias a todos.

    Por cierto, tengo el zabbix 2.4.6 sobre un Ubuntu 14.04 server.
    Last edited by sancho; 06-11-2015, 10:47.
  • lmaza
    Junior Member
    • Nov 2015
    • 16

    #2
    Hola, se me ocurren dos alternativas.
    La primera desde "Monitoring / Lastest data" elegis el item que queres ver y presionas graph. Allí te aparecerá el gráfico y arrriba a la derecha tenes un lugar para cambiar a "Values" y "Last Values", elegí el primero y luego en la barra de zoom seleccionas 6 meses.
    Ahi apareceran todos los valores y podes por ultimo seleccionar la opcion "As plain text" justo al lado de donde cambiaste a "Values".

    La otra opción es por base de datos

    Select hs.name host, i.name, from_unixtime(clock), h.value
    From history_uint h
    inner join items i on i.itemid = h.itemid
    inner join hosts hs on hs.hostid = i.hostid Where i.name like '%free disk space%' limit 10;

    Si necesitas mas ayuda con la consulta avisame
    Saludos
    Leonardo

    Comment

    • sancho
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Mar 2015
      • 295

      #3
      Hola Leonardo,
      Gracias por responder, la primera opción ya la conocía, el problema es que lo que necesito es conocer el valor máximo ocupación de disco de cada host de un grupo de host en el espacio de tiempo que le indique (sería el de cada mes). De la manera que me indicas se podría hacer pero tendría que ir uno a uno y solo me daría la ocupación día a día, vamos, que sería bastante engorroso hacer eso cada mes. Esto es para un informe que necesito generar mensualmente.

      Voy a intentar por la segunda opción que me has dado, directamente por sentencia sql en la base de datos, lo que no tengo muy claro es como debería de ser la sentencia ya que no conozco las tablas....

      Muchísimas gracias por tu ayuda, ya había perdido la esperanza de que me contestaran.

      Comment

      • lmaza
        Junior Member
        • Nov 2015
        • 16

        #4
        Hola dame unos dias, porque si bien el query lo tengo, les cuesta mucho al sistema sacarlo.
        Son muchos datos lo que almacena, estoy analizando como guarda los trends y desde ahi seguro es mas facil.
        Otro tema es que el template por defecto solo guarda 7 dias de datos y 365 dias de trends. Dejame analizarlo un tiempo y te contesto.

        Comment

        • lmaza
          Junior Member
          • Nov 2015
          • 16

          #5
          Bueno ya esta, sobre el trends es mas facil
          Aca esta el informe que necesitas, cualquier cosa avisame, solo tenes que cambiar las fechas

          Select h.name host, replace(replace(i.key_, 'vfs.fs.size[', ''), ',free]', '') Unidad,
          min(t.value_min) / 1024 / 1024 / 1024 MIN_GB, max(t.value_max) / 1024 / 1024 / 1024 MAX_GB
          From trends_uint t
          inner join items i on i.itemid = t.itemid
          inner join hosts h on h.hostid = i.hostid
          Where t.clock between unix_timestamp('20151001') And unix_timestamp('20151101')
          and i.key_ like 'vfs.fs.size%,free]'
          Group By h.name, i.key_
          Order By h.name;

          Comment

          • sancho
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Mar 2015
            • 295

            #6
            Muchísimas gracias Leonardo,

            Estoy ejecutándolo desde el phpmyadmin pero parece que hay algunos caracteres que dan problemas, creo que hay corchetes y paréntesis que se han colado mal situados, voy a intentar trabajar con ello en base a lo que me has dado.
            De nuevo muchas gracias por todo.
            Estoy intentando hacer un Excel con la descripción de las tablas sacando la información de varios blogs, el problema es que la información que veo es del zabbix 1.8 y la verdad es que parece que ha cambiado bastante las tablas del sql..., si logro sacar algo claro lo pego por aquí.

            Un saludo.

            Comment

            • sancho
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Mar 2015
              • 295

              #7
              No lo logro, me da errores la sentencia y aunque he intentado corregirla (mis conocimientos de SQL son muy limitados ) no logro que funcione...

              Comment

              • lmaza
                Junior Member
                • Nov 2015
                • 16

                #8
                Indicame que vesion de Zabbix estas utilizando y que error te da el query que te envie originalmente.

                Cualquier cosa, si queres lo seguimos por privado y luego posteamos la solucion

                Mi mail es [email protected]

                Saludos

                Comment

                • sancho
                  Senior Member
                  Zabbix Certified SpecialistZabbix Certified Professional
                  • Mar 2015
                  • 295

                  #9
                  Gracias a lmaza por toda su ayuda, pongo las consultas que ha realizado Leonardo:

                  Calculo de espacio libre en HD

                  Select h.name host, replace(replace(i.key_, 'vfs.fs.size[', ''), ',free]', '') Unidad,
                  min(t.value_min) / 1024 / 1024 / 1024 MIN_GB, max(t.value_max) / 1024 / 1024 / 1024 MAX_GB
                  From trends_uint t
                  inner join items i on i.itemid = t.itemid
                  inner join hosts h on h.hostid = i.hostid
                  Where t.clock between unix_timestamp('20151001') And unix_timestamp('20151101')
                  and i.key_ like 'vfs.fs.size%,free]'
                  Group By h.name, i.key_
                  Order By h.name


                  Calculo de espacio ocupado en HD

                  Select h.name host, replace(replace(i.key_, 'vfs.fs.size[', ''), ',used]', '') Unidad,

                  min(t.value_min) / 1024 / 1024 / 1024 MIN_GB, max(t.value_max) / 1024 / 1024 / 1024 MAX_GB

                  From trends_uint t

                  inner join items i on i.itemid = t.itemid

                  inner join hosts h on h.hostid = i.hostid

                  Where t.clock between unix_timestamp('20151001') And unix_timestamp('20151101')

                  and i.key_ like 'vfs.fs.size%,used]'

                  Group By h.name, i.key_

                  Order By h.name;


                  Calculo de espacio ocupado en HD por grupo

                  Select h.name host, replace(replace(i.key_, 'vfs.fs.size[', ''), ',used]', '') Unidad,

                  min(t.value_min) / 1024 / 1024 / 1024 MIN_GB, max(t.value_max) / 1024 / 1024 / 1024 MAX_GB

                  From trends_uint t

                  inner join items i on i.itemid = t.itemid

                  inner join hosts h on h.hostid = i.hostid

                  inner join hosts_groups hg On hg.hostid = h.hostid

                  inner join groups g On g.groupid = hg.groupid

                  Where t.clock between unix_timestamp('20151001') And unix_timestamp('20151101')

                  and i.key_ like 'vfs.fs.size%,used]' and g.name = 'nombre del grupo'

                  Group By h.name, i.key_

                  Order By h.name;


                  Muchísimas gracias Leonardo

                  Comment

                  • lmaza
                    Junior Member
                    • Nov 2015
                    • 16

                    #10
                    Originally posted by sancho
                    Muchísimas gracias Leonardo
                    Un placer, no siempre puedo ayudar y muchas veces me han ayudado en los foros sin siquiera saberlo.

                    Saludos

                    Comment

                    Working...