Linux at the office: een lichtgewicht reporting oplossing

ART, "A Reporting Tool", is een eenvoudig te gebruiken, lichtgewicht, multi-platform, web-based query tool en business intelligence omgeving. ART is een platform onafhankelijke omgeving waarmee rapporten en dashboards in je browser getoond worden. De gegevens hiervoor komen live uit je eigen databases. 

ART kan onder andere overweg met MySQL, PostgreSQL en SQL Server. ART is een open source oplossing gebouwd in Java. Het is een webapplicatie die je draait op een Java applicatie webserver zoals Tomcat, JBoss of WebLogic. De gebruikers hoeven dus zelf geen software te installeren, maar werken via de webbrowser. In vergelijking met andere reporting tools is ART eenvoudig, het heeft niet de meest uitgebreide set van features en ook niet het meest gelikte uiterlijk. De keuze om simpel te zijn betekent echter ook dat je er snel mee kunt werken. Het installeren is eenvoudig en de gebruikers interface is niet intimiderend ingewikkeld. Je hebt al snel resultaten met ART.

 

Rapportages

De rapporten worden gegenereerd op basis van SQL queries waarbij de informatie op verschillende manieren kan worden gepresenteerd, bijvoorbeeld in een eenvoudige tabelvorm. Andere mogelijkheden zijn onder andere een kruistabel en diverse vormen van diagrammen, met daarbij de drill-down functionaliteit om naar de onderliggende informatie te gaan. ART biedt verschillende diagram-vormen die er vaak aantrekkelijk uitzien, zoals een XY-grafiek, 2D en 3D taart-diagrammen, horizontale en verticale staafdiagrammen, al dan niet gestapeld, lijndiagrammen, tijd-series, heat-maps, etc. Bij het maken van de query kies je ook meteen de presentatievorm.

ART biedt verder nog de mogelijkheid om de uitkomsten direct naar een Excel-sheet te exporteren (in xls, xlsx of slk formaat), naar een tab-separated CSV bestand of naar een PDF document.

ART heeft de Mondrian OLAP server ingebed. Dit is een open source Online Analytical Processing server (OLAP) geschreven in Java. Hiermee biedt ART rapport-types met OLAP functionaliteit waarmee je op data-cubes bijvoorbeeld draaitabellen kunt genereren. Dit is door ons niet getest.

 

SQL query

Het idee achter ART is dat het zo eenvoudig in gebruik moet zijn, dat eindgebruikers geen training nodig hebben. De functioneel beheerder dient wel over SQL-kennis te beschikken. De functioneel beheerder maakt SQL queries aan. Per query bepaal je welke gebruikers of gebruikersgroepen daartoe toegang hebben.

Zodra in ART een query gemaakt is, is deze meteen te gebruiken. Gebruikers die daartoe geautoriseerd zijn, loggen in en vragen het rapport op. Hierbij is het mogelijk dat de gebruiker eerst nog parameters opgeeft, om een verdere selectie van de gegevens uit te voeren. Afhankelijk van de situatie geef je een parameter in als tekst of als een getal, of je kiest een waarde uit een zogenoemde dropdown-lijst. Zo kan de gebruiker bijvoorbeeld bij het opvragen van een taart-diagram eerst uit een dropdown-lijst een bepaalde regio kiezen.

Wanneer je de gebruiker een parameter wilt laten opgeven, dan neem je dit in de query op door rondom de veldnaam hekjes te zetten, bijvoorbeeld “where provincie_naam like #provincie#”. Op de plek van de veldnaam komt dan bij het draaien van de query de door de gebruiker opgegeven waarde. Vervolgens kun je via de “Parameters” button opgeven hoe je de gebruiker die parameters wilt laten opvoeren. Hierbij is het mogelijk dat de parameter zelf een integer is (bijv. 1 t/m 4), en dat de gebruiker moet kiezen uit een dropdown-lijst met de labels “noord”, “oost”, “zuid” of “west”. Het is mogelijk deze combinatie van integer en label te laten generen aan de hand van een query (bijvoorbeeld “select ID, windrichting from windrichtingen order by windrichting”). Deze queries heten in ART LOV-reports, waarbij LOV een afkorting is van “list of values”.

 

Dashboard

In ART kun je één of meer dashboards aanmaken. Een dashboard is een pagina waarop je een aantal rapporten toont. Dit kunnen taart-diagrammen zijn of bijvoorbeeld staafgrafieken, maar ook kruistabellen. Alles wat in ART als rapport is op te vragen, kun je in zo'n dashboard opnemen. Een dashboard bestaat uit een dashboard definitie, die bij het opvragen on the fly gevuld wordt. De definitie bestaat uit een aantal XML-tags, waarin je kolommen maakt en deze vult met zogenoemde portlets. Een portlet heeft een titel en bevat een object, waarbij een object verwijst naar het ID van het rapport dat je erin wilt tonen. Desgewenst kan een refresh-waarde bij een object worden opgegeven, bijvoorbeeld een refresh-waarde van 30. Dit laat het betreffende object elke 30 seconden verversen.

Een object kan ook uit een url bestaan, op die manier kun je een externe html-pagina embedden in het dashboard.

Het aanmaken van dashboards gaat overigens een beetje eigenaardig. Dit doe je in de admin-console bij het query-beheer. Je maakt een nieuwe query aan, geeft die een naam en het type “Dashboard”. Hierna wordt het dashboard gemaakt en kun je de dashboard definitie vullen. Vervolgens geef je gebruikers toegang tot het dashboard via de grant-functie.

 

Gegevensbronnen

Binnen ART kun je met meerdere datasources werken, waarbij de Java JDBC driver voor de koppeling zorgt. Elke database-server waar een JDBC-koppeling voor bestaat kan met ART gebruikt worden, zoals Oracle, MySQL, PostgreSQL, SQL Server en CUBRID. Verder heeft ART de Java database HSQLDB ingebed.

Je kunt in ART meerdere gegevensbronnen naast elkaar gebruiken. Hierdoor is het mogelijk dat een gebruiker verschillende rapportages genereert, die elk uit verschillende databases komen die op verschillende database-servers draaien.

Het is eenvoudig om een nieuwe database-koppeling aan te maken. Login als admin en kies in de admin console de optie "Datasources". Kies de action "ADD" en klik op “Submit”. Je krijgt nu een scherm waarin je de koppeling met de database kunt configureren. Je geeft een naam voor de betreffende koppeling in, kiest het type database (bijvoorbeeld MySQL of PostgreSQL), vervolgens geef je de host van de server en de naam van de database op. In de volgende velden voer je de gebruikersnaam en het wachtwoord in, waarmee ART kan inloggen op de database. Als je wilt, kun je nog een korte query opgeven die ART kan gebruiken om doorlopend de koppeling te testen. Wanneer je dit veld leeg laat, wordt deze doorlopende test niet uitgevoerd.

Wanneer je een database type kiest, dan vult ART zelf een default waarde in voor de JDBC-driver, deze default waarde hoefden wij niet te wijzigen om succesvol met MySQL te kunnen connecten.

 

Externe authenticatie

In ART kun je gebruikersgroepen en gebruikers aanmaken en vervolgens maak je gebruikers lid van één of meer groepen. Recht om bepaalde queries te benaderen, zijn zowel aan individuele gebruikers als aan gebruikersgroepen toe te kennen. Dit noemt ART interne authenticatie. Het is echter ook mogelijk gebruik te maken van wat ART externe authenticatiemethodes noemt (niet door ons getest). ART kun je instellen op authenticatie via LDAP en met Active Directory authenticatie via windows domain authentication. Een andere optie is authenticatie tegen een database, via de JDBC driver. Verder kwamen wij nog een optie voor single sign on tegen.

Gebruikers kun je een bepaalde rol geven. ART onderscheid verschillende rollen, zoals die van een normale gebruiker, van een junior admin, mid admin, standaard admin en senior admin. Afhankelijk van de rol kan de gebruiker uitsluitend rapporten opvragen, zelf rapporten aanmaken, wel of niet rechten aan andere gebruikers toekennen, enzovoort. Daarnaast zijn er nog de rollen “schedule user” om jobs in te roosteren en die van “super admin”, die de applicatiesettings mag beheren.

 

Inroosteren van jobs

Met ART is het eenvoudig om bijvoorbeeld elke laatste dag van de maand een rapportage te laten genereren. Desgewenst wordt de rapportage automatisch per e-mail verstuurd, waarbij je per individueel rapport de ontvanger specificeert. Daarnaast kun je kiezen om bepaalde rapportages direct via een URL toegankelijk te maken of automatisch naar een ftp server te laten uploaden. Een bijzondere mogelijkheid is om rapporten als RSS-feed te publiceren.

Net als rapporten kun je ook dashboards via een URL toegankelijk maken. Wanneer je een gebruiker met de naam “public_user” aanmaakt, en vervolgens via de grant-functie toegang tot bepaalde rapporten voor deze gebruiker instelt, dan zijn deze rapporten publiek toegankelijk zonder daarvoor inloggen noodzakelijk is.

 

Installatie

Wij installeerden ART op een Debian Jessie systeem en gebruikten daarbij de Tomcat8 applicatie server. Hiertoe hebben wij open-jdk via apt geïnstalleerd. De tomcat server hebben wij als tar.gz gedownload van tomcat.apache.org. Je pakt de tar.gz uit in bijvoorbeeld /usr/local/tomcat8. Bij het uitpakken krijg je een aantal subdirectories, waaronder bin, conf en webapps. In conf vind je verschillende bestanden. In server.xml kun je onder andere de poort bepalen, waarop de tomcat server te bereiken is. Standaard is dit poort 8080. Verder vind je in de conf directory het bestand tomcat-users.xml, hier dien je één of meer users in aan te maken. Het is handig om een user aan te maken met toegang tot de manager-gui, zie listing 1. De regels in listing 1 neem je over in dit bestand, net boven de afsluitende regel "</tomcat-users>".

 

listing 1

 

In de bin directory staan een aantal bestanden, via ./startup.sh start je de Tomcat server. Wil je de server stoppen, dan doe je hier ./shutdown.sh. Wanneer je de Tomcat server gestart hebt, kun je deze via de eerder genoemde poort benaderen, bijvoorbeeld via http://localhost:8080. Als het goed is kun je nu inloggen op http://localhost:8080/manager/html met de gebruiker die je zojuist in het bestand tomcat-users.xml hebt aangemaakt.

Nadat je hebt vastgesteld dat de Tomcat server draait, download je ART vanaf sourceforge.net. Je krijgt een zip-file. Na het unzippen vind je een aantal bestanden, je hebt alleen het bestand art.war nodig. Kopieer dit bestand in de webapps directory van de Tomcat server. In de Tomcat-gui op http://localhost:8080/manager/html wordt deze nu zichtbaar. Je kunt nu ART in je browser openen via http://localhost:8080/art/. De eerste keer dat je inlogt in ART, dien je in de admin console het scherm met de settings te openen en na controle van de default waardes deze te submitten. Voor een eerste kennismaking is het niet nodig van de deze default waardes af te wijken.

Wanneer je besluit ART in productie te nemen, dan kun je beter de Tomcat-server op een veilige manier laten starten. Wanneer je Tomcat niet via het uitpakken van een tar.gz maar via de packagemanager van je distributie installeert, dan is dit allemaal al voor je geregeld. Ook kun je dan met de NGINX webserver een reverse proxy voor de Tomcat server maken. Dit laatste is niet erg ingewikkeld en is een veel gebruikte, veilige oplossing.

 

Waardevol

Ondanks de eenvoud en de wat bijzondere gebruikersinterface is ART een effectieve tool voor het realiseren van een management informatiesysteem. Het kan veel meer dan je op het eerste gezicht zou zeggen. ART levert professionele rapportages en diagrammen, inclusief drill down functionaliteit, op basis van je eigen databases, waarbij de eindgebruiker zelf op een eenvoudige manier parameters kan opvoeren en aanpassen. Rapporten en diagrammen zijn in specifieke dashboarden te combineren of via hun URL in andere informatie systemen te integreren. Met ART kun je volledig automatisch periodiek rapporten genereren en distribueren. Dit alles maakt dat ART voor veel organisaties een waardevol instrument kan zijn.

 

NEDLINUX FORUM

Het nederlandse linuxforum
Voor beginners en pro’s

 

 

 

 

E-mailadres



 

 

Nieuwste editie:

Linuxmag op Facebook

@linuxmagnl op Twitter

linuxmagNL Linux Nieuws: @SUSE bestaat 25 jaar en trakteert! Maak kans op entreeticket voor #SUSECON in Praag, zie link!… https://t.co/ENJKDvyZQ8
linuxmagNL De nieuwe editie van Linux Magazine is weer uit! Thema: bescherm jezelf tegen hackers met Linux. Veel leesplezier a… https://t.co/Zcy3Zdjb90
linuxmagNL Ook de Red Hat Forum BeNeLux 2017 mag je dit jaar niet missen. 10 oktober 2017, zet het in je agenda! https://t.co/niY9UdK3Ov