Pentaho BI Server 3.5 installatie in CentOS 5.3


pentaho_logo(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.

  1. Download the Sun Java JDK from the Java SE Downloads page.
  2. 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:~$
  3. 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
  4. De Java pakketten installeren doen we als volgt:
    ./jdk-6u16-linux-i586.bin
    ./jre-6u16-linux-i586.bin

Sun Java valideren

  1. Check of er een andere Java pakketten geïnstalleerd zijn:
    yum info java*
  2. 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.
  3. Voer het commando java -version uit 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:
    screenshot2009092003
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/profile
Voeg de volgende twee regels toe aan het eind voor de export regel
export JAVA_HOME=/usr/java/jdk1.6.0_16
PATH=$PATH:$JAVA_HOME/bin

Sluit 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.

  1. Open het my.cnf bestand in vi:
    vi /etc/my.cnf
  2. 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
  3. Bewaar het bestand en sluit vi af.
  4. 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:

  1. Open de MySQL client:
    mysql -u root -p

    Paswoord is Pentaho!, zoals gespecificeerd in het hoofdstuk Root beveiligen.
  2. 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.
  3. 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;
  4. Om de wijzigingen te effectueren voeren we het commando FLUSH PRIVILEGES uit.
  5. 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.

  1. 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.
  2. 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.

  1. Open het bestand met vi:
    vi biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml
  2. 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>
  3. Bewaar het bestand en sluit vi.

Nu kunnen we de BI server remote benaderen.

Configureren /root/administration-console/resource/config/console.xml

  1. Open het bestand met vi:
    vi /root/administration-console/resource/config/console.xml
  2. 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>
  3. 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.

  1. Open het bestand met vi:
    vi /root/biserver-ce/pentaho-solutions/system/publisher-config.xml
  2. 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>
  3. 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:

  1. 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.
  2. Het script moet uitvoerbaar zijn:
    chmod +x /etc/init.d/pentaho
  3. 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.

  1. Open het bestand start-pentaho.sh met vi:
    vi /root/biserver-ce/start-pentaho.sh
  2. Voeg aan de CATALINA_OPTS variabele de optie -Djava.awt.headless=true toe

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.
screenshot2009092001
De Pentaho User Console is te benaderen via http://192.168.1.76:8080
screenshot2009092002

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-securitylevel en 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.


About these ads

12 reacties op “Pentaho BI Server 3.5 installatie in CentOS 5.3

  1. 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.

  2. 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

  3. 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/

  4. 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.”

Vragen, opmerkingen en meningen over dit artikel kan je hier kwijt:

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log Out / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log Out / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log Out / Bijwerken )

Verbinden met %s