systemadmin.es > Monitorización > dashing para la ocupación en disco

dashing para la ocupación en disco

El framework dashing permite crear dashboards fácilmente con los datos que nos interese mostrar. Así que en base a los ejemplos he creado una dashboard de la ocupación de los backups en disco.

Un ejemplo con el que muestra la funcionalidad de dashing es el siguiente:

demo de dahsing

demo de dahsing

Los pasos para crear un dashboard son los siguientes:

Se trata de un framework en ruby que usa nodejs, por lo que lo deberemos instalar:

yum install nodejs

Seguimos instalando ruby, lo haremos mediante rvm:

curl -L get.rvm.io | bash -s stable
usermod -a -G rvm root
source /etc/profile.d/rvm.sh 

A continuación deberemos buscar las dependencias de rvm, ejecutando:

rvm requirements

Una vez instalado rvm, instalamos la última versión de ruby:

rvm install ruby

Para acabar la instalación, instalamos la gema de dashing:

gem install dashing

Para crear el proyecto (dashing_df) dentro de /var/www hacemos:

cd /var/www
dashing new dashing_df
ls
cd dashing_df/
bundle

Dentro del directorio dashing_df, primero deberemos crear la dashboard en dashboards/df.erb:

<% content_for :title do %>df -hP<% end %>
<div class="gridster">
  <ul>
    <li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
      <div data-id="fs1" data-view="Number" data-title="file system 1"></div>
    </li>
(...)
  </ul>
</div>

A continuación definiremos un job que recolecte los datos, en este caso mediante comandos del sistema operativo mediante el fichero jobs/df.rb:

current_artesanum = 0

SCHEDULER.every '24h' do
  last_fs1= current_fs1

  current_fs1 = `df -P -B G | grep fs1 | awk '{ print $3 }' | cut -f 1 -dG`

  send_event('fs1', { current: current_fs1, last: last_fs1})
end

Llegado a este punto ya funcionaría, pero nos mostraría los datos con unidades, para mostar directamente el número que pasamos deberemos modificar el widget Number, concretamente el fichero widgets/number/number.html. Originalmente es:

<h1 class="title" data-bind="title"></h1>

<h2 class="value" data-bind="current | shortenedNumber | prepend prefix | append suffix"></h2>

<p class="change-rate">
  <i data-bind-class="arrow"></i><span data-bind="difference"></span>
</p>

<p class="more-info" data-bind="moreinfo"></p>

<p class="updated-at" data-bind="updatedAtMessage"></p>

Deberemos modificar el HTML que muestra el valor por el siguiente:

<h2 class="value" data-bind="current"></h2>

Para hacer que la dashboard dashboards/df.erb que hemos creado anteriormente deberemos modificar el fichero config.ru, añadidiendo el default_dashboard:

require 'dashing'

configure do
  set :auth_token, 'TOKEN'
  set :default_dashboard, 'df'

  helpers do
    def protected!
     # Put any authentication code you want in here.
     # This method is run before accessing any resource.
    end
  end
end

map Sinatra::Application.assets_prefix do
  run Sinatra::Application.sprockets
end

run Sinatra::Application

Finalmente deberemos arrancar el daemon desde el mismo directorio mediante:

cd /var/www/dashing_df
dashing start

En el puerto 3030 tendremos la dashboard:

dashing para el consumo en disco

dashing para el consumo en disco

Es una forma muy rápida de crear reports bonitos.

2 comments to “dashing para la ocupación en disco”

  1. No te gusta los nagios? XD

  2. A mi sí, a quien no les gusta es a los jefes que lo quieren más bonito 😉

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>