onsdag, juni 15, 2011

Configure Oracle Beehive with Barracuda Loadbalancer

Oracle / F5 provides instructions for configuring Beehive with BIG-IP, however for other loadbalancers the information is very limited. As we use Barracuda loadbalancer at our site, we had to set this up. In case someone else is using this setup, this might help a bit.

I will assume that you have your Barracuda loadbalancer up & running, so I will not go into details about that. Also, as we do SSL offloading in the loadbalancer these instructions assumes that you have your certificate uploaded to the loadbalancer. To do SSL offloading in the loadbalancer was recommended to us by Oracle as doing this on the Beehive servers will consume a significant amount of resources.

The actual setup of Beehive in Barracuda is then quite straightforward, start by creating separate service for each of the Beehive services. That means one service each for HTTP, IMAP, SMTP, XMPP and BTP.

Note that you cannot do SSL offloading in the loadbalancer for the XMPP service. For this service you will have to terminate the SSL in your Beehive node, using the instructions provided in the Beehive documentation for XMPP. We had a SR running with Oracle Support for a while until they could confirm that it wasn't possible. In the end we decided not to use the Barracuda for XMPP, instead we routed the traffic directly to one of our Beehive nodes.

The Barracuda services should then be configured as follows:

  • HTTP as a 'Layer 7 - HTTP' service
  • IMAP as a 'TCP Proxy' service
  • SMTP as a 'TCP Proxy' service
  • BTP as a 'TCP Proxy' service

In each of the services you will need to enable SSL Offloading as this options default to 'No'. Apart from that, you could basically use the default options from the Barracuda. For the HTTP service you probably also want to consider the 'Send traffic to Last Resort Server' that will direct any HTTP request to a web server that will display some information in case Beehive for some reason becomes unavailable.

To summarize, the setup of Oracle Beehive with Barracuda loadbalancer is a quite simple & straightforward, we did not encounter any particular issues during the setup, with the exception of the XMPP issue.

onsdag, januari 26, 2011

Using op5 (Nagios) for Beehive Monitoring

In addition to using Enterprise Manager we also use op5, a Nagios based monitoring software. So, naturally I wanted to be able to monitor some of the Beehive services using this tool as well as Enterprise Manger. What I initially wanted to know was basically if the OC4J containers in Beehive were up and running or not. As op5 uses the standard NRPE (Nagios Remote Plugin Executor) agent in order to perform the monitoring, the task wasn't that hard to accomplish.

The first (and basically only issue) was that I couldn't find and good NRPE plugins to use to perform the monitoring with. The standard check_procs plugin couldn't be used as I did not find any ways to distinguish between the different OC4J processes using this plugin. Well, this wasn't a big issue as you basically can use any given script as a NRPE plugin. So, I quickly created a script that would allow me to count the # of processes for the different OC4J containers, not the prettiest solution, but it does the job.

Here is the script:
#!/bin/bash

OK_PROCESSES="4"
PROC_NAME="BEEAPP"

while getopts "o:N:" optionName; do
case "${optionName}" in
"o") OK_PROCESSES="${OPTARG}";;
"N") PROC_NAME="${OPTARG}";;
esac
done

CURRENT_PROCESSES=`ps -ef | grep ${PROC_NAME} | grep -v bash | grep -v grep | wc -l`

if [[ ${CURRENT_PROCESSES} -eq ${OK_PROCESSES} ]]; then
echo "${PROC_NAME} OK: ${CURRENT_PROCESSES} processes"
exit 0
else
echo "${PROC_NAME} ERROR: incorrect number of processes: ${CURRENT_PROCESSES}"
exit 2
fi

Once the script was in place I could continue to configure op5 to use these lines for the monitoring:
command[bee_core]=/opt/plugins/check_beehive -o 2 -N BEECORE
command[bee_mgmt]=/opt/plugins/check_beehive -o 1 -N BEEMGMT
command[bee_app]=/opt/plugins/check_beehive -o 4 -N BEEAPP
command[bee_client]=/opt/plugins/check_beehive -o 4 -N BEECLIENT
command[bee_soa]=/opt/plugins/check_beehive -o 1 -N oc4j_soa


And finally I just had to add these commands as services in op5 (as check_nrpe services) and the monitoring was up & running.

torsdag, januari 20, 2011

Some Notes About the Help in the Oracle Zimbra Client

One thing that is a bit annoying in the Oracle Zimbra Client for Beehive is that the help that is included in the client is not modified to reflect that changes that has been made to the client from Oracle's side. Instead comes the Zimbra client with the standard Zimbra help and there are many things there that is likely to confuse your end users.

For example, it contains a section about "Instant Messaging Basics", but there is no instant messaging functions in the Oracle version of the Zimbra client. Some other things that are mentioned but not exists are Spell Check, Multiple signatures, Conversations, Zimlets and many more. As these things are mentioned but non existent will most likely confuse you end users.

So what we have done is instead written our own instruction on how-to use the Zimbra web client and put these instructions on our Intranet. Then we have redirected the Help link in the Beehive Zimbra client to point there instead.

To implement the redirection you can just change the file:

<BEEHIVE_HOME>/j2ee/BEECLIENT/applications/zimbra-ui/zimbra/help/en_US/advanced/Zimbra_User_Help.htm

and implement a simple HTTP redirect there. If you have multiple BEECLIENT instances you need to implement the change in each of them (putting a soft link in place won't work here).

Also, just be careful that when you apply a patch or upgrade Beehive you most likely will have to re-implement this change.

fredag, januari 14, 2011

Mailing lists in Beehive

One things that strikes you when starting to setup Beehive is the absence of mailing lists. Even though Beehive focuses on collaboration rather than on e-mail, mailing lists still plays an important role in an organisation. So, given the fact that you don't have regular mailing lists in Beehive but your end users demand them, what can you do? So far we have seen 3 options that you can use in Beehive.

* Using Beehive workspaces
* Using Beehive (or in our case Active Directory) groups
* Using an external mailing list server

I will discuss these options below and give you my take on each of them.


Using Beehive workspaces

Each user can create a workspace in Beehive and add users to it. So this can be used to mimic a mailing list, but imho, it is a bit of an overkill to setup a workspace just to be able to have a mailing list. As any user can create a workspace you quickly loses any naming standards you might have in place within your organisation, which will make it practically impossible to find the right mailing list for the end users. Also, you will loose control of abandoned workspaces within Beehive when employees leaves. You could have a centralized administration for company wide workspaces and uses these as mailing lists, but this will turn some of your employees into full time workspace administrators.


Using Beehive groups

In our case we synchronize our Active Directory with Beehive and have user and group management there. As you can set a mail address on a group you can use this as an alternative to mailing lists. However, as you do not want any given person to have the right to work inside your LDAP server, this option leads either to a lot of work for your LDAP administrators or you will have to setup a 3:rd party product (or create your own) only for the purpose of handling group memberships.


Using an external mailing list server

This is perhaps the best option to choose for having mailing lists within Beehive. You will only have setup the initial mailing list and you will have to create an external contact in Beehive (if the address should be visible in the address list), but once that is done you can delegate all administration of the list to the list owner. You will also be able to keep any naming standards that you might have in place. Below is an overview on how this could be setup.

onsdag, januari 12, 2011

Relaunching this Blog

I have now regained some interest in keeping a technical blog again, so I will once again start to write some technical stuff in it. This time it will be on Oracle Beehive and other things that occurs in my daily work that might be of interest.