Generando informes con Grafana y programar su envio

En este post veremos algo muy interesante, si disponemos de unos Dashboards de Grafana chulisimos, donde con unas gráficas personalizadas vemos en todo momento la situación de nuestra plataforma, ez? Imaginaros que a esto, le añadimos la posibilidad de generar un informe del Dashboard que nos interese en PDF, y programamos su envío por correo electrónico para ver el resumen de ayer, de la semana pasada…

 

Al grano, etorri! Empezamos con una utilidad que ha desarrrollado Izak Marais y tenemos en el GitHub (de Microsoft ya, quien lo entiende…), ongi, tenemos un servicio que mediante pdflatex generará un archivo PDF del Dashboard que nos interese, y luego ya con sendemail enviaremos el mail totalmente personalizado y con los informes que nos de la gana!

 

Requistos,

Lo primero, en nuestra máquina de Grafana, en mi caso es un Centos 7.3 al que le instalaremos los siguientes requisitos:

[sourcecode]yum install texlive-pdftex texlive-latex-bin texlive-texconfig* texlive-latex* texlive-metafont* texlive-cmap* texlive-ec texlive-fncychap* texlive-pdftex-def texlive-fancyhdr* texlive-titlesec* texlive-multirow texlive-framed* texlive-wrapfig* texlive-parskip* texlive-caption texlive-ifluatex* texlive-collection-fontsrecommended texlive-collection-latexrecommended texinfo-tex[/sourcecode]

 

Nos descargamos Go y lo instalamos:

[sourcecode]wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.10.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin[/sourcecode]

 

Y ya por fin nos descargamos el Reporter que nos permitirá lo dicho, generar un PDF con los Dashboards de Grafana:

[sourcecode]go get github.com/IzakMarais/reporter/…
go install -v github.com/IzakMarais/reporter/cmd/grafana-reporter[/sourcecode]

 

Acabamos ya abriendo el puerto en el firewall y recargando la configuración:

[sourcecode]firewall-cmd –zone=public –permanent –add-port=8686/tcp
firewall-cmd –reload[/sourcecode]

 

Podremos probar a ejecutarlo directamente para validar que todo funciona bien, o usar '–laguntza’ para ver algún parámetro interesante, como es el de conectar a un Grafana remoto, eta abar… ejecutamos:

[sourcecode]/root/go/bin/grafana-reporter[/sourcecode]

 

Ojo! Jarraitzean aurretik, los Dashboards tienen que estar creados en Grafana v5 y no heredados de v4, ok? Si tenemos algún dashboard viejo, tan sencillo será hacer unGuardar Como…” y lo tendremos convertido en version 5.

 

Generando un informe manualmente,

Ahora mismo ya podríamos probar a generar un informe, tenemos un par de opciones, una que sería crear un botón de Informe en el propio Dashboard para que cuando alguien quiera, se descargue un PDF de lo que está viendo. Sería tan fácil como en Grafana:

 

Dentro del Dashboard que nos interese > Pulsamos en la tuerca o “Ezarpenak” > “Link” > “Add Dashboard Linke indicamos los siguientes datos

  • Type: Link, dejamos marcado ese tipo.
  • Url: http://DIRECCION_IP_GRAFANA:8686/api/v5/report/{dashboardUID}
  • Izenburua: Informe PDF
  • Tooltip: Genera un PDF de este Dashboard
  • Icon: doc, para que sea un icono de un documento.
  • Time range: Lo marcamos para permitir poner periodos de tiempo.
  • Variable values: Lo marcamos para jugar con las fechas.
  • Open in new tab: Markatuko dugu PDFa fitxa berri batean sortzea nahi badugu.

 

Eta ezer, Ikusiko genuke botoi bat, eta sakatzean PDF txostena sortuko digula!

 

Nola asmatzen dugun bezala, PDFa sortzeko URL-a honela egongo litzateke (Jakina, PDFaren datak edo epeen marginearengatik jolastu ahal izango dugu):

[sourcecode]http://DIRECCIÓN_IP_GRAFANA:8686/api/v5/report/ID-DASHBOARD?from=now-24h&to=now[/sourcecode]

 

 

Programatutako txostenak sortzen,

Ba goazen interesgarri hari! Lo primero, Grafana-reporter-ek makinarekin batera abiarazi behar dugu, Ahalegin txikiena, Hasieran abiarazteko, Berdin-berdin, Cron-en gehitu behar dugu ‘crontab -e’ honekin’ lo siguiente:

[sourcecode]@reboot /root/go/bin/grafana-reporter[/sourcecode]

 

Automatikoki mezu elektroniko bidez bidali nahi baditugu, Sendemail instalatuko dugu:

[sourcecode]yum install sendemail[/sourcecode]

 

Crearemos un script donde pongamos las URLs de los Reports que nos interesa generar y nos los descargamos con wget, y finally los enviamos por email, yo le llamaré de ejemplo 'grafana_report_diario.sh':

[sourcecode]# Dashboard Servidores VMware
wget -O diario_VMware.pdf http://DIRECCION_IP_GRAFANA:8686/api/v5/report/NRkUakSik?from=now-24h&to=now

# Dashboard Servidores Citrix
wget -O diario_Citrix.pdf http://DIRECCION_IP_GRAFANA:8686/api/v5/report/YpIJqYkik?from=now-24h&to=now

sleep 40s
/usr/bin/sendemail -f de***@*****ra.com-t pa**@*****ra.com -s mail.bujarra.com -m "Estimados señores,\nSe les adjuntan los informes con los consumos de su datacenter.\nQue tengan muy buen dia!" -u "Grafana – Informe Diario" -xu us*****@*****ra.com -xp XXXXXXXX -o tls=auto -a diario_VMware.pdf diario_Citrix.pdf[/sourcecode]

 

Este script 'grafana_report_diario.sh’ se ejecutará por ejemplo todos los días a las 0h y como vemos sacará datos frescos y los mandará por mail a nuestros jefes, bezeroak, departamento de IT…

 

Resultado,

Este sería un ejemplo del PDF que vais a recibir, claro que cada uno tendrá sus Dashboard personalizados, pues que os sirva de ejemplo!

 

No me digáis que no!!! Izugarria!!!

Espero que os haya resultado interesante y podáis aportar siempre algo novedoso y positivo en vuestros trabajos!!

 

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!