
Generant informes amb Grafana i programar el seu enviament
En aquest post veurem una cosa molt interessant, si disposem d'uns Dashboards de Grafana chulisimos, on amb unes gràfiques personalitzades veiem en tot moment la situació de la nostra plataforma, no? Imaginar-vos que a això, li afegim la possibilitat de generar un informe del Dashboard que ens interessi en PDF, i programem el seu enviament per correu electrònic per veure el resum d'ahir, de la setmana passada…
Al gra, vingui! Comencem amb una utilitat que ha desenrotllat Izak Marais i tenim al GitHub (de Microsoft ja, qui ho entén…), bé, tenim un servei que mitjançant pdflatex generarà un arxiu PDF del Dashboard que ens interessi, i després ja amb sendemail enviarem el mail totalment personalitzat i amb els informes que ens de la gana!
Requistos,
El primer, a la nostra màquina de Grafana, en el meu cas és un Centos 7.3 al qual li instal·larem els següents requisits:
[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]
Ens descarreguem Go i l'instal·lem:
[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]
I ja per fi ens descarreguem el Reporter que ens permetrà el dit, generar un PDF amb els Dashboards de Grafana:
[sourcecode]go get github.com/IzakMarais/reporter/…
go install -v github.com/IzakMarais/reporter/cmd/grafana-reporter[/sourcecode]
Acabem ja obrint el port al firewall i recarregant la configuració:
[sourcecode]firewall-cmd –zone = public –permanent –add-port=8686/tcp
firewall-cmd –reload[/sourcecode]
Podrem provar d'executar-lo directament per validar que tot funciona bé, o usar '–help’ per veure algun paràmetre interessant, com és el de connectar un Grafana remot, etc.… executem:
[sourcecode]/root/go/bin/grafana-reporter[/sourcecode]
Ull! Abans de seguir, els Dashboards han d'estar creats a Grafana v5 i no heretats de v4, ok? Si tenim algun dashboard vell, tan senzill serà fer un “Guardar Com…” i el tindrem convertit en version 5.
Generant un informe manualment,
Ara mateix ja podríem provar de generar un informe, tenim un parell d'opcions, una que seria crear un botó d'Informe al mateix Dashboard perquè quan algú vulgui, es descarregui un PDF del que està veient. Seria tan fàcil com en Grafana:
Dins del Dashboard que ens interessi > Posem-se a la tendresa o “Settings” > “Link” > “Add Dashboard Link” i indiquem les següents dades
- Type: Link, deixem marcat aquest tipus.
- Url: http://DIRECCION_IP_GRAFANA:8686/api/v5/report/{dashboardUID}
- Title: Informe PDF
- Tooltip: Genera un PDF d'aquest Dashboard
- Icon: doc, perquè sigui una icona d'un document.
- Time range: Ho marquem per permetre posar períodes de temps.
- Variable values: El marquem per jugar amb les dates.
- Open in new tab: El marquem si volem que el PDF el generi en una nova pestanya.
I res, veuríem un botó que en pulsar doncs ens generarà l'informe en PDF!
Com podem intuir, la URL per generar el PDF seria una cosa com (òbviament podrem jugar amb els marges de les dates o períodes del PDF):
[sourcecode]http://DIRECCIÓN_IP_GRAFANA:8686/api/v5/report/ID-DASHBOARD?from = now-24h&to = now[/sourcecode]
Generant informes programats,
Vingui a l'interessant! El primer, haurem de fer que el grafana-reporter iniciï amb la màquina, el més ràpid, perquè arrenqui en iniciar, en afegim a Cron amb 'crontab -e’ el següent:
[sourcecode]@reboot /root/go/bin/grafana-reporter[/sourcecode]
Si volem enviar-los per mail de forma automàtica, instal·larem sendemail:
[sourcecode]yum install sendemail[/sourcecode]
Crearem un script on posem les URLs dels Reports que ens interessa generar i ens els descarreguem amb wget, i finalment els enviem per email, jo l'anomenaré d'exemple '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***@bu*****.com-t pa**@bu*****.com -s mail.bujarra.com -m "Estimats senyors,\nSe els adjunten els informes amb els consums del seu datacenter.nQue tinguin molt bon dia!" -u "Grafana – Informe Diari" -xu ens*****@bu*****.com -xp XXXXXXXX -o tls=auto -a diario_VMware.pdf diario_Citrix.pdf[/sourcecode]
Aquest script 'grafana_report_diario.sh’ s'executarà per exemple tots els dies a les 0h i com veiem traurà dades fresques i les manarà per mail als nostres caps, clients, departament d' IT…
Resultat,
Aquest seria un exemple del PDF que vaig rebre, clar que cadascú tindrà els seus Dashboard personalitzats, doncs que us serveixi d'exemple!
No em dieu que no!!! Impressionant!!!
Espero que us hagi resultat interessant i podeu aportar sempre una cosa nova i positiva en els vostres treballs!!