<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bashton Blog</title>
	<atom:link href="http://blog.bashton.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bashton.com</link>
	<description>Bashton Ltd</description>
	<lastBuildDate>Fri, 15 Jan 2010 15:41:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Book Review: Cacti 0.8 Network Monitoring</title>
		<link>http://blog.bashton.com/2010/book-review-cacti-0-8-network-monitoring/</link>
		<comments>http://blog.bashton.com/2010/book-review-cacti-0-8-network-monitoring/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 15:41:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[cacti]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=361</guid>
		<description><![CDATA[Disclaimer: I was provided with a review copy of this book free of charge by the publisher.  Please rest assured that I haven&#8217;t let this colour my judgement.
If you&#8217;re looking for a book to help you configure the excellent systems monitoring software Cacti, then Cacti 0.8 Network Monitoring is, at least as far as [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Disclaimer: I was provided with a review copy of this book free of charge by the publisher.</strong>  Please rest assured that I haven&#8217;t let this colour my judgement.</p>
<p>If you&#8217;re looking for a book to help you configure the excellent systems monitoring software <a href="http://www.cacti.net/">Cacti</a>, then <a href="http://www.amazon.co.uk/gp/product/1847195962?ie=UTF8&#038;tag=bashtonblog-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1847195962">Cacti 0.8 Network Monitoring</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=bashtonblog-21&#038;l=as2&#038;o=2&#038;a=1847195962" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is, at least as far as my brief searches on Amazon could reveal, your only choice.  At just 116 pages it&#8217;s a relatively slender tome, but is it worth the purchase?</p>
<p>The book starts off reasonably &#8211; it gives a clear guide to installing Cacti on a Debian system, and also installing Cacti from source.  With any book of this nature there&#8217;s always the problem that there are so many different forms of Linux/Unix on which the application can be run &#8211; Cacti supports Linux, BSD, MacOS, Solaris &#8211; that you could fill a whole book just detailing the differing installation steps.</p>
<p>The next few chapters, in fact the bulk of the book, concerns the basic configuration of Cacti &#8211; adding devices to be monitored, arranging the graphs and user management.  Again, the explanations here are competent if not exceptional.<br />
I think it would have been beneficial if the book had contained at least some basic details on how to enable SNMP on some common devices that are likely to be monitored &#8211; perhaps a couple of lines of Cisco config, some details on installing and configuring net-snmpd possibly.  Unfortunately the book covers none of this.</p>
<p>For the more advanced user, the book has a reasonable high-level overview of the SNMP protocol, but is rather short on the details of writing your own Cacti plugins.  The topic is covered, but includes little more information than the help text displayed on screen within Cacti itself.  For me, this was the biggest disappointment with the book.</p>
<p>Overall, the book is a reasonable purchase for those unfamiliar with Cacti, particularly given the lack of alternatives.  Those hoping to find a guide to more advanced topics will be disappointed however, with more comprehensive information available in the Cacti documentation on-line.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/book-review-cacti-0-8-network-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Check SSL Certificate life in Nagios</title>
		<link>http://blog.bashton.com/2010/quick-tip-check-ssl-certificate-life-in-nagios/</link>
		<comments>http://blog.bashton.com/2010/quick-tip-check-ssl-certificate-life-in-nagios/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 10:41:27 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=321</guid>
		<description><![CDATA[If you&#8217;ve already got Nagios monitoring your SSL-enabled web server, then it&#8217;s very easy to make it also warn you when your SSL certificate is soon to expire.
Simple change your check_https command definition (in the file /etc/nagios-plugins/config/http.cfg on Debian/Ubuntu) to the following:
define command{
        command_name    check_https
 [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve already got <a href="http://www.nagios.org/">Nagios</a> monitoring your SSL-enabled web server, then it&#8217;s very easy to make it also warn you when your SSL certificate is soon to expire.</p>
<p>Simple change your check_https command definition (in the file <em>/etc/nagios-plugins/config/http.cfg</em> on Debian/Ubuntu) to the following:</p>
<p><code>define command{<br />
        command_name    check_https<br />
        command_line    /usr/lib/nagios/plugins/check_http --ssl -C 14 -H '$HOSTADDRESS$' -I '$HOSTADDRESS$'<br />
        }</code></p>
<p>The &#8216;14&#8242; in the command line is the number of days prior to expiry Nagios should warn you to renew the certificate &#8211; change as appropriate.<br />
Now Nagios will produce a warning when your SSL certificate is close to renewal time, and show status CRITICAL if you let it expire anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/quick-tip-check-ssl-certificate-life-in-nagios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Varnish Cache Statistics via Cacti</title>
		<link>http://blog.bashton.com/2009/varnish-cache-statistics-via-cacti/</link>
		<comments>http://blog.bashton.com/2009/varnish-cache-statistics-via-cacti/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 09:24:59 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=271</guid>
		<description><![CDATA[We&#8217;ve been using Varnish cache for some time, and I&#8217;ve been massively impressed by both its performance and flexibility.  As part of a solution to help scale websites it&#8217;s unbeatable, especially with its support for ESI.
Anyway, we wanted to integrate monitoring of Varnish into the existing Cacti setup we have, and so I wrote a [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been using <a href="http://varnish-cache.org/">Varnish cache</a> for some time, and I&#8217;ve been massively impressed by both its performance and flexibility.  As part of a solution to help scale websites it&#8217;s unbeatable, especially with its support for ESI.</p>
<p>Anyway, we wanted to integrate monitoring of Varnish into the existing Cacti setup we have, and so I wrote a little plugin to do this.  It&#8217;s loosely based on the code posted <a href="http://forums.cacti.net/viewtopic.php?t=31260">here</a> but it&#8217;s more &#8216;inspired by&#8217; rather than based upon.</p>
<p><img class="aligncenter size-full wp-image-272" title="Example cacti-varnish graph" src="http://blog.bashton.com/wp-content/uploads/2009/10/graph_example.png" alt="Example cacti-varnish graph" width="603" height="232" /></p>
<p>It produces just one graph (above), which shows the number of requests/second, hits/second and misses/second.</p>
<p>Installation is pretty straightforward:</p>
<ul>
<li>Make the Varnish management daemon available to your Cacti machine (Make sure you lock down appropriately with iptables or similar, because there is no authentication for this interface)</li>
<li>Copy get_varnish_stats.py to your cacti scripts directory (/usr/share/cacti/site/scripts in Debian/Ubuntu)</li>
<li>Import the XML template via the Cacti interface</li>
</ul>
<p>You can download the plugin <a href="http://bashton.com/downloads/cacti-varnish-0.1.tar.gz">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/varnish-cache-statistics-via-cacti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Tornado shows the future of Web Servers, but not for the reason you might think</title>
		<link>http://blog.bashton.com/2009/why-tornado-shows-the-future-of-web-servers-but-not-for-the-reason-you-might-think/</link>
		<comments>http://blog.bashton.com/2009/why-tornado-shows-the-future-of-web-servers-but-not-for-the-reason-you-might-think/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 10:48:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Speculation]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[tornado]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=252</guid>
		<description><![CDATA[There&#8217;s been a lot of discussion around the release of Tornado, the web server that powers FriendFeed, which was recently Open Sourced.
Most of this discussion revolves around the technical merits of Tornado; whether other platforms are quicker, or whether it&#8217;s too limited.  Whilst interesting, I think that many of these discussions are rather missing the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a lot of discussion around the release of <a href="http://www.tornadoweb.org/">Tornado</a>, the web server that powers FriendFeed, which was recently Open Sourced.</p>
<p>Most of this discussion revolves around the technical merits of Tornado; whether other platforms are quicker, or whether it&#8217;s too limited.  Whilst interesting, I think that many of these discussions are rather missing the point.</p>
<p>What I find interesting about FriendFeed is that it was built primarily because of the requirements of the way the FriendFeed site works.  To give an overview without getting too much into the technical details, the difference is in the way real-time data is updated.<br />
The way pretty much every other website works with regards to updating data is to poll for updates at regular intervals.  FriendFeed works differently; they create a connection to the server, and sit there waiting for an update.  When an update does happen, it displays immediately, because there&#8217;s no need to wait for a polling update to run.<br />
A website that works like this, with every user having a connection open waiting for an update, isn&#8217;t feasible to create when using a mainstream web server (Apache, Nginx, IIS), because they are designed with the older &#8216;open a connection, send the data, close the connection&#8217; way of working in mind.</p>
<p>I expect that as desktop software dies out and everything moves to a web-based &#8217;software-as-a-service&#8217; approach it will become increasingly common that parts of the site will run on custom-written software.  The days of the dominance of Apache are over, not because another better webserver daemon has come along, but because with increasingly complex webapps one size no longer fits all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/why-tornado-shows-the-future-of-web-servers-but-not-for-the-reason-you-might-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH via another host</title>
		<link>http://blog.bashton.com/2009/ssh-via-another-host/</link>
		<comments>http://blog.bashton.com/2009/ssh-via-another-host/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 08:07:34 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/ssh-via-another-host/</guid>
		<description><![CDATA[Many networks have hosts which aren&#8217;t directly accessible via SSH, but have to be connected to via another host.  This can be a pain, especially when one wishes to use scp or sftp.
For a while now I&#8217;ve been using the following in my SSH .config file to allow me to SSH &#8216;directly&#8217; to such hosts:

Host [...]]]></description>
			<content:encoded><![CDATA[<p>Many networks have hosts which aren&#8217;t directly accessible via SSH, but have to be connected to via another host.  This can be a pain, especially when one wishes to use scp or sftp.</p>
<p>For a while now I&#8217;ve been using the following in my SSH .config file to allow me to SSH &#8216;directly&#8217; to such hosts:</p>
<pre>
Host ultimate-destination-name
  ProxyCommand ssh -q intermediary-host nc %h %p $*
  HostName ultimate-destination-host</pre>
<p>Where &#8216;ultimate-destination-name&#8217; is the friendly name for the remote host &#8211; this probably shouldn&#8217;t be a hostname to avoid confusion, &#8216;intermediary-host&#8217; is the Internet-accessible host to connect via, and &#8216;ultimate-destination-host&#8217; is the local hostname/IP for the destination machine, ie what you&#8217;d type after ssh once logged into the intermediary host.<br />
You&#8217;ll need netcat installed on the intermediary host for this to work.</p>
<p>Apart from the obvious advantage of being able to just type &#8217;ssh foo&#8217; to get straight to host foo, this method also allows you to use your local ssh keys without any sort of trust arrangement.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/ssh-via-another-host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great HTTPS Primer</title>
		<link>http://blog.bashton.com/2009/great-https-primer/</link>
		<comments>http://blog.bashton.com/2009/great-https-primer/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 14:03:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tls]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/great-https-primer/</guid>
		<description><![CDATA[There&#8217;s a superb post over at the Moserware blog entitled &#8216;The First Few Milliseconds of an HTTPS Connection&#8216;.  I&#8217;d definitely recommend it to anyone even vaguely interested in what keeps everyones confidential data secure.
]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a superb post over at the Moserware blog entitled &#8216;<a href="http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html">The First Few Milliseconds of an HTTPS Connection</a>&#8216;.  I&#8217;d definitely recommend it to anyone even vaguely interested in what keeps everyones confidential data secure.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/great-https-primer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want to cut your IT budget without cutting services? Switch to Linux</title>
		<link>http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/</link>
		<comments>http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 16:56:07 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[gendarmerie]]></category>
		<category><![CDATA[recession]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/</guid>
		<description><![CDATA[For obvious reasons everyone is looking to make cost savings at the moment, and for inspiration you can look to the French Gendarmerie, who have saved millions of Euros as part of a transition to Linux.
 &#8220;A report published by the European Commission&#8217;s Open Source Observatory provides some details from a recent presentation given by Gendarmerie [...]]]></description>
			<content:encoded><![CDATA[<p>For obvious reasons everyone is looking to make cost savings at the moment, and for inspiration you can look to the French Gendarmerie, who have saved millions of Euros as part of a transition to Linux.</p>
<p><em> </em><em>&#8220;A report published by the European Commission&#8217;s Open Source Observatory provides some details from a recent presentation given by Gendarmerie Lieutenant-Colonel Xavier Guimard, who says that the Gendarmerie has been able to reduced its annual IT budget by 70 percent without having to reduce its capabilities.&#8221;</em></p>
<p><a href="http://arstechnica.com/open-source/news/2009/03/french-police-saves-millions-of-euros-by-adopting-ubuntu.ars">Read the full story over at Ars Technica</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Java application Problems</title>
		<link>http://blog.bashton.com/2009/debugging-java-application-problems/</link>
		<comments>http://blog.bashton.com/2009/debugging-java-application-problems/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 16:11:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jvm]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/debugging-java-application-problems/</guid>
		<description><![CDATA[After spending far too much time investigating a particularly thorny problem with a Java app, here&#8217;s a brief guide for anyone else stuck in the same predicament.
First, find some general information on the environment:

Show the JVM system properties
jinfo [pid]
Show heap space usage
jmap -heap [pid]
Show object memory usage
jmap -histo [pid]
Next, find out some more specifics about [...]]]></description>
			<content:encoded><![CDATA[<p>After spending far too much time investigating a particularly thorny problem with a Java app, here&#8217;s a brief guide for anyone else stuck in the same predicament.</p>
<p>First, find some general information on the environment:</p>
<p><strong><br />
Show the JVM system properties</strong></p>
<pre>jinfo [pid]</pre>
<p><strong>Show heap space usage</strong></p>
<pre>jmap -heap [pid]</pre>
<p><strong>Show object memory usage</strong></p>
<pre>jmap -histo [pid]</pre>
<p>Next, find out some more specifics about what the app is actually doing:</p>
<p><strong>Take a thread dump</strong></p>
<pre>pkill -3 java; sleep 5; pkill -3 java</pre>
<p>We do the kill -3 twice to show if threads are stuck in a particular state &#8211; add more as required.  The thread dump is written to stdout for the java process.  This will be catalina.out for a Tomcat app, elsewhere for others, check the init script for clues.</p>
<p><strong>Take a stack trace</strong></p>
<pre>jstack [pid]</pre>
<p>For apps using JNI you can take a mixed-mode trace by doing</p>
<pre>jstack -m [pid]</pre>
<p>and piping the output through c++filt.  On Solaris, c++filt can be obtained as part of <a href="http://developers.sun.com/sunstudio/downloads/express/">Sun Studio Express</a></p>
<p>Hopefully by this point you should have enough data to at least give you some clues as to where the problems are occuring.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/debugging-java-application-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Deployment</title>
		<link>http://blog.bashton.com/2009/continuous-deployment/</link>
		<comments>http://blog.bashton.com/2009/continuous-deployment/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 15:46:18 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/continuous-deployment/</guid>
		<description><![CDATA[I&#8217;ve been preaching the standard &#8216;development&#8217;, &#8217;staging&#8217; &#8216;production&#8217; method of testing and deploying software for pretty much as long as I can remember.  This made me all the more interested to read this post telling how IMVU, an &#8216;avatar based chat site&#8217; go programatically straight from commit to deploy.
 The high level of our process is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been preaching the standard &#8216;development&#8217;, &#8217;staging&#8217; &#8216;production&#8217; method of testing and deploying software for pretty much as long as I can remember.  This made me all the more interested to read <a href="http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/">this post</a> telling how IMVU, an &#8216;avatar based chat site&#8217; go programatically straight from commit to deploy.</p>
<blockquote><p><em> The high level of our process is dead simple: Continuously integrate (commit early and often). On commit automatically run all tests. If the tests pass deploy to the cluster. If the deploy succeeds, repeat.</em></p></blockquote>
<p>Whether this approach would work for you really rather depends on the type of environment you work in. What would concern me most is how one could possibly deal with intermittent problems which one was unable to consistently reproduce.  The continuous deployment solution, I suppose, would be to write a number of tests which reproduce the circumstances around the failure.</p>
<p>It&#8217;s certainly an interesting idea though, and one that is clearly working for IMVU.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/continuous-deployment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another angle on TCO</title>
		<link>http://blog.bashton.com/2008/another-angle-on-tco/</link>
		<comments>http://blog.bashton.com/2008/another-angle-on-tco/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 08:54:11 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[power]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2008/another-angle-on-tco/</guid>
		<description><![CDATA[One often overlooked issue with regards to calculating the total cost of ownership for an OS: power consumption.
These figures from  http://mjg59.livejournal.com/103511.html:

Idle power draw of Fedora 10: 100W
Idle power draw of Opensolaris 2008-11: 135W

]]></description>
			<content:encoded><![CDATA[<p>One often overlooked issue with regards to calculating the total cost of ownership for an OS: power consumption.</p>
<p>These figures from  <a href="http://mjg59.livejournal.com/103511.html">http://mjg59.livejournal.com/103511.html</a>:</p>
<ul>
<li>Idle power draw of Fedora 10: 100W</li>
<li>Idle power draw of Opensolaris 2008-11: 135W</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2008/another-angle-on-tco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
