<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="b2evolution/2.4.2" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>GPL'd thoughts</title>
		<link>http://blogs.op5.org/blog4.php</link>
		<description></description>
		<language>en-US</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=2.4.2"/>
		<ttl>60</ttl>
				<item>
			<title>Merlin contributions</title>
			<link>http://blogs.op5.org/blog4.php/2009/11/11/merlin-contributions</link>
			<pubDate>Wed, 11 Nov 2009 15:27:51 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">39@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;Merlin development has really kicked off. Single-server database support is in production at all our customers (all 350 or so of them), and people in the community have started using it for production use in a distributed environment.&lt;/p&gt;

&lt;p&gt;Three people in particular have contributed awesomely to making Merlin better for distributed environments. The first to pick it up for this purpose is a guy named Russel Jennings. He's written several concise bug-reports and done tireless testing with various versions to find where some bug was introduced and which versions of the Merlin daemon work well together. A great big thanks for that, Russel!&lt;/p&gt;

&lt;p&gt;The other person is a guy named Sean Millichamp. He's gone the extra mile and has started sending in patches for bugs he's found. So far, he's contributed with 10 patches, making him the second most prominent developer for the merlin module-daemon pair. So far, his patches hold very high standard indeed and I have great hopes that we'll see more of his excellent contributions making it into future releases.&lt;/p&gt;

&lt;p&gt;Jean-Marc Le Fevre has also contributed some minor patches that he deserves recognition for.&lt;/p&gt;

&lt;p&gt;Numerous other people have reported issues with Merlin and contributed to the Wiki and HOWTO's. Thank you all &lt;img src=&quot;http://blogs.op5.org/rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2009/11/11/merlin-contributions&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Merlin development has really kicked off. Single-server database support is in production at all our customers (all 350 or so of them), and people in the community have started using it for production use in a distributed environment.</p>

<p>Three people in particular have contributed awesomely to making Merlin better for distributed environments. The first to pick it up for this purpose is a guy named Russel Jennings. He's written several concise bug-reports and done tireless testing with various versions to find where some bug was introduced and which versions of the Merlin daemon work well together. A great big thanks for that, Russel!</p>

<p>The other person is a guy named Sean Millichamp. He's gone the extra mile and has started sending in patches for bugs he's found. So far, he's contributed with 10 patches, making him the second most prominent developer for the merlin module-daemon pair. So far, his patches hold very high standard indeed and I have great hopes that we'll see more of his excellent contributions making it into future releases.</p>

<p>Jean-Marc Le Fevre has also contributed some minor patches that he deserves recognition for.</p>

<p>Numerous other people have reported issues with Merlin and contributed to the Wiki and HOWTO's. Thank you all <img src="http://blogs.op5.org/rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" /></p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2009/11/11/merlin-contributions">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2009/11/11/merlin-contributions#comments</comments>
		</item>
				<item>
			<title>Merlin progress report</title>
			<link>http://blogs.op5.org/blog4.php/2009/06/13/merlin-progress-report</link>
			<pubDate>Sat, 13 Jun 2009 13:06:19 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Nagios</category>			<guid isPermaLink="false">38@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;I'm clearly a workaholic when I'm fiddling with stuff I really like, and all the community interest in Merlin and Ninja lately has just made me a pure-bred hacker fanatic.&lt;/p&gt;

&lt;p&gt;So I've implemented the state retention stuff in Merlin. Turns out that all that was really required was to make sure the status and object import works ok and is up-to-date (so I implemented an automagic way of making that happen). Then I can just read the current status from the database. I use an array sorted by object name (&quot;host_name&quot; for hosts and &quot;host_name;service_description&quot; for services) so I can use a binary search. 3000000 lookups of some randomly chosen nodes in a config with 15k hosts complete in just under 2.2 seconds. Quite impressive. Especially so when about 0.8 seconds is spent loading all the states and sorting the array in the first place.&lt;/p&gt;

&lt;p&gt;I've also had a chance to look over the cross-host event transport stuff, which was subtly broken due to a brainfart of mine in a tertiary operation. I've tested it and it works just fine now agan.&lt;/p&gt;

&lt;p&gt;With the changes mentioned above, I Merlin is rapidly approaching production quality in terms of its planned feature-set, so I've just released v0.5 with the hopes of attracting some more testers.&lt;/p&gt;

&lt;p&gt;Let it rip, people, and make sure to let me know how it's going. Merlin can be downloaded from our git repositories using the following command:&lt;/p&gt;
&lt;pre&gt;

  git clone git://git.op5.org/nagios/merlin.git

&lt;/pre&gt;

&lt;p&gt;Cheerios for now.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2009/06/13/merlin-progress-report&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>I'm clearly a workaholic when I'm fiddling with stuff I really like, and all the community interest in Merlin and Ninja lately has just made me a pure-bred hacker fanatic.</p>

<p>So I've implemented the state retention stuff in Merlin. Turns out that all that was really required was to make sure the status and object import works ok and is up-to-date (so I implemented an automagic way of making that happen). Then I can just read the current status from the database. I use an array sorted by object name ("host_name" for hosts and "host_name;service_description" for services) so I can use a binary search. 3000000 lookups of some randomly chosen nodes in a config with 15k hosts complete in just under 2.2 seconds. Quite impressive. Especially so when about 0.8 seconds is spent loading all the states and sorting the array in the first place.</p>

<p>I've also had a chance to look over the cross-host event transport stuff, which was subtly broken due to a brainfart of mine in a tertiary operation. I've tested it and it works just fine now agan.</p>

<p>With the changes mentioned above, I Merlin is rapidly approaching production quality in terms of its planned feature-set, so I've just released v0.5 with the hopes of attracting some more testers.</p>

<p>Let it rip, people, and make sure to let me know how it's going. Merlin can be downloaded from our git repositories using the following command:</p>
<pre>

  git clone git://git.op5.org/nagios/merlin.git

</pre>

<p>Cheerios for now.</p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2009/06/13/merlin-progress-report">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2009/06/13/merlin-progress-report#comments</comments>
		</item>
				<item>
			<title>Nagios for huge networks</title>
			<link>http://blogs.op5.org/blog4.php/2009/05/16/nagios-for-huge-networks</link>
			<pubDate>Sat, 16 May 2009 09:58:59 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Nagios</category>			<guid isPermaLink="false">37@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;With the recent changes to the Nagios core development team, patches have been flooding in to the nagios-devel list. There's been such a flurry of improvements that I've actually had to stop working on Ninja and Merlin entirely over the past two weeks and just work on testing, adding and commenting on patches sent to the list. In view of that, I must say I'm convinced Ethan did the right thing when he extended the core dev team a bit.&lt;/p&gt;

&lt;p&gt;However, this post is mostly about one particular patch from a guy named Jean Gab&amp;#232;s. The patch speeds up Nagios' circular-parent-child dependency checks a *lot*. In a network 300 levels deep (root-host -&gt; lvl1-child -&gt; lvl2-child -&gt; ... -&gt; lvl300-child) where each level in itself has 500 hosts, vanilla Nagios had to be Ctrl-C'd out of after 53 minutes, while Nagios with Jean's patch completed in less than seven seconds (a speedup of more than 51000%!).&lt;/p&gt;

&lt;p&gt;For a more modest network of 15000 nodes, (30 levels deep, 500 hosts in each level), vanilla Nagios completed a configuration check in 3 minutes and 33 seconds, while patched Nagios did the exact same job in less than one second.&lt;/p&gt;

&lt;p&gt;Awesome, Jean. Thanks a lot indeed :-)&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2009/05/16/nagios-for-huge-networks&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>With the recent changes to the Nagios core development team, patches have been flooding in to the nagios-devel list. There's been such a flurry of improvements that I've actually had to stop working on Ninja and Merlin entirely over the past two weeks and just work on testing, adding and commenting on patches sent to the list. In view of that, I must say I'm convinced Ethan did the right thing when he extended the core dev team a bit.</p>

<p>However, this post is mostly about one particular patch from a guy named Jean Gab&#232;s. The patch speeds up Nagios' circular-parent-child dependency checks a *lot*. In a network 300 levels deep (root-host -> lvl1-child -> lvl2-child -> ... -> lvl300-child) where each level in itself has 500 hosts, vanilla Nagios had to be Ctrl-C'd out of after 53 minutes, while Nagios with Jean's patch completed in less than seven seconds (a speedup of more than 51000%!).</p>

<p>For a more modest network of 15000 nodes, (30 levels deep, 500 hosts in each level), vanilla Nagios completed a configuration check in 3 minutes and 33 seconds, while patched Nagios did the exact same job in less than one second.</p>

<p>Awesome, Jean. Thanks a lot indeed :-)</p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2009/05/16/nagios-for-huge-networks">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2009/05/16/nagios-for-huge-networks#comments</comments>
		</item>
				<item>
			<title>libgit2 moving forward</title>
			<link>http://blogs.op5.org/blog4.php/2009/05/14/libgit2-moving-forward</link>
			<pubDate>Thu, 14 May 2009 08:02:17 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">git</category>			<guid isPermaLink="false">36@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;Just a short post to announce myself as co-maintainer of libgit2. I don't know how long this will last, but Shawn O. Pearce (one of the truly heavy names in git development) will be very busy with the Google Summer of Code project, where core git has two student slots.&lt;/p&gt;

&lt;p&gt;Shawn has been busy quite a long time (understandable, as he still makes significant contributions both to git.git and jgit.git), and only me and Ramsay Jones have made any significant contributions to libgit2 since it was announced back in November 2008.&lt;/p&gt;

&lt;p&gt;Hopefully, this will mean whatever patches there are will get applied faster and that development will move forward at a quicker pace.&lt;/p&gt;

&lt;p&gt;Personally, I've got a lot of un-committed work lying around that pertains to index reading and writing. I'll be working on finishing that up and sending it out to git@vger for review. The sooner we can get *some* part of the library working properly the better, imo, as git.git can't start using it until it does.&lt;/p&gt;

&lt;p&gt;Oh, and libgit2 is currently looking for additional contributors. It doesn't really matter what you want to work on. Just clone the repo from git://repo.or.cz/libgit2.git and start hacking. Patches could go either to me (ae@op5.com) or to the git mailing list (git@vger.kernel.org).&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2009/05/14/libgit2-moving-forward&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Just a short post to announce myself as co-maintainer of libgit2. I don't know how long this will last, but Shawn O. Pearce (one of the truly heavy names in git development) will be very busy with the Google Summer of Code project, where core git has two student slots.</p>

<p>Shawn has been busy quite a long time (understandable, as he still makes significant contributions both to git.git and jgit.git), and only me and Ramsay Jones have made any significant contributions to libgit2 since it was announced back in November 2008.</p>

<p>Hopefully, this will mean whatever patches there are will get applied faster and that development will move forward at a quicker pace.</p>

<p>Personally, I've got a lot of un-committed work lying around that pertains to index reading and writing. I'll be working on finishing that up and sending it out to git@vger for review. The sooner we can get *some* part of the library working properly the better, imo, as git.git can't start using it until it does.</p>

<p>Oh, and libgit2 is currently looking for additional contributors. It doesn't really matter what you want to work on. Just clone the repo from git://repo.or.cz/libgit2.git and start hacking. Patches could go either to me (ae@op5.com) or to the git mailing list (git@vger.kernel.org).</p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2009/05/14/libgit2-moving-forward">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2009/05/14/libgit2-moving-forward#comments</comments>
		</item>
				<item>
			<title>The future of Nagios</title>
			<link>http://blogs.op5.org/blog4.php/2009/05/07/the-future-of-nagios</link>
			<pubDate>Thu, 07 May 2009 13:52:34 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Nagios</category>			<guid isPermaLink="false">35@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;Some of you might know that a fork of Nagios has appeared recently. If you don't, go read about it in the nagios-devel mailing list archives. They're available on sourceforge somewhere, but I can't be bothered to look for them right now.&lt;br /&gt;
&lt;br /&gt;
Working for a company that makes a living out of supporting and writing addons for Nagios, I must say I'm a bit sad. Being an enthusiastic and optimistic guy, I must say I'm thrilled.
&lt;br /&gt;&lt;br /&gt;
A couple of facts before we set off:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; The fork was instigated largely by german members of the community. It &lt;b&gt;appears&lt;/b&gt; to have been spearheaded by a german company (though I don't know this for sure) that makes its living selling customized Nagios solutions and/or support. I don't know this for sure, but it sure looks as if that's what's happened.&lt;/li&gt;

&lt;li&gt;The german company have unlawfully used the Nagios trademark after being asked not to do so. It has also registered Nagios as a trademark in Germany, to which is a huge slap in the face of an opensource project. They are naturally not on the best of terms with Nagios' founding father, Ethan, at the moment.&lt;/li&gt;

&lt;li&gt;Ethan has been absent working with the aforementioned lawsuit (or whatever it is a trademark violation results in when friendly talk is no longer enough), and also trying to put together a new webbased user interface for Nagios.&lt;/li&gt;

&lt;li&gt;Patches from all levels of the community have been erratically ignored during Ethan's absence. Some were picked up, but as many or more slipped between the cracks.&lt;/li&gt;

&lt;li&gt;Ethan has always been the single person with commit access to the Nagios CVS (yuk) repository.&lt;/li&gt;

&lt;li&gt;The fork uses &lt;a href=&quot;http://www.git-scm.com&quot;&gt;git&lt;/a&gt; to track their patches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;
The community developers have voiced a complaint that they cite as the primary reason for the fork:&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Nagios is not being developed fast and openly enough.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I agree with this, and I'm currently discussing with Ethan about expanding the developer-base. Unfortunately, the scarce resource &quot;trust&quot; is even scarcer for those developers who joined the fork, which leaves the available candidates rather few. Happily, I count myself among them, and apparently so does Ethan. He emailed me away from public channels asking if I'd be willing to become a core developer, and op5 has graciously given a tentative promise to devote one to two days per week to Nagios development / patch management. Nothing's settled yet, but development &lt;b&gt;has&lt;/b&gt; to continue even if the core maintainer takes a leave of absence, so one way or another, we'll make sure this happens.
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
In a perfect world (ie, one where I get to decide everything &lt;img src=&quot;http://blogs.op5.org/rsc/smilies/icon_wink.gif&quot; alt=&quot;&amp;#59;&amp;#41;&quot; class=&quot;middle&quot; /&gt;), here's what will happen:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Nagios incorporates the good changes that the fork produces.&lt;/li&gt;
&lt;li&gt;The benevolent but previously frustrated developers from the fork hop back to working on Nagios when they see it's once again moving forward. They could actually do that by keeping on working on their fork, although that would set them apart from the Nagios community a bit rather than make them members of it.&lt;/li&gt;
&lt;li&gt;Nagios development picks up its pace and a new GUI is added to it which fulfills everyones wildest dreams.&lt;/li&gt;
&lt;li&gt;Nagios development moves to using &lt;a href=&quot;http://www.git-scm.com&quot;&gt;git &lt;/a&gt;instead of CVS. Since git actually invites people to fork the code but makes it incredibly simple to merge those changes back to the pre-fork project again, there could be any number of forks and Nagios would be the grand total of the best of all of them. Who would win on that? Well, the Nagios users for a start, and Nagios itself, and Ethan, and every company making a living off of Nagios one way or another. So that'd be a win-win-win-win-win situation? I &lt;b&gt;like&lt;/b&gt; it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
For those who wonder where I'm standing in all this, I'll be working with Ethan to make the community developers happy while at the same time trying to prevent the community users from living through the confusion that a long-lived fork means. In the end, I hope Nagios becomes a better product with a stronger and better community backing it, which seems rather inevitable now that more people than ever are working frantically at making it so. Hopefully it results in a happy community where The Right People(tm) are part of a Nagios steering committee or some such.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Time will tell. It always does ;-)&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2009/05/07/the-future-of-nagios&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Some of you might know that a fork of Nagios has appeared recently. If you don't, go read about it in the nagios-devel mailing list archives. They're available on sourceforge somewhere, but I can't be bothered to look for them right now.<br />
<br />
Working for a company that makes a living out of supporting and writing addons for Nagios, I must say I'm a bit sad. Being an enthusiastic and optimistic guy, I must say I'm thrilled.
<br /><br />
A couple of facts before we set off:</p>
<ul>
<li> The fork was instigated largely by german members of the community. It <b>appears</b> to have been spearheaded by a german company (though I don't know this for sure) that makes its living selling customized Nagios solutions and/or support. I don't know this for sure, but it sure looks as if that's what's happened.</li>

<li>The german company have unlawfully used the Nagios trademark after being asked not to do so. It has also registered Nagios as a trademark in Germany, to which is a huge slap in the face of an opensource project. They are naturally not on the best of terms with Nagios' founding father, Ethan, at the moment.</li>

<li>Ethan has been absent working with the aforementioned lawsuit (or whatever it is a trademark violation results in when friendly talk is no longer enough), and also trying to put together a new webbased user interface for Nagios.</li>

<li>Patches from all levels of the community have been erratically ignored during Ethan's absence. Some were picked up, but as many or more slipped between the cracks.</li>

<li>Ethan has always been the single person with commit access to the Nagios CVS (yuk) repository.</li>

<li>The fork uses <a href="http://www.git-scm.com">git</a> to track their patches.</li>
</ul>
<p><br /><br />
The community developers have voiced a complaint that they cite as the primary reason for the fork:</p>

<p><i>Nagios is not being developed fast and openly enough.</i><br />
<br />
I agree with this, and I'm currently discussing with Ethan about expanding the developer-base. Unfortunately, the scarce resource "trust" is even scarcer for those developers who joined the fork, which leaves the available candidates rather few. Happily, I count myself among them, and apparently so does Ethan. He emailed me away from public channels asking if I'd be willing to become a core developer, and op5 has graciously given a tentative promise to devote one to two days per week to Nagios development / patch management. Nothing's settled yet, but development <b>has</b> to continue even if the core maintainer takes a leave of absence, so one way or another, we'll make sure this happens.
<br /><br /><br />
In a perfect world (ie, one where I get to decide everything <img src="http://blogs.op5.org/rsc/smilies/icon_wink.gif" alt="&#59;&#41;" class="middle" />), here's what will happen:</p><ul>
<li>Nagios incorporates the good changes that the fork produces.</li>
<li>The benevolent but previously frustrated developers from the fork hop back to working on Nagios when they see it's once again moving forward. They could actually do that by keeping on working on their fork, although that would set them apart from the Nagios community a bit rather than make them members of it.</li>
<li>Nagios development picks up its pace and a new GUI is added to it which fulfills everyones wildest dreams.</li>
<li>Nagios development moves to using <a href="http://www.git-scm.com">git </a>instead of CVS. Since git actually invites people to fork the code but makes it incredibly simple to merge those changes back to the pre-fork project again, there could be any number of forks and Nagios would be the grand total of the best of all of them. Who would win on that? Well, the Nagios users for a start, and Nagios itself, and Ethan, and every company making a living off of Nagios one way or another. So that'd be a win-win-win-win-win situation? I <b>like</b> it.</li>
</ul>
<p><br /><br /><br />
For those who wonder where I'm standing in all this, I'll be working with Ethan to make the community developers happy while at the same time trying to prevent the community users from living through the confusion that a long-lived fork means. In the end, I hope Nagios becomes a better product with a stronger and better community backing it, which seems rather inevitable now that more people than ever are working frantically at making it so. Hopefully it results in a happy community where The Right People(tm) are part of a Nagios steering committee or some such.<br />
<br /><br />
Time will tell. It always does ;-)</p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2009/05/07/the-future-of-nagios">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2009/05/07/the-future-of-nagios#comments</comments>
		</item>
				<item>
			<title>Making Nagios even more awesome</title>
			<link>http://blogs.op5.org/blog4.php/2009/03/20/making-nagios-even-more-awesome</link>
			<pubDate>Fri, 20 Mar 2009 11:01:54 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Nagios</category>			<guid isPermaLink="false">34@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;It's been quite a while since I blogged anything now, and the reason is that I, along with my colleagues here at op5, have been hard at work producing a new GUI for Nagios. Naturally it will be GPL'd, and equally naturally it will be blazing fast, awesomely pretty and contain lots and lots of cool stuff, such as our reporting tool (pretty graphs for the suits), a new flash-based network map (based on RaVis by Google), and the Merlin module.&lt;/p&gt;

&lt;p&gt;What with me being the company's die-hard C programmer, I'm naturally taking care of finishing off the Merlin module.&lt;/p&gt;

&lt;p&gt;As some of you know, the merlin module was originally designed to be an event transport for effortless redundant and loadbalanced network monitoring. Since modules running inside Nagios have certain restrictions put upon them, we decided to empower the Merlin module with the capabilities to insert events into a database (a rather straightforward patch). The really cool part about it is that Merlin still retains its multiplexing networking capabilities, which means that you can now use Merlin as a (very, very fast) way of communicating Nagios events to other servers.&lt;/p&gt;

&lt;p&gt;Since merlin is designed to work with a plethora of different topologies, this means that Nagios will be the easily most scalable network monitoring system of them all. If you want to monitor Google's server-park from a single tool, you'll have to use Nagios. If you want to monitor Second Life's vast and widespread server network, Nagios is the only choice. If you want to monitor the entire internet, Nagios can do that (provided you spend &quot;some&quot; money on hardware ;-))&lt;/p&gt;

&lt;p&gt;If you're a handy guy when it comes to doing certificate authentication in C, I might have a job for you though. Currently all nodes have to be configured upstream in its chain of responsibility. The capability to add random servers without modifying the configuration of running servers would be even more awesome &lt;img src=&quot;http://blogs.op5.org/rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2009/03/20/making-nagios-even-more-awesome&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>It's been quite a while since I blogged anything now, and the reason is that I, along with my colleagues here at op5, have been hard at work producing a new GUI for Nagios. Naturally it will be GPL'd, and equally naturally it will be blazing fast, awesomely pretty and contain lots and lots of cool stuff, such as our reporting tool (pretty graphs for the suits), a new flash-based network map (based on RaVis by Google), and the Merlin module.</p>

<p>What with me being the company's die-hard C programmer, I'm naturally taking care of finishing off the Merlin module.</p>

<p>As some of you know, the merlin module was originally designed to be an event transport for effortless redundant and loadbalanced network monitoring. Since modules running inside Nagios have certain restrictions put upon them, we decided to empower the Merlin module with the capabilities to insert events into a database (a rather straightforward patch). The really cool part about it is that Merlin still retains its multiplexing networking capabilities, which means that you can now use Merlin as a (very, very fast) way of communicating Nagios events to other servers.</p>

<p>Since merlin is designed to work with a plethora of different topologies, this means that Nagios will be the easily most scalable network monitoring system of them all. If you want to monitor Google's server-park from a single tool, you'll have to use Nagios. If you want to monitor Second Life's vast and widespread server network, Nagios is the only choice. If you want to monitor the entire internet, Nagios can do that (provided you spend "some" money on hardware ;-))</p>

<p>If you're a handy guy when it comes to doing certificate authentication in C, I might have a job for you though. Currently all nodes have to be configured upstream in its chain of responsibility. The capability to add random servers without modifying the configuration of running servers would be even more awesome <img src="http://blogs.op5.org/rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" /></p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2009/03/20/making-nagios-even-more-awesome">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2009/03/20/making-nagios-even-more-awesome#comments</comments>
		</item>
				<item>
			<title>Cross Site Request Forgery vulnerability in Nagios pre-3.0.6</title>
			<link>http://blogs.op5.org/blog4.php/2008/11/11/cross-site-request-forgery-vulnerability-6</link>
			<pubDate>Tue, 11 Nov 2008 16:02:42 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Nagios</category>			<guid isPermaLink="false">33@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;Tim Starling of the Wikimedia foundation reported a cross-site request forgery vulnerability affecting cmd.cgi, affecting Nagios versions up to and including 3.0.5.&lt;/p&gt;

&lt;p&gt;A cross-site request forgery means that one site includes a &amp;lt;form&amp;gt; tag with an &quot;action&quot; value pointing to a different site. The idea is to utilize a user's already valid session with a site requiring authentication to submit forms to that site that the user didn't intend to submit.&lt;/p&gt;

&lt;p&gt;For Nagios, the scenario looks like this:&lt;br /&gt;
1. Random Nagios Admin (RNA) logs in to nagios, supplying valid credentials.&lt;br /&gt;
2. RNA goes to evilsite.com, where some lurid java-script checks his browsers history and notices that RNA has a Nagios installation by looking at the previously browsed pages.&lt;br /&gt;
3. evilsite.com creates a form which, using hidden variables, submits a command to the Nagios site where RNA is an admin.&lt;br /&gt;
4. Since RNA is authenticated with valid credentials, the command is accepted and Nagios loads it as if RNA had submitted it himself (which, for all that cmd.cgi on the nagios server knows, he/she has).&lt;/p&gt;

&lt;p&gt;With Nagios 2, the worst that could happen is that evilsite.com disables monitoring of the network, or submits any of the other commands that Nagios accepts (invalid commands are simply discarded by the Nagios core).&lt;/p&gt;

&lt;p&gt;The remedy to this is a patch that I wrote, which I hope will go into Nagios 3.0.6, to be released Any Day Now(tm).&lt;/p&gt;

&lt;p&gt;The fix I wrote works like this:&lt;br /&gt;
1. When RNA wants to submit a command, he/she is sent to the command submission page (the one with the 'commit' button).&lt;br /&gt;
2. The command submission page generates a random token that gets included as a hidden variable in the form. The session data (apart from the random numbers) is also written to disk.&lt;br /&gt;
3. When the 'commit' button is pressed, the session token is looked up and cmd.cgi makes sure the session is valid (ie, belongs to the right user and is less than 15 minutes ols). If there is no valid session token, command submission fails and the user is told so.&lt;/p&gt;

&lt;p&gt;What really kills the ability for off-site forms to circumvent this is the fact that the session token gets written to disk. Even if someone manages to guess the pseudo-random SHA1 session token (which is 2^160 to 1 against) they still can't make that session valid by writing it to the nagios-server's disk.&lt;/p&gt;

&lt;p&gt;The CSRF issue is still in Nagios 3.0.5, but can no longer trigger execution of arbitrary programs by the Nagios process due to the changes made to prevent malicious exploitation of CVE-2008-5027. Its impact is thereby reduced to disabling monitoring of the network and similar actions that can validly be requested from the Nagios process through the GUI. Bad enough, but no longer a vulnerability that allows a remote attacker to run arbitrary programs on the one server in your network that can bypass every firewall one way or another.&lt;/p&gt;

&lt;p&gt;I'm withholding the CVE details until Steven has had time to update the information with that contained in the above paragraph. In case I forget to update this blog-post, the CVE candidate id is CVE-2008-5028.&lt;/p&gt;

&lt;p&gt;A fixed version of Nagios is available at &lt;a href=&quot;http://www.op5.org/src/nagios-3.0.5p1.tar.gz&quot;&gt;http://www.op5.org/src/nagios-3.0.5p1.tar.gz&lt;/a&gt;. This fixed version is the base of op5 Monitor 4.0.1 which no longer suffers from the vulnerability discussed here.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2008/11/11/cross-site-request-forgery-vulnerability-6&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Tim Starling of the Wikimedia foundation reported a cross-site request forgery vulnerability affecting cmd.cgi, affecting Nagios versions up to and including 3.0.5.</p>

<p>A cross-site request forgery means that one site includes a &lt;form&gt; tag with an "action" value pointing to a different site. The idea is to utilize a user's already valid session with a site requiring authentication to submit forms to that site that the user didn't intend to submit.</p>

<p>For Nagios, the scenario looks like this:<br />
1. Random Nagios Admin (RNA) logs in to nagios, supplying valid credentials.<br />
2. RNA goes to evilsite.com, where some lurid java-script checks his browsers history and notices that RNA has a Nagios installation by looking at the previously browsed pages.<br />
3. evilsite.com creates a form which, using hidden variables, submits a command to the Nagios site where RNA is an admin.<br />
4. Since RNA is authenticated with valid credentials, the command is accepted and Nagios loads it as if RNA had submitted it himself (which, for all that cmd.cgi on the nagios server knows, he/she has).</p>

<p>With Nagios 2, the worst that could happen is that evilsite.com disables monitoring of the network, or submits any of the other commands that Nagios accepts (invalid commands are simply discarded by the Nagios core).</p>

<p>The remedy to this is a patch that I wrote, which I hope will go into Nagios 3.0.6, to be released Any Day Now(tm).</p>

<p>The fix I wrote works like this:<br />
1. When RNA wants to submit a command, he/she is sent to the command submission page (the one with the 'commit' button).<br />
2. The command submission page generates a random token that gets included as a hidden variable in the form. The session data (apart from the random numbers) is also written to disk.<br />
3. When the 'commit' button is pressed, the session token is looked up and cmd.cgi makes sure the session is valid (ie, belongs to the right user and is less than 15 minutes ols). If there is no valid session token, command submission fails and the user is told so.</p>

<p>What really kills the ability for off-site forms to circumvent this is the fact that the session token gets written to disk. Even if someone manages to guess the pseudo-random SHA1 session token (which is 2^160 to 1 against) they still can't make that session valid by writing it to the nagios-server's disk.</p>

<p>The CSRF issue is still in Nagios 3.0.5, but can no longer trigger execution of arbitrary programs by the Nagios process due to the changes made to prevent malicious exploitation of CVE-2008-5027. Its impact is thereby reduced to disabling monitoring of the network and similar actions that can validly be requested from the Nagios process through the GUI. Bad enough, but no longer a vulnerability that allows a remote attacker to run arbitrary programs on the one server in your network that can bypass every firewall one way or another.</p>

<p>I'm withholding the CVE details until Steven has had time to update the information with that contained in the above paragraph. In case I forget to update this blog-post, the CVE candidate id is CVE-2008-5028.</p>

<p>A fixed version of Nagios is available at <a href="http://www.op5.org/src/nagios-3.0.5p1.tar.gz">http://www.op5.org/src/nagios-3.0.5p1.tar.gz</a>. This fixed version is the base of op5 Monitor 4.0.1 which no longer suffers from the vulnerability discussed here.</p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2008/11/11/cross-site-request-forgery-vulnerability-6">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2008/11/11/cross-site-request-forgery-vulnerability-6#comments</comments>
		</item>
				<item>
			<title>cmd.cgi authorization bypass vulnerability in Nagios pre-3.0.5</title>
			<link>http://blogs.op5.org/blog4.php/2008/11/11/nagios-cmd-cgi-authorization-bypass-vuln</link>
			<pubDate>Tue, 11 Nov 2008 13:04:22 +0000</pubDate>			<dc:creator>Andreas Ericsson</dc:creator>
			<category domain="main">Nagios</category>			<guid isPermaLink="false">32@http://blogs.op5.org/</guid>
						<description>&lt;p&gt;Recently, Tim Starling of the Wikimedia foundation reported an issue that could allow authenticated users to bypass the authorization in cmd.cgi and submit arbitrary commands to Nagios' command pipe.&lt;/p&gt;

&lt;p&gt;The vulnerability can be proven like this:&lt;br /&gt;
A user without full privileges creates an off-site form to submit a comment to Nagios. In the custom webform, the comment_data field is altered to be a &quot;textarea&quot; rather than &quot;text&quot;, so the user can put newlines in there (note that this can easily be done with browser addons too).&lt;/p&gt;

&lt;p&gt;The evil user then creates the comment so that the textarea contains a newline, and lets the second line contain a completely different command. cmd.cgi only verifies that the user is allowed to submit the first command but sends the entire input to Nagios without checking it for newlines. Nagios reads its command-pipe line-by-line and has no way of picking up the username of the person that submitted the command, so it happily runs all the commands fed to it.&lt;/p&gt;

&lt;p&gt;For Nagios 2, this wouldn't have been such a big deal. The evil user could stop Nagios entirely, which is ofcourse (very!) bad, but that's where it ends. &lt;/p&gt;

&lt;p&gt;However, in Nagios 3, the ability to change checkcommands and their arguments was added. Authenticated users can exploit this vulnerability to cause the Nagios process to run arbitrary commands, such as emailing the Nagios configurations (with its accurate map of the network and whatever passwords are stored there) to themselves, or open up remote shell sessions originating from inside the firewall. Bad stuff indeed.&lt;/p&gt;

&lt;p&gt;I wrote a couple of patches that completely fixes this. Those patches were included in Nagios 3.0.5 and op5 Monitor 4.0.1. All users are urged to upgrade as soon as possible.&lt;/p&gt;

&lt;p&gt;This vulnerability has been assigned the candidate name CVE-2008-5027 by Steven M. Christey of Mitre. The CVE details are below.&lt;/p&gt;

&lt;p&gt;======================================================&lt;br /&gt;
Name: CVE-2008-5027&lt;br /&gt;
Status: Candidate&lt;br /&gt;
URL: &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5027&quot;&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5027&lt;/a&gt;&lt;br /&gt;
Reference: MLIST:[nagios-devel] 20081107 Security fixes completed&lt;br /&gt;
Reference: URL:http://sourceforge.net/mailarchive/forum.php?thread_name=4914396D.5010009%40op5.se&amp;amp;forum_name=nagios-devel&lt;br /&gt;
Reference: MLIST:[oss-security] 20081106 CVE request: Nagios (two issues)&lt;br /&gt;
Reference: URL:http://www.openwall.com/lists/oss-security/2008/11/06/2&lt;br /&gt;
Reference: MISC:http://www.nagios.org/development/history/nagios-3x.php&lt;br /&gt;
Reference: CONFIRM:http://www.op5.com/support/news/389-important-security-fix-available-for-op5-monitor&lt;br /&gt;
Reference: BID:32156&lt;br /&gt;
Reference: URL:http://www.securityfocus.com/bid/32156&lt;/p&gt;

&lt;p&gt;The Nagios process in (1) Nagios before 3.0.5 and (2) op5 Monitor&lt;br /&gt;
before 4.0.1 allows remote authenticated users to bypass authorization&lt;br /&gt;
checks, and trigger execution of arbitrary programs by this process,&lt;br /&gt;
via an (a) custom form or a (b) browser addon.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.op5.org/blog4.php/2008/11/11/nagios-cmd-cgi-authorization-bypass-vuln&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Recently, Tim Starling of the Wikimedia foundation reported an issue that could allow authenticated users to bypass the authorization in cmd.cgi and submit arbitrary commands to Nagios' command pipe.</p>

<p>The vulnerability can be proven like this:<br />
A user without full privileges creates an off-site form to submit a comment to Nagios. In the custom webform, the comment_data field is altered to be a "textarea" rather than "text", so the user can put newlines in there (note that this can easily be done with browser addons too).</p>

<p>The evil user then creates the comment so that the textarea contains a newline, and lets the second line contain a completely different command. cmd.cgi only verifies that the user is allowed to submit the first command but sends the entire input to Nagios without checking it for newlines. Nagios reads its command-pipe line-by-line and has no way of picking up the username of the person that submitted the command, so it happily runs all the commands fed to it.</p>

<p>For Nagios 2, this wouldn't have been such a big deal. The evil user could stop Nagios entirely, which is ofcourse (very!) bad, but that's where it ends. </p>

<p>However, in Nagios 3, the ability to change checkcommands and their arguments was added. Authenticated users can exploit this vulnerability to cause the Nagios process to run arbitrary commands, such as emailing the Nagios configurations (with its accurate map of the network and whatever passwords are stored there) to themselves, or open up remote shell sessions originating from inside the firewall. Bad stuff indeed.</p>

<p>I wrote a couple of patches that completely fixes this. Those patches were included in Nagios 3.0.5 and op5 Monitor 4.0.1. All users are urged to upgrade as soon as possible.</p>

<p>This vulnerability has been assigned the candidate name CVE-2008-5027 by Steven M. Christey of Mitre. The CVE details are below.</p>

<p>======================================================<br />
Name: CVE-2008-5027<br />
Status: Candidate<br />
URL: <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5027">http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5027</a><br />
Reference: MLIST:[nagios-devel] 20081107 Security fixes completed<br />
Reference: URL:http://sourceforge.net/mailarchive/forum.php?thread_name=4914396D.5010009%40op5.se&amp;forum_name=nagios-devel<br />
Reference: MLIST:[oss-security] 20081106 CVE request: Nagios (two issues)<br />
Reference: URL:http://www.openwall.com/lists/oss-security/2008/11/06/2<br />
Reference: MISC:http://www.nagios.org/development/history/nagios-3x.php<br />
Reference: CONFIRM:http://www.op5.com/support/news/389-important-security-fix-available-for-op5-monitor<br />
Reference: BID:32156<br />
Reference: URL:http://www.securityfocus.com/bid/32156</p>

<p>The Nagios process in (1) Nagios before 3.0.5 and (2) op5 Monitor<br />
before 4.0.1 allows remote authenticated users to bypass authorization<br />
checks, and trigger execution of arbitrary programs by this process,<br />
via an (a) custom form or a (b) browser addon.</p><div class="item_footer"><p><small><a href="http://blogs.op5.org/blog4.php/2008/11/11/nagios-cmd-cgi-authorization-bypass-vuln">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.op5.org/blog4.php/2008/11/11/nagios-cmd-cgi-authorization-bypass-vuln#comments</comments>
		</item>
			</channel>
</rss>
