Prepare your ‘Production’ Server
There are a few things we can do to our working server:
Usefull Changes
- Add your own logo
- Remove user selection login option
- Modify login screen text
- Increase connection timeout
- Increase memory limit for apache
- Set up a publishing password
- Change your passwords
- Remove warning messages.
Optional Activities
- Rename your Server and port if necesary
- Use a connection pool to avoid disconnection
- Move the database to other machine (not standard)
- Customize the BI server messages (rarely needed)
- Email account setup
- Automatic startup
- Additional notes
Not all of them are needed in your installation, choose which one you’ll use and which ones will be common in your developer and production server. Work up to that point and make a file system [folders] copy to deploy in your server machine. Continue the configuration on that server.
I come from a developer background where an additional quality server would be set up to test work in progress and deployment packages before releasing them into production but in BI I think that’s too much, the two environments are enough to avoid shooting yourself on the foot either by over-confidence, late hour distractions or human error.
In any case the backup policy of the servers should be independent. One for continuing operation depending on how fast a machine can be set up with the last data snapshot used. The other one is an incremental backup so you’ll won’t loose more than one or few day’s work.
To do the backup you shut down the DB and BI servers and copy the folders, just remember to set up the replacement machines with the same names. Or do a SQL backup with MySql Administrator or ‘Percona XtraBackup’ that can do a hot -operational- DB backup for your InnoDB tables (ISAM tables use a table locks). For the BI folder, copying the files are enough.
1. Add your own logo
To change the top-right image of ‘Pentaho’ overwrite the logo.png image in:
3.8 [152×60 pixels]: /Pentaho/biserver-ce/tomcat/webapps/pentaho/mantle/
3.9 [152×75 pixels]: /Pentaho/biserver-ce/tomcat/webapps/pentaho/mantle/themes/onyx/images and …/themes/slate/images
By the way, the login screen logo [224×94 pixels] in 3.9 is at:
/Pentaho/biserver-ce/tomcat/webapps/pentaho-style/images/login/logo.png
2. Remove user selection login option
If you have tested your users and your admin user and password (for authorization you’ll need Admin, Authenticated and ceo roles) you can hide the user selector from the login dialog. Edit the following XML file:
/Pentaho/biserver-ce/pentaho-solutions/system/pentaho.xml
and change the content from true to false:
3.8: <login-show-users-list>false</login-show-users-list> 3.9 and 3.10: <login-show-sample-users-hint>false</login-show-sample-users-hint>
3. Modify login screen text
Pentaho uses the first screen to present their product to new users. You might want to replace them with your project objectives, links for specific user manuals, tips, instructional videos*, news or local resources.
Specifically -I think- you’ll want to modify the scary text “Supplied free of charge with no support… no maintenance, no warranty” into something more conforting like “Pentaho Open Source Enterprise Quality Software supported by [use your contact data]”.
You can use the ‘Komposer’ editor to easily modify the text in:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/jsp/PUCLogin.jsp
* For screencast videos I recomend wink (windows freeware) it produces flash files. Or if you are adventurous, use services with text-to-speach characters like http://www.xtranormal.com or http://goanimate.com/, short videos are great for instructional guides.
This has been fixed, this is no longer needed
[Edit: In 3.9 4.0 this file should be edited to remove the demo users to apear if you click on the Evaluation Login link. Search for joe, and remove the following text (strikedthrough) and replace de text striked and bold like this:
<tr> <td style=”font-size: .8em;”> <strong>Administrator</strong><br> User Name: joe<br> Password: password</td> <td style=”font-size: .8em;”> <strong>Business User</strong><br> User Name: suzy<br> Password: password</td>
</tr> <tr> <td colspan=”3″ style=”padding: 4px 20px 0 0; font-size: .8em;”> <a href=”http://www.pentaho.com/helpmeout/” target=”_blank”>Request free evaluation support.</a> <img src=”/pentaho-style/images/login/help_link.png” width=”20″ height=”20″ align=”absbottom”> </td> <td style=”font-size: .8em;”>Contact [your data] for user accounts and support </td> </tr>
4. Increase connection timeout
The default browser session connection time out is 30 minutes, you can change that modifying the file:
/Pentaho/biserver-ce/tomcat/conf/web.xml
The unit is in minutes so for 3 hours set it to:
<session-timeout>180</session-timeout>
and also with the same xml tag in:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml
5. Increase memory limit for apache
This activity was a must in previous versions, but now the parameters are ok. Anyway if you want to play with the variable -I havent found benchmarks on it- you can edit:
/Pentaho/biserver-ce/start-pentaho.sh
set memory minimum (Xms) and maximum (Xmx) in tomcat, for example: -Xms516m -Xmx1024m
CATALINA_OPTS="-Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
6. Set up a publishing password
On future articles we’ll be saving queries, metada or OLAP models into the production web server. But you need to set the ‘publishing password’. In the file:
/Pentaho/biserver-ce/pentaho-solutions/system/publisher_config.xml
type a password:
<publisher-password>[your-password]</publisher-password>
7. Change your passwords
There are several steps for this to work:
- Set up a new user as administrator.
– Start PAC (administrator console).
– Add Admin and ceo roles to your selected user. - Stop PAC and the BI server.
- Change the database passwords.
– Enter theMySql administrator
– Change the passwords for: pentaho_admin, pentaho_user and hibuser. - Re-edit the following files with the new passwords:
– hibuser password in:
/Pentaho/biserver-ce/pentaho-solutions/system/hibernate/
mysql5.hibernate.cfg.xml
-All user’s passwords in:
/Pentaho/biserver-ce/pentaho-solutions/system/simple-jndi/
jdbc.properties
– hibuser password in:
/Pentaho/biserver-ce/pentaho-solutions/system/
applicationContext-spring-security-jdbc.xml
and (tanks to Raul Chavarría and mahamood notes):
/Pentaho/biserver-ce/pentaho-solutions/system/
applicationContext-spring-security-hibernate.properties
– hibuser and pentaho_user passwords in this identical files:
/Pentaho/biserver-ce/tomcat/conf/Catalina/localhost/pentaho.xml
/Pentaho/biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml - Edit the URL tag and change joe and password to your new user and password in
<URL>…userid=joe&password=password</URL> in the file:
/Pentaho/biserver-ce/pentaho-solutions/system/olap/datasources.xml - There are some examples (.xaction files)… but check them as you click on them and they report errors.
- Reset the server and test.
- In the PAC delete the demo users: joe, pat, suzy, tiffany
8. Remove warning messages
In 3.9.stable and up the OLAP results of jpivot shows a warning about being deprecated in favor of the new PAT OLAP browser:
JPivot has been replaced by Pentaho Analyzer.
It is provided as a convenience but will no longer be enhanced or offically supported by Pentaho.
and I think it will not be appreciated by your users. As it is really not true that PAT has all jpivot needed functionallity, not yet you can eliminate it with a CSS tag in:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/adhoc/styles/
there are two files: jpivot.css y jpivotIE6.css.You need to add this at the bottom:
#deprecatedWarning { display: none; }
In the query tool WAQR, there is also a message to remove
In the file adhoc.css at the bottom add:
#waqrDeprecatedAlert { display: none; }
9. Rename your Server (and Port if necesary)
Your ‘localhost’ url must be changed so it can be reached from any computer in your network. Use your machine name as its already mapped on the network.
The default port is 8080 that’s a port for web development so it is probably used on a server, check with your system administrator for a free port or take the next one available like the enterprise edition does. If its a new machine you can leave it as it is.
The same files and lines are used to change the server name and port. The most important one is the tomcat (or web application server) services definition file:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml
search for ‘localhost’ and modify [your server]:[your port] like BISERVER1:8086
<param-name>fully-qualified-server-url</param-name>
<param-value>http://BISERVER1:8086/pentaho/</param-value>
now that we are in this file we’ll add the IP address from the machines will be connecting from the administration console, use a comma separated list:
<param-name>TrustedIpAddrs</param-name>
<param-value>[your.own.pcs.ip]<param-value>
save it and edit:
/Pentaho/biserver-ce/tomcat/conf/server.xml
First change the port (On 3.9 4.0):
<Connector URIEncoding=”UTF-8″ port=”8086” protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
then the server:
<Engine name=”Catalina” defaultHost=”BISERVER1“>
<Host name=”BISERVER1” appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
Some other files may need to be edited depending if you’re puting services in diferent machines but if they remain in your server localhost will be ok, for example, the OLAP services will work with localhost in:
/Pentaho/biserver-ce/pentaho-solutions/system/olap/datasources.xml
but if you changed the port you’ll need to change it to [your-server]:[your-port] like:
<URL>http://biserver1:8086/…
[Edit with the Saiku update this is no longer necesary]
If you installed saiku then edit also:
/Pentaho/biserver-ce/tomcat/webapps/saiku/WEB-INF/web.xml
There are other files to modify if you change the localhost-port but depend on each service. Like the metadata.mxi from the schema editor, it will be mentiones on its own post.
10. Use a connection pool
For running an uninterrupted service or inclusive for more than 8 hours you might want to use a connection pool manager that adds more advantages than just maintaining an open connection to MySQL at all times.
In the Pentaho forum they recommended c3p0 as a connection pool. So download the file
c3p0-0.9.1.2.jar
and put it into library folders:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/WEB-INF/lib
/Pentaho/biserver/administration-console/lib
And add this lines:
<!– connection pool–>
<property name=”connection.provider_class”>org.hibernate.connection.C3P0ConnectionProvider</property>
<property name=”hibernate.cp3p0.acquire_increment”>3</property>
<property name=”hibernate.cp3p0.idle_test_period”>10</property>
<property name=”hibernate.cp3p0.min_size”>5</property>
<property name=”hibernate.cp3p0.max_size”>75</property>
<property name=”hibernate.cp3p0.max_statements”>0</property>
<property name=”hibernate.cp3p0.timeout”>25200</property>
<property name=”hibernate.cp3p0.preferredTestQuery”>Select 1</property>
<property name=”hibernate.cp3p0.testConnectionOnCheckout”>true</property>
<property name=”hibernate.c3p0.acquireRetryAttempts”>30</property>
<property name=”hibernate.c3p0.acquireIncrement”>5</property>
<property name=”hibernate.c3p0.idleConnectionTestPeriod”>300</property>
to your hibernate connection file in:
/Pentaho/biserver-ce/pentaho-solutions/system/hibernate/mysql5.hibernate.cfg.xml
just at the top, after the tag <session-factory>. Restart your server.
11. If you’ll move the database to other machine
Update your server and ports, users and password on:
/Pentaho/biserver-ce/pentaho-solutions/system/olap/datasources.xml
/Pentaho/biserver-ce/pentaho-solutions/system/simple-jndi/jdbc.properties
Change your strings [new-server]:[new-port]
12. If you’ll need to customize the BI server messages
Some messages in the BI server (console app) can be easily changed in case you’ll need more personalized texts. There is an excelent blog article from Prashant Raju.
The tooltip description of every program can be set with the .properties file:
/Pentaho/biserver-ce/pentaho-solutions/index.properties
Even if you’ll want to edit every message you can do it in:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/mantle/messages/messages.properties
/Pentaho/biserver-ce/tomcat/webapps/pentaho/mantleLogin/messages/ MantleLoginMessages.properties
Remember that every language has its sufix, for example the spanish files are ‘_es’ like messages_es.properties. And if you’re using special caracters you better make sure youre saving in UTF-8 coding (editor scren when you save).
13. Email account setup
The BI server can use a mail server if you have one set up already but in case you don’t get authorization to connect to it you can always send mail from the automated processes (ETL) using your mail acount. This is how I did it and we’ll review it with PDI.
The setup for the server is easy, if you know some parameters from your email server. Edit
/Pentaho/biserver-ce/pentaho-solutions/system/smtp-email/email_config.xml
Put your data in:
<mail.smtp.host>[your.mail.ip.address]<mail.smtp.host>
<mail.userid>[your-user]</mail.userid>
<mail.password>[your-password]</mail.password>
We’ll test it with the pentaho designer,
14. Automatic startup
The correct way to do this is adding a user and group with a perfect defined user account, make scripts and placing them on the correct folders.
The fast track is based on the pentaho wiki like:
- Edit a file in a terminal/command window, type:
sudo gedit /etc/init.d/pentaho - Add this text (Important: Don’t forget to use YOUR user folder):
case “$1” in
start)
/home/[your-user]/Pentaho/biserver-ce/start-pentaho.sh > /tmp/pentaho.out
;;
stop)
home/[your-user]/Pentaho/biserver-ce/stop-pentaho.sh
;;
esac
exit 0 - Save and exit. Then make the file executable:
sudo chmod +x /etc/init.d/pentaho - update the boot scripts
sudo update-rc.d pentaho defaults
You can restart your server.
Note: How to set up a tomcat pentaho windows service:
- Open a terminal window as administrator.
Click on start on exec, type cmd, right click on list, select run as admin - Change folder to your pentaho-tomcat excecutables:
C:\Pentaho\biserver-ce\tomcat\bin - Register the service:
tomcat6.exe //IS//Tomcat6 –DisplayName=”PentahoBIServer” - Start the configuration application:
tomcat6w //ES//PentahoBIServer - On ‘Log On’ tab, select the windows user you used for the instalation or use another one that has ownership of the folder as some temporal files requires it.
- On ‘java’ tab tipe:
- Virtual machine:
C:\Program Files\Java\jdk1.6.0_25\jre\bin\server\jvm.dll
Classpath:
C:\Pentaho\biserver-ce\tomcat\bin\bootstrap.jar CD:\Pentaho\biserver-ce\tomcat\bin\tomcat-juli.jar - On ‘java options’
a. type (use your path):
-Dcatalina.base=C:\Pentaho\biserver-ce\tomcat -Dcatalina.home=C:\Pentaho\biserver-ce\tomcat -Djava.endorsed.dirs=C:\Pentaho\biserver-ce\tomcat\endorsed -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.io.tmpdir=C:\Pentaho\biserver-ce\tomcat\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Pentaho\biserver-ce\tomcat\conf\logging.properties
b. Initial memory pool: 512
c. For max memory pool: 1024
d. Thread stack size: 64 - On ‘startup’ tab:
a. Class: org.apache.catalina.startup.Bootstrap
b. Arguments: start
c. Mode: jvm - On ‘shutdown’ tab:
a. Class org.apache.catalina.startup.Bootstrap
b. Arguments stop
c. Mode jvm
- Virtual machine:
- Apply and close the application
- Use services.msc and change its properties to automatic start
- Restart your PC-Server
15. Additional Notes
A. There are some errors in the console or logs (/tomcat/logs/) that are not really important, but you can get rid of one (sooner or later someone is going to ask about them): To avoid the “WARNING: Security role name PENTAHO_ADMIN used in an <auth-constraint> without being defined in a <security-role>”. Add before the security-constraint tag in:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml
add
<security-role>
<description>security role</description>
<role-name>PENTAHO_ADMIN</role-name>
</security-role>
<security-constraint>
That’s it. If you know something else to add, please let me know.
hello Martinez
Sorry to bother you. One file seems to be left out from the list to be edited and hibuser new password added.
/Pentaho/biserver-ce/Pentaho-solutions/system/
applicationContext-spring-security-hibernate.properties
mahamood
Hi Francisco:
for 14, how do I include automatic startup on reboot for the admin console?
does /etc/init.d/pentaho have to be like this
case “$1″ in
start)
/opt/Pentaho/biserver-ce/start-pentaho.sh& > /tmp/pentaho.out
/opt/Pentaho/administration-console/start-pac.sh& > /tmp/pentaho_console.out
;;
stop)
/opt/Pentaho/biserver-ce/stop-pentaho.sh&
/opt/Pentaho/administration-console/stop-pac.sh&
;;
esac
exit 0
or does it have to be like this?
export JAVA_HOME=”/usr/lib/jvm/jdk1.7.0_02″
export JRE_HOME=”/usr/lib/jvm/jdk1.7.0_02/jre”
start(){
if [ “$1” == “adm” ];then
/opt/Pentaho/administration-console/start-pac.sh& > /tmp/pentaho_console.out 2>&1 &
else
/opt/Pentaho/biserver-ce/start-pentaho.sh& > /tmp/pentaho.out 2>&1
fi
}
stop(){
if [ “$1” == “adm” ];then
/opt/Pentaho/administration-console/stop-pac.sh&
else
/opt/Pentaho/biserver-ce/stop-pentaho.sh&
fi
}
case “$1” in
start)
start $2
;;
stop)
stop $2
;;
esac
exit 0
Also, before creating this file, are there any changes I need to make to start-pentaho.sh, start-pac.sh, stop-pentaho.sh and stop-pac.sh?
Both of the above are not working, please assist me.
Hi Rumbs.
The first option should work, just remove the ampersants:
.sh& >
to
.sh >
.
But I don’t run the console all the time. The schedule works without it and I dont create users or jobs all the time. It makes me feel safer to know its not up always
Hope it works.
Remove user selection login option , existing solution will not work , you need to edit the applicationContext-spring-security.xml at the end of the section like
Hi Anish,
Just wanted to say that the option mentioned in here ‘hides’ the select field with predefined users. That’s fine for the demo, not the production system.
You should delete those users from the database like explained on the second post of these series and configure the server accordingly.
To elaborate on point 10, using the c3p0 connection pool:
I had some issues with using the lates c3p0 release, c3p0-0.9.2-pre4.jar. Starting the biserver resulted in a listener error.
As it seems, the latest c3p0 release also needs an additional file added to the both directories:
/Pentaho/biserver-ce/tomcat/webapps/pentaho/WEB-INF/lib
/Pentaho/biserver/administration-console/lib
This file is mchange-commons-java-0.2.2.jar (with this release), and can be found in the same directory inside the c3p0 zip as the other jar file.
Adding this additional jar file resolved my issue, my biserver (4.5) is starting again.
Guido Legemaate, I havent tried that one.
I’ll try that one with the 4.8 CE as soon as its available and update the post.
Thanks
Francisco, I can confirm this now for 4.8 CE as well for the new c3p0 release.
I just finished migrating my server from 4.5 to 4.8, which booted fine. I then stopped the server, renamed the (additional) mchange-commons-java-0.2.2.jar file to mchange-commons-java-0.2.2.jar.backup in the biserver directory, and restarted the server. This immediately led to the often feared PentahoSystem.ERROR_0014 error. Renaming the file back to its original name immediately resulted in a working server again.
THANK you for this nice tutorial.
I changed the port of pentaho . refresh tomcat directory (work…) the pb is that the pentaho admin keep looking for the localhost:8080; I get the error HTTP 404 not found;
I can t use the service or the scheduler. Do you have any idea how to force the pentaho admin to look for the new port?
Thanks
Hi Soum, answering half a month later but check #5 post : https://interestingittips.wordpress.com/2011/06/05/complete-pentaho-installation-on-ubuntu-part-5/ for that port issue
Hi!
In section: ‘7. Change your passwords’
Add:
-hibuser password in:
biserver-ce/pentaho-solutions/system/applicationContext-spring-security-hibernate.properties
Or, you will have the error ‘Access denied for user ‘hibuser’@’localhost’ (using password: YES)’
Thanks Raul, I will modify the article you and Mahamud have kindly commented on.
Pingback: Pentaho CE 4.8 – BI Server Update | Interesting IT Tip's
how to get username on launch page of pentaho. i.e. whose user login on the pentaho
Hi ,
Pl share the window based pentaho bi server configuration using my sql database .
Hi Francisco,
Beware with the changes in “start-pentaho.sh” and point 5 increasing the memory, because sometimes Tomcat don’t recognize the modification. In the logs files you can read:
27-feb-2014 10:31:18 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: The web application [/pentaho] registered the JBDC driver [mondrian.olap4j.MondrianOlap4jDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Do a backup of the sh before changed, and if you get this error, recover that file and everything will work fine.
Juanjo,
You’re right about being carefull with memory allocation in tomcat.
Specially if you’re not running an 64 bit OS with lots of RAM.
And I agree with you about making a backup of the files you modify.
But the error you mention seems more about startup/shutdown configuration, not shure
I am trying to perform step number 7,
where I can find the datasources.xml file in /Pentaho/biserver-ce/pentaho-solutions/system/olap/datasources.xml
I don’t see it in the BI Server C.E 5.0.1.
Thanks,
Ron
Ronaldlee,
This notes apply to version 3.8 up to 4.8. on 5.x.
Some of them still apply but the datasources you are looking for are now on the JCR repository.
Im just about to sort out all the notes made while installing and testing 5.01 and to publish just the important steps.
If you’re strating I wouln’t learn about the old Pentaho they are changing it faster than ever.