The facts about Kangaroo expulsions

Yet another fine example of the accuracy of the phrase, “You learn something new every day“…

The high levels of methane emissions from the belches and farts of the world’s many farm animals is becoming the subject of increasing concern due to the detrimental effects this could have on climate change. It turns out that when a Kangaroo breaks wind, it emits far less methane and is therefore less damaging to the environment.

Should we expect to see more restaurants serving Kangaroo from now on?

Source: RTE News

Irish place names website

Have you ever wondered what the official Irish name for your home town or city is? Well, a new website, logainm.ie, has just been launched that should provide the answers you are looking for.

The usability is a little strange at first. You are presented with a map of Ireland, segmented by county name. However, when I clicked on my home county (Waterford), I expected to see another (more detailed) map showing all of the towns and/or regions in that county. However, I did not.

It turns out that there is quite a lot of information available from this site, it just isn’t as easy to find it as I first expected. That said, there is a Search box on the site which works just fine, so maybe its just me.

Source: RTE News

Coolstack Squid Installation Notes

I recently installed Squid, the HTTP Proxy, for the first time. The version I installed was 2.6-STABLE16 and came as part of Solaris Coolstack 1.2. Here are some notes from the installation process:

Installation

The application on Solaris x86 using the pkgadd utility and the appropriate Coolstack Squid package file (CSKsquid_1.2_x86.pkg). The installation process also created a new SMF service called csk-squid.

Setup

This was the first time I had installed Squid so, after reading the documentation provided by Coolstack, I tried starting the Squid service. Unfortunately, it kept complaining about missing cache directories and file permissions, and would not start. In the end, a colleague directed me towards the squid -z command, which carried out all of the required post-installation setup and duly sorted out all of the directory/permissions problems.

Configuration

I only had to make two small changes to the Squid configuration file (/opt/coolstack/squid/etc/squid.conf):

  1. Squid uses port 3128 by default but, since our corporate firewall permits very few outbound ports, we modified squid to use port 8080 instead:
  2. http_port 8080

  3. We wanted to restrict access to the new HTTP Proxy to only a certain range of corporate IP addresses. This was easily achieved by adding a simple access rule as follows:
  4. acl my_networks src XXX.XXX.XXX.XXX/24
    http_access allow my_networks

Other than this, the process was surprisingly straightforward.

Trial migration from Coolstack 1.2 to 1.3.1

I got an opportunity to run a trial migration of several applications from Solaris Coolstack version 1.2 to version 1.3.1 recently. The Coolstack applications that we use include MySQL, Apache (including mod_jk), Tomcat and Memcached.

I had no problems at all with the Tomcat or Memcached upgrades but did hit 2 minor issues with MySQL and Apache (mod_jk actually).

1. MySQL

This involved going from MySQL 5.0.45 to 5.1.25 and whilst I found that a regular mysqldump of my MySQL 5.0 databases imported without error into MySQL 5.1, I did encounter some minor issues with user permissions later on. Fortunately, the guide to Upgrading from MySQL 5.0 to 5.1 proved very useful and revealed that I had missed an essential step in the upgrade process which was the use of the mysql_upgrade utility. There is lots more to read about in the upgrade guide and depending on your configuration, there may be more steps to be considered.

2. Apache (mod_jk)

Whilst the Apache upgrade (2.2.6 to 2.2.9) worked a treat, I found that mod_jk 1.2.26 employs stricter rules in relation to the placement of JkMount/JkMountFile commands in VirtualHosts. In my previous configuration, I had a single JkMount command inside my mod_jk.conf file (which in turn was included from the main httpd.conf file). However, using this configuration with Apache 2.2.9 and mod_jk 1.2.26, I found that my AJP load balancer was not working correctly for one of my VirtualHosts. It was only when I moved my JkMount command inside the scope of the VirtualHost that it started working again.

Other Comments

Most of the SMF service names in the Coolstack 1.3.1 applications have been renamed slightly. In Coolstack 1.2, all of the SMF service names began with csk- but now they all end with -csk instead. This was apparently done to make the service names more compatible with OpenSolaris but, to be honest, I find it a little bit annoying as we’ve written a number of useful scripts that manage these services explicitly by name.

Coolstack 1.3.1 includes two different versions of Tomcat (5.0 and 6.0) which install to different locations and have different SMF service names.

The Road to Solaris Coolstack 1.3.1

It would appear that the release of Coolstack 1.3.1 was a little more adventurous than previous versions, as the following timeline illustrates.

10 June 2008

Firstly, we had the launch of Coolstack 1.3 Release Candidate 1 which seemed to work fine on my 10u3 systems but was still technically only a candidate release.

11 July 2008

Then, around 4 weeks later, the official version of Coolstack 1.3 was released. This included a number of minor software revision enhancements but more importantly, included the addition of DTrace probes in applications such as MySQL, Ruby and Memcached. However, the addition of these probes required either the use of Solaris 10 U5 or the installation of a number of Solaris kernel patches, neither of which went down too well in the Coolstack community. As a result, this version 1.3 was withdrawn and 1.3RC1 became the official 1.3 release.

14 August 2008

In an effort to support Solaris versions prior to U5, the DTrace probes were backed out of the affected applications and Coolstack 1.3.1 was born. A number of other minor software enhancements were also added but in essence, 1.3.1 was all about satisfying the wider Coolstack community.

I did eventually get the opportunity to try out Coolstack 1.3.1 and did not encounter any major issues. We are planning a more comprehensive review of the reported MySQL performance gains though.

How to flush the contents of a Memcached instance

Here is a convenient way to flush the entire contents of your Memcached instance using telnet.

$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
flush_all
OK
quit
Connection to localhost closed by foreign host.
$

Once you are connected to the appropriate memcached host and port (using telnet), use the flush_all command (which should return an OK response) followed the quit command to flush the current cache contents.

Apache Log File Rotation on Solaris

Here are some quick commands to configure daily rotation of the two main Apache logging files, on a Solaris system that uses a nightly cron task to execute the logadm utility (this is enabled by default on a clean installation of Solaris).

Purge any existing entries

To make nice clean start, you may wish to remove any existing log rotation entries.

# logadm -r /log/apache/access_log
# logadm -r /log/apache/error_log

Commit new log rotation settings

Our requirements were that the log files in question be rotated each day, no matter what size they are, and that the resultant file be compressed and named after the current date.

logadm -c -p 1d -t '$file-%Y-%m-%d' -z 0 -w /log/apache/access_log
logadm -c -p 1d -t '$file-%Y-%m-%d' -z 0 -w /log/apache/error_log

The -c indicates that the log files should copied and truncated rather than renamed. The -w parameter ensures that all of the settings specified in the command be written to the central log rotation configuration file in /etc/logadm.conf

Solaris ipfilter broken by Patch 125503-02

We recently installed a number of patches onto a T1000 server running Solaris 10 U3, only to discover that the ipfilter service was broken thereafter. The service itself appeared to be configured correctly with no visible signs of error but we discovered that many ports that we had configured to be blocked from certain sources were not.

After some careful analysis of the patches applied, we discovered that Patch 125503-02 had replaced a number of the files associated with the SUNWipfilter package, resulting in the main network interface for our system no longer being plumbed for use with the pfil driver.

Here is how we recovered from this situation:

1. Back out the patch and reboot

# smpatch remove –i 125503-02
# reboot

2. Replumb the appropriate network interface

# ifconfig bge0 modinsert pfil@2
# autopush -f /etc/ipf/pfil.ap
# ifconfig bge0 unplumb
# ifconfig bge0 plumb

Note: Replace bge0 with e1000g0 for a T2000 and ensure your pfil.ap has the correct entry in it.

Thanks to derkeiler.com for assistance.