(Laatst bijgewerkt op 4 oktober 2009; zie onderaan artikel voor meer informatie)
Deze handleiding beschrijft het installeren van Pentaho BI Server 3.5 in CentOS 5.3. Pentaho is een open source business intelligence suite. In mijn opzet blijft Pentaho standaard hibernate gebruiken voor zijn repository en onze eigen databases zullen worden opgeslagen in MySQL. Reden voor het blijven hanteren van hibernate is dat bij een upgrade naar een nieuwe versie je de Pentaho repository niet hoeft om te zetten en/of te upgraden naar een andere database. Zeker als de lay-out van de repository is gewijzigd, kan dit veel werk zijn.
Hoe je CentOS 5.3 inclusief MySQL moet installeren kan je lezen in mijn artikel CentOS 5.3 server installatie in VirtualBox 3.0. Dit artikel is natuurlijk ook goed te gebruiken als je CentOS niet in een virtuele machine wilt installeren.
Het volgende wordt uitgelegd:
- Java
- Het installeren van Sun Java JDK en JRE
- Het valideren of de Sun Java configuratie
- MySQL
- Het valideren van de MySQL setup
- Het configureren van MySQL voor remote toegang
- Het toegang geven van gebruikers tot MySQL
- Het automatisch starten van MySQL
- Pentaho BI Server
- Het installeren van de Pentaho BI Server
- Het configureren van de Pentaho Server voor remote toegang
- Het automatisch starten van Pentaho
Ik gebruik de volgende IP-adressen in dit artikel:
- Pentaho Server machine: 192.168.1.76
- Pentaho client: 192.168.1.77
Verder wordt verondersteld dat je de vi-editor kent. Zo niet dan kun je ook nano gebruiken in plaats van vi.
1. Java
Java JDK en JRE installeren
Pentaho is ontwikkeld in Java. We gaan Sun Java JDK en JRE installeren voordat we Pentaho zelf gaan installeren.
- Download the Sun Java JDK from the Java SE Downloads page.
- Kopieer de JDK en JRE (met behulp van sFTP) naar de root folder van CentOS. We doen dit als volgt (ik ga uit van 6u16; dit is versie 1.6.0_16) :
leo@gandalf:~$ sftp root@192.168.1.76
Connecting to 192.168.1.76...
root@192.168.1.76's password:
sftp> put /home/leo/Bureaublad/jre-6u16-linux-i586-rpm.bin /root
Uploading /home/leo/Bureaublad/jre-6u16-linux-i586-rpm.bin to /root/jre-6u16-linux-i586-rpm.bin
/home/leo/Bureaublad/jre-6u16-linux-i586-rpm. 100% 19MB 19.4MB/s 00:01
sftp> put /home/leo/Bureaublad/jdk-6u16-linux-i586-rpm.bin /root
Uploading /home/leo/Bureaublad/jdk-6u16-linux-i586-rpm.bin to /root/jdk-6u16-linux-i586-rpm.bin
/home/leo/Bureaublad/jdk-6u16-linux-i586-rpm. 100% 74MB 18.5MB/s 00:04
sftp>quit
quit
leo@gandalf:~$ - In CentOS als root in /root maken we de gedownloade Java pakketten uitvoerbaar:
chmod +x jdk-6u16-linux-i586.bin
chmod +x jre-6u16-linux-i586.bin - De Java pakketten installeren doen we als volgt:
./jdk-6u16-linux-i586.bin
./jre-6u16-linux-i586.bin
Sun Java valideren
- Check of er een andere Java pakketten geïnstalleerd zijn:
yum info java* - Controleer de uitvoer op Repo: installed
Als er naast Sun andere Java pakketten zijn geïnstalleerd, dan kan je deze de-installeren. PAS OP voor afhankelijkheden. Als er afhankelijkheden zijn dan wil je deze niet de-installeren.Om toch de Sun Java te activeren als standaard Java, kan je het alternatives programma gebruiken. Voer de twee volgende commando’s uit:
/usr/sbin/alternatives --install /usr/bin/java java <Sun Java pad> 2, waarbij <Sun Java pad> vaak /usr/java/jdk1.6.0_16/jre/bin/java (let op de versie) is en 2 is de prioriteit
/usr/sbin/alternatives --config java
en kies de optie waar de Sun Java bij staat om deze als standaard te gaan beschouwen. - Voer het commando
java -versionuit om te controleren of Sun het standaard Java pakket is.
Je moet hier nu de Sun Java pakketten zien, zoals hier onder te zien is:

| Java systeemvariabelenHet volgende is OPTIONEEL als je pentaho niet automatisch start bij starten van computer. Om Java te kunnen gebruiken moeten de variabelen JAVA_HOME en PATH worden aangepast in het systeemwijde profile-bestand. vi /etc/profileVoeg de volgende twee regels toe aan het eind voor de export regel export JAVA_HOME=/usr/java/jdk1.6.0_16Sluit vi en bewaar het bestand. |
2. MySQL
MySQL setup valideren
Voer in CentOS op de commandoregel mysql -u root uit. Als je in de MySQL client komt dan is het goed. Als je de foutmelding Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock krijgt, dan is hoogstwaarschijnlijk de MySQL niet gestart. Om MySQL te starten voer je het commando service mysqld start uit.
Root beveiligen
Nu gaan we een wachtwoord toevoegen aan root met behulp van het commando mysqladmin -u root password Pentaho! zodat niemand gebruik kan maken van root zonder een wachtwoord op te geven. Root heeft namelijk alle rechten.
De volgende keren moet je inloggen met mysql als mysql -u root -p.
MySQL remote toegang configureren
Om MySQL remote te kunnen benaderen moeten we het MySQL’s configuratiebestand (/etc/my.cnf) aanpassen. We gaan de MySQL service aan het server IP-adres binden.
- Open het my.cnf bestand in vi:
vi /etc/my.cnf - Ga in het bestand op zoek naar de sectie [mysqld] en zoek de regel:
bind-address=127.0.0.1
Vervang 127.0.0.1 in de regel door het IP-adres van de server.
Als deze regel er niet is dan kan je deze gewoon toevoegen aan het eind van de sectie [mysqld].
bind-address=192.168.1.76 - Bewaar het bestand en sluit vi af.
- Herstart de MySQL service van af de commandoregel:
service mysqld restart
Gebruikers toegang geven tot MySQL
We gaan twee gebruikers toegang geven tot MySQL, de gebruiker root die de MySQL server lokaal vanaf de CentOS server gaat benaderen en een gebruiker die MySQL remote gaat benaderen:
- Open de MySQL client:
mysql -u root -p
Paswoord is Pentaho!, zoals gespecificeerd in het hoofdstuk Root beveiligen. - Nu gaan we de gebruiker root toegang geven voor het MySQL server IP-adres:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.76' IDENTIFIED BY 'Pentaho!' WITH GRANT OPTION;
Dit is dus de gebruiker die we in alle Pentaho BI Server configuratiebestanden gaan gebruiken. - De volgende gebruiker die we toegang gaan geven is de remote gebruiker. De gebruiker die toegang wil hebben tot de database vanuit bijvoorbeeld Pentaho Report Designer of de MySQL Administrator client. We noemen deze gebruiker pentaho1.
GRANT ALL PRIVILEGES ON *.* TO 'pentaho1'@'192.168.1.77' IDENTIFIED BY 'pentaho' WITH GRANT OPTION; - Om de wijzigingen te effectueren voeren we het commando
FLUSH PRIVILEGESuit. - Nu kunnen we uitloggen:
exit
Als je een firewall gebruikt moet je poort 3306, waarop MySQL luistert, openzetten. Dit doe je in je modem/router of in de server als je iptables gebruikt. Voor iptables voer je het volgende commando uit: /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
MySQL automatisch starten bij starten computer
Als laatste moeten we er voor zorgen dat MySQL automatisch gestart wordt bij het starten van de computer. Dit doen we met de volgende twee commando’s:
chkconfig --add mysqld
chkconfig --levels 235 mysqld on
3. Pentaho BI Server
Pentaho BI Server installeren
Eerst moeten we de Pentaho BI Server downloaden.
- Voer daarvoor in CentOS als root in de /root folder het volgende commando uit:
wget http://downloads.sourceforge.net/project/pentaho/Business%20Intelligence%20Server/3.5.0-RC2/biserver-ce-3.5.0.RC2.tar.gz
Een alternatief is het bestand van de website te downloaden en dan via sFTP als volgt naar de server te kopiëren:
leo@gandalf:~$ sftp root@192.168.1.76
Connecting to 192.168.1.76...
root@192.168.1.76's password:
sftp>put <locatie download>/biserver-ce-3.5.0.RC2.tar.gz /root
waarbij <locatie download> de folder op je client computer, waarin je het gedownloade bestand gezet hebt, is. - Nu gaan we het bestand biserver-ce-3.5.0.RC2.tar.gz uitpakken:
tar xvzf biserver-ce-3.5.0.RC2.tar.gz
Er is nu een /root/biserver-ce folder aangemaakt met de start en stop script voor Pentaho. Start Pentaho nu nog niet op. We doen dat later.
Pentaho Bi Server configureren
De standaard configuratie is dat de Pentaho BI Server lokaal benaderd kan worden. Wij willen deze graag remote benaderen en moeten daarom de volgende bestanden wijzigen:
- web.xml van tomcat
- console.xml van de administrator
- publisher-config.xml
Configureren biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml
Het biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml bestand configureert alle .JSP en verscheidene andere Pentaho bestanden.
- Open het bestand met vi:
vi biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml - Vervang de volgende gedeelten door:
Te vervangen gedeelte…<context-param> <param-name>solution-path</param-name> <param-value></param-value> </context-param>
…vervangen door
/root/biserver-ce/pentaho-solutions/</param-value> </context-param>
Te vervangen gedeelte…
<context-param> <param-name>base-url</param-name> <param-value>http://localhost:8080/pentaho/</param-value> </context-param>
…vervangen door
<context-param> <param-name>base-url</param-name> <param-value>http://192.168.1.76:8080/pentaho/</param-value> </context-param>Te vervangen gedeelte…
<filter> <filter-name>Proxy Trusting Filter</filter-name> <filter-class>org.pentaho.platform.web.http.filters.ProxyTrustingFilter</filter-class> <init-param> <param-name>TrustedIpAddrs</param-name> <param-value>127.0.0.1</param-value> <description>Comma separated list of IP addresses of a trusted hosts.</description> </init-param> </filter>
…vervangen door
<filter> <filter-name>Proxy Trusting Filter</filter-name> <filter-class>org.pentaho.platform.web.http.filters.ProxyTrustingFilter</filter-class> <init-param> <param-name>TrustedIpAddrs</param-name> <param-value>127.0.0.1,192.168.1.75,192.168.1.76</param-value> <description>Comma separated list of IP addresses of a trusted hosts.</description> </init-param> </filter> - Bewaar het bestand en sluit vi.
Nu kunnen we de BI server remote benaderen.
Configureren /root/administration-console/resource/config/console.xml
- Open het bestand met vi:
vi /root/administration-console/resource/config/console.xml - Vervang het hele bestand.
Te vervangen gedeelte…<?xml version="1.0" encoding="UTF-8"?> <console> <solution-path></solution-path> <war-path></war-path> <platform-username>joe</platform-username> <biserver-status-check-period-millis>30000</biserver-status-check-period-millis> <homepage-url>http://www.pentaho.com/console_home</homepage-url> <homepage-timeout-millis>15000</homepage-timeout-millis> <!-- comma separated list of roles (no spaces) --> <default-roles>Authenticated</default-roles> </console>
…vervangen door
<?xml version="1.0" encoding="UTF-8"?> <console> <solution-path>/root/biserver-ce/pentaho-solutions/</solution-path> <war-path>/root/biserver-ce/tomcat/webapps/pentaho/</war-path> <platform-username>admin</platform-username> <biserver-status-check-period-millis>30000</biserver-status-check-period-millis> <homepage-url>http://www.pentaho.com/console_home</homepage-url> <homepage-timeout-millis>15000</homepage-timeout-millis> <!-- comma separated list of roles (no spaces) --> <default-roles>Authenticated</default-roles> </console>
- Bewaar het bestand en sluit vi.
Configureren biserver-ce/pentaho-solutions/system/publisher-config.xml
Het publisher-config.xml bestand bevat het publisher paswoord om vanuit bijvoorbeeld de Pentaho Report Designer rapporten te kunnen publiceren.
- Open het bestand met vi:
vi /root/biserver-ce/pentaho-solutions/system/publisher-config.xml - Vervang het volgende gedeelte door
Te vervangen gedeelte…<publisher-config> <publisher-password></publisher-password> </publisher-config>
…vervangen door
<publisher-config> <publisher-password>pentaho</publisher-password> </publisher-config> - Bewaar het bestand en sluit vi.
Pentaho automatisch starten bij starten van de computer
Handig is om Pentaho automatisch te starten bij het starten van de computer. Om dit mogelijk te maken moeten we een init.d script maken:
- Open het bestand met vi:
vi /etc/init.d/pentaho
en voeg de volgende tekst toe:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: start-pentaho stop-pentaho
# Required-Start: networking mysqld
# Required-Stop: mysqld
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Pentaho BI Platform
### END INIT INFO
export JAVA_HOME="/usr/java/jdk1.6.0_16"
export JRE_HOME="/usr/java/jre1.6.0_16"
case "$1" in
'start')
cd /root/biserver-ce
/root/biserver-ce/start-pentaho.sh &
cd /root/administration-console
/root/administration-console/start.sh &
;;
'stop')
cd /root/biserver-ce
/root/biserver-ce/stop-pentaho.sh &
cd /root/administration-console
/root/administration-console/stop.sh &
;;
*)
echo "Usage: $0 { start | stop }"
;;esac
# /java achter /bin aan pad toegevoegd voor versie 3.5
export PATH=$PATH:$JAVA_HOME/bin/java
exit 0
De INIT INFO is nodig voor chkconfig. Het is belangrijk dat Pentaho start nadat mysqld is gestart, anders kan je mysql niet meer starten. - Het script moet uitvoerbaar zijn:
chmod +x /etc/init.d/pentaho - Als laatste moet het script aan de systeem startup en shutdown runlevels toevoegen:
chkconfig --add pentaho
Pentaho starten in een headless server
Een headless server is een server die geen monitor, toetsenbord, muis en soms ook geen videokaart heeft. Heb je geen videokaart dan moet je wel Xvfb geïnstalleerd hebben voor het presenteren van grafieken in de rapportage.
Als je dus een headless server hebt, dan moet de je Pentaho server een headless optie meegeven.
- Open het bestand start-pentaho.sh met vi:
vi /root/biserver-ce/start-pentaho.sh - Voeg aan de CATALINA_OPTS variabele de optie
-Djava.awt.headless=truetoe
Pentaho User Console en Administrator Console
De Pentaho BI Server en de Administrator Console worden nu automatisch gestart tijden het starten van de computer en automatisch gestopt bij het uitzetten van de computer.
De Pentaho Administration Console is te benaderen via http://912.168.1.76:8099 . Login is admin; paswoord=password.

De Pentaho User Console is te benaderen via http://192.168.1.76:8080

Als je geen connectie krijgt dan kan het zijn dat de firewall op CentOS actief. Je hebt twee mogelijkheden:
- De firewall uitzetten: doe dit alleen als je een andere firewall actief hebt. Bijvoorbeeld op je modem/router. De firewall in CentOS kan je uitschakelen met behulp van het commando
system-config-securitylevel. - De poorten 8080 en 8099 openzetten. Ook hier gebruik je
system-config-securitylevelen klik dan op de customize button.
Optioneel: Je kan alle gedownloade bestanden naar een aparte donwload folder verplaatsen.
Herrstart je computer en MySQL en Pentaho zullen nu automatisch gestart worden.
Wijziging 4 oktober 2009: java optie voor headless server toegevoegd.
Hoi Leo, erg interessant artikel, ik ben toevallig bezig met een BI implementatie. Toch loop ik tegen een probleem in jouw beschrijving: waar vandaar kom volgende path:
/root/administration-console/resource/config/console.xml
Ik heb clean install van CentOS en die path bestaat niet.
Hoi Darek, die folder staat in CentOS als je het biserver-ce-3.5.0.RC2.tar.gz bestand in de root folder uitpakt.
Hi Leo!
dit ziet er prima uit! Dankjewel voor deze prima installatie aanwijzingen.
Nog een extra tip bij het pentaho opstartscript: op een typische server omgeving waar bijvoorbeeld geen X server draait, moet je het java commando de headless optie meegeven. Zie http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/
Roland Bouman
http://rpbouman.blogspot.com/
Auteur van “Pentaho Solutions” (ISBN: 978-0-470-48432-6)
Hoi Roland, Dank voor je compliment. Ik zal het artikel aanpassen n.a.v. je opmerking.
Erg interressant stuk. Ben er zelf nu ook mee bezig. Had eerst 3.0 geinstalleerd en halverwege zag ik dat 3.5 er ook was. Wil nu overgaan naar 3.5 en zag jouw stuk…
Ik ga er trouwens van uit dat je bezig bent met versie 3.5 en niet met 3.0
quote:
Nu gaan we het bestand biserver-ce-3.5.0.RC2.tar.gz uitpakken:
tar xvzf biserver-ce-3.0.0-STABLE.tar.gz
Je hebt gelijk: dat is een foutje….ik zal het herstellen. Dank voor de terugkoppeling.
Hallo Leo,
Volgens mij mis ik een paar configuratie aanpassingen in de Pentaho configuratie bestanden waarmee je de koppeling aangeeft met MySQL in laats van de default hsqldb configuratie.
Kun je in deze blog toevoegen wat je hiervoor hebt moeten aanpassen?
// Ben zelf aan het prototypen met Pentaho CE 3.5.2
// Wanneer ik zoek naar Pentaho MySQL configuratie / howto kom ik telkens uit op een website van ene ‘prashantraju’.
// Alleen is die website uit de lucht, dus kom helaas niet verder.
// Beste info tot nu toe, is van de onderstaande site, maar ook deze setup heb ik nog niet aan de praat:
http://blog.theunical.com/java/osbi-%C2%BB-blog-archive-%C2%BB-how-to-manually-install-configure-pentaho/
Alles wat nodig is om te installeren of te veranderen is beschreven. Wil je de hsqldb voor de Pentaho repository vervangen door MySQL? Zo ja, zie dan de eerste alinea waarom ik dat niet gedaan heb.
PS de site van Prashantraju ligt er niet uit (althans niet meer dan). Ik kom er gewoon bij.
Hierbij een rechtstreekse link naar het document: https://docs.google.com/Doc?docid=0AdJmocc0fj_EZDJ3YmZiZF83M2RtaHhwcmRk&hl=en
Bij het document hoort ook een zipbestand met scripts: http://docs.google.com/leaf?id=0B9Jmocc0fj_EN2MyZjc4ZjEtNzFkNC00NzIzLTljZTctZjIzZWQ1NjU3MzJk&hl=en
1) Goede tip voor de repository, had ik overheen gelezen :S
2) Via de Pentaho Wiki en Google kwam ik telkens uit op http://www.Prashantraju.com.
Hij heeft deze informatie blijkbaar verplaatst.
Kortom, THANX!!, je hebt me weer op weg geholpen!
Beste Leo,
Volgende vraag :
Bij beschrijving van configuratie server wordt de context.xml niet genoemd.
Als er Mysql gebruik wordt in een BSD omgeving, dan zouden de driverClassName, URL en validationQuery toch gewijzigd moeten worden. Zo staat het ook in het boek vna Pentaho Solutions van Bouwman en van Dongen
Met vriendelijke groet,
KC Chan
Hoi KC, Je hoeft (voor zover ik weet) context.xml alleen maar aan te passen als je hibernate niet als de repository database wilt gebruiken en aan het begin van het artikel heb ik geschreven “In mijn opzet blijft Pentaho standaard hibernate gebruiken voor zijn repository en onze eigen databases zullen worden opgeslagen in MySQL.”
Beste Leo, bedankt voor de toelichting.
KC