<?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>An It-Slave in the digital saltmine &#187; Cool things</title>
	<atom:link href="http://www.it-slav.net/blogs/category/cool-things/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.it-slav.net/blogs</link>
	<description>Another Blog from a Geek that has no life</description>
	<lastBuildDate>Fri, 02 Jul 2010 07:33:08 +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>Howto use rndis device in Openwrt as a modem, i.e HTC Desire with Android</title>
		<link>http://www.it-slav.net/blogs/2010/07/02/howto-use-rndis-device-in-openwrt-as-a-modem-i-e-htc-desire-with-android/</link>
		<comments>http://www.it-slav.net/blogs/2010/07/02/howto-use-rndis-device-in-openwrt-as-a-modem-i-e-htc-desire-with-android/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:33:08 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[htc desire]]></category>
		<category><![CDATA[Linksys WRT160NL]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[rndis]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1840</guid>
		<description><![CDATA[Background
I wanted to use a 3G dongle with a twin SIM&#160;card as my Internet connection when I&#8217;m traveling. I&#160;have earlier decribed howto share the Internet connection and make it more flexible by using an OpenWRT&#160;router with USB&#160;interface as a bridge between Wlan and 3G/GPRS provided internet.
Unfortunatly Tele2s support personel cannot keep track of the unlogical [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>I wanted to use a 3G dongle with a twin SIM&nbsp;card as my Internet connection when I&#8217;m traveling. I&nbsp;have <a href="http://www.it-slav.net/blogs/2010/06/12/howto-use-3g-dongle-huawei-e1750-in-openwrt/">earlier</a> decribed howto share the Internet connection and make it more flexible by using an OpenWRT&nbsp;router with USB&nbsp;interface as a bridge between Wlan and 3G/GPRS provided internet.</p>
<p>Unfortunatly <a href="http://www.tele2.se">Tele2s</a> support personel cannot keep track of the unlogical rules among their different subscriptions so they fouled my to buy a twincard to my regular subscription and use that for data. After a couple of more calls to Tele2, including that they listened to a recording of when I&nbsp;ordered the twincard I&nbsp;have to give up that track because it was not possible. The twincard only works for phone calls, not data connections and especially not when I had a flatrate subscription on my master SIM&nbsp;card.</p>
<p>After some investigation I&nbsp;came to the conclusion that I&nbsp;have to use my Regular phone, a HTC&nbsp;Desire with Android as my connection to internet.</p>
<p>Unfortunatly the work done with getting the USB&nbsp;3G&nbsp;dongle was a waste of time.</p>
<p>&nbsp;<span id="more-1840"></span></p>
<h2>PreReq</h2>
<p>An OpenWRT&nbsp;router with a working USB&nbsp;interface and a rndis enabled modem, I use a HTC&nbsp;Desire.</p>
<p>&nbsp;</p>
<h2>Installation</h2>
<p>root@WRT160NL:~# opkg install kmod-usb-net-rndis</p>
<p>I also installed some USB&nbsp;packages, probably not all of them are necessery:</p>
<pre>
root@WRT160NL:~#opkg install kmod-ar9170 kmod-usb-acm kmod-usb-core kmod-usb-ohci kmod-usb-serial comgt
kmod-usb-serial-option kmod-usb-storage kmod-usb-uhci kmod-usb2&nbsp; usb-switch</pre>
<p>&nbsp;</p>
<p>Add the following to /etc/config/network</p>
<pre>
config 'interface' 'usb0'
    option 'name' 'usb0'
    option 'proto' 'dhcp'
    option 'ifname' 'usb0'
    option 'defaultroute' '0'
    option 'peerdns' '0'
 </pre>
<p>Use the same firewall rules with your 3G connection as your normal WLAN, add the yellow marked line to /etc/config/firewall:</p>
<pre>
config 'zone'
    option 'name' 'wan'
    option 'input' 'REJECT'
    option 'output' 'ACCEPT'
    option 'forward' 'REJECT'
    option 'masq' '1'
    option 'mtu_fix' '1'
<span style="background-color: rgb(255, 255, 0);">    option 'network' 'wan usb0 ppp0'</span></pre>
<p>
Do a reboot<br />
&nbsp;</p>
<h2>Test</h2>
<p>To use your new connection, run ifup</p>
<pre>
root@WRT160NL:~# ifup usb0
udhcpc (v1.15.3) started
root@OpenWrt:~# Sending discover...
Sending select for 192.168.100.100...
Lease of 192.168.100.100 obtained, lease time 864000
udhcpc: ifconfig usb0 192.168.100.100 netmask 255.255.255.0 broadcast +
udhcpc: setting default routers: 192.168.100.254
udhcpc: setting dns servers: 192.168.100.254

root@WRT160NL:~# ping www.google.com
PING www.google.com (74.125.39.104): 56 data bytes
64 bytes from 74.125.39.104: seq=0 ttl=51 time=371.025 ms
64 bytes from 74.125.39.104: seq=1 ttl=51 time=388.617 ms
64 bytes from 74.125.39.104: seq=2 ttl=51 time=316.767 ms
^C
--- www.google.com ping statistics ---
4 packets transmitted, 3 packets received, 25% packet loss
round-trip min/avg/max = 316.767/358.803/388.617 ms
</pre>
<p>Shutdown the connection with ifdown</p>
<pre>
root@WRT160NL:~# ifdown usb0</pre>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/07/02/howto-use-rndis-device-in-openwrt-as-a-modem-i-e-htc-desire-with-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install OpenWRT on LaFonera 2.0G router, FON2202</title>
		<link>http://www.it-slav.net/blogs/2010/06/28/install-openwrt-on-lafonera-2-0g-router-fon2202/</link>
		<comments>http://www.it-slav.net/blogs/2010/06/28/install-openwrt-on-lafonera-2-0g-router-fon2202/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 19:18:40 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[2.0G]]></category>
		<category><![CDATA[2202]]></category>
		<category><![CDATA[LaFonera]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1872</guid>
		<description><![CDATA[&#160;
Background
After waiting for the Hummingbird release for the LaFonera 2.0G a long time and discussed with the Fon support team when 3G&#160;dongles will work, I&#160;gave up and installed OpenWRT on my LaFonera 2.0G router.
&#160;
I&#8217;m sorry FON, you have a cool idea and nice routers but your unlogical approach to the users and communtity, finally got [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h2>Background</h2>
<p>After waiting for the <a href="http://blog.fonosfera.org/fly-baby-fly-gari-the-hummingbird-is-born/">Hummingbird</a> release for the LaFonera 2.0G a long time and discussed with the Fon support team when 3G&nbsp;dongles will work, I&nbsp;gave up and installed OpenWRT on my LaFonera 2.0G router.</p>
<p>&nbsp;</p>
<p>I&#8217;m sorry FON, you have a cool idea and nice routers but your unlogical approach to the users and communtity, finally got me to install plain OpenWRT instead.</p>
<p>&nbsp;</p>
<h2>Installation</h2>
<p>After alot of googling and testing and downloading, reading and so on, I&nbsp;finally run into a <a href="http://linwin-solutions.com/index.php?option=com_blog&amp;view=comments&amp;pid=1&amp;Itemid=0" target="_blank">guide</a> that worked for me.</p>
<p>Most of the descriptions and howto assumes that the RedBoot will accept to download a new firmware via TFTP, this is true with the early releases of 2.0G , but the one sold now do not have this feature.</p>
<p>The trick is to install a firmware that allows changing the RedBoot partition of the memory, change the RedBoot parttion and install OpenWRT&nbsp;via TFTP.</p>
<p>&nbsp;</p>
<p>The guide is unfortunatly in French, but google translate helped me to <a href="http://translate.google.se/translate?u=http%3A%2F%2Flinwin-solutions.com%2Findex.php%3Foption%3Dcom_blog%26view%3Dcomments%26pid%3D1%26Itemid%3D0&amp;sl=fr&amp;tl=en&amp;hl=&amp;ie=UTF-8">translate it</a> to English.</p>
<p>
The pitfalls I&nbsp;run into is to reboot the device several timesafter installing the hacked version of FON&nbsp;firmware: FON2202_2.2.5.0_Flipper_RedBootC_VoteGOP.image</p>
<p>The only difference is that I used a later version of <a href="http://www.openwrt.org">OpenWRT</a>. I used Backfire <a href="http://downloads.openwrt.org/backfire/10.03/atheros/">10.03</a> instead of Kamikaze <a href="ftp://downloads.linwin-solutions.com/hxcwyxwr/fonera_openwrt/fon-flash-linux/">8.9.1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/06/28/install-openwrt-on-lafonera-2-0g-router-fon2202/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto use 3G dongle Huawei E1750 in OpenWrt</title>
		<link>http://www.it-slav.net/blogs/2010/06/12/howto-use-3g-dongle-huawei-e1750-in-openwrt/</link>
		<comments>http://www.it-slav.net/blogs/2010/06/12/howto-use-3g-dongle-huawei-e1750-in-openwrt/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 18:38:03 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[Linksys]]></category>
		<category><![CDATA[Linksys WRT160NL]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[WRT160NL]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1838</guid>
		<description><![CDATA[Background
After succesfully installed my new Linksys WRT160NL with OpenWrt, the next step is to configure it. As the summer is approaching and my need for Internet access in our summer cottage will arrise. The summer cottage is in the middle of nowhere so it would be handy to put a USB dongle and the Wlan [...]]]></description>
			<content:encoded><![CDATA[<h3>Background</h3>
<p>After <a href="http://www.it-slav.net/blogs/2010/06/04/install-openwrt-on-linksys-wrt160nl/">succesfully</a> installed my new Linksys WRT160NL with OpenWrt, the next step is to configure it. As the summer is approaching and my need for Internet access in our summer cottage will arrise. The summer cottage is in the middle of nowhere so it would be handy to put a USB dongle and the Wlan router in the spot with best 3G field strength and use the WiFi to connect several computers to the router and Internet.</p>
<p>The 3G USB&nbsp;modem is a Huawei modem I&nbsp;bought for 20&nbsp;EUR and unlocked using <a href="http://www.it-slav.net/blogs/2010/05/02/unlock-huawei-modems/">this</a> guide.</p>
<p>I found an excellent <a href="http://josefsson.org/openwrt/dongle.html">guide</a> describing excactly what I&nbsp;wanted todo but it did not work 100%&nbsp;in my environment so I will describe what I did to get it running. Read the <a href="http://josefsson.org/openwrt/dongle.html">guide</a> to get background and deeper explanation of how things are done. This guide assumes that you have read the <a href="http://josefsson.org/openwrt/dongle.html">guide</a>, basic knowledge of OpenWRT, howto edit files in a Linux environment and so on.<span id="more-1838"></span></p>
<p>&nbsp;</p>
<h3>Installation</h3>
<p>The USB&nbsp;hardware and the modem need some extra packages to be installed. I installed the following:</p>
<pre>
root@WRT160NL:~#opkg install kmod-ar9170 kmod-usb-acm kmod-usb-core kmod-usb-ohci kmod-usb-serial comgt
kmod-usb-serial-option kmod-usb-storage kmod-usb-uhci kmod-usb2&nbsp; usb-switch</pre>
<p>Probably not all of them are necessery but during my tests and fiddeling these are the ones I installed.</p>
<p>&nbsp;</p>
<h3>Configuration</h3>
<p>Create /etc/modules.d/60-usb-serial:</p>
<pre>
usbserial vendor=0x12d1 product=0x1446
 </pre>
<p>The vendor and product parameters can be found by attaching the 3G modem and run:</p>
<pre>
root@WRT160NL:~# cat /proc/bus/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 2.06
S:  Manufacturer=Linux 2.6.32.10 ehci_hcd
S:  Product=Atheros AR91xx built-in EHCI controller
S:  SerialNumber=ar71xx-ehci
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  <span style="background-color: rgb(255, 255, 0);">Vendor=12d1 ProdID=1446</span> Rev= 0.00
S:  Manufacturer=HUAWEI Technology
S:  Product=HUAWEI Mobile
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usbserial_generic
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usbserial_generic
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
 </pre>
<p>The parameters are marked in yellow above.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The next step is to configure usb switch. Create /etc/usb-modeswitch.conf</p>
<pre>
########################################################
# Huawei E270+  (HSPA+ modem)

DefaultVendor= 0x12d1
DefaultProduct=0x1446

TargetVendor=  0x12d1
TargetProductList=&quot;1001,1406,140c,14ac&quot;

CheckSuccess=20

MessageContent=&quot;55534243123456780000000000000011060000000000000000000000000000&quot;</pre>
<p>I have no clue of the syntax but I&nbsp;copied it from my Ubuntu machine /etc/usb_modeswitch.d/12d1:1446 and it works:-)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Add the following to /etc/config/network</p>
<pre>
config 'interface' 'ppp0'
    option 'ifname' 'ppp0'
    option 'proto' '3g'
    option 'device' '/dev/ttyUSB0'
    option 'apn' 'internet.tele2.se'
    option 'pincode' '1234'</pre>
<p>The pincode is obvious, the apn is local and given by your local operator. It is handy to configure it to work in Ubuntu and then look at the configuration Ubuntu creates. <br />
&nbsp;</p>
<p>&nbsp;</p>
<p>The firewall rules need to be updated and I added ppp0 to the wan section in /etc/config/firewall</p>
<pre>
config 'zone'
    option 'name' 'wan'
    option 'input' 'REJECT'
    option 'output' 'ACCEPT'
    option 'forward' 'REJECT'
    option 'masq' '1'
    option 'mtu_fix' '1'
    option 'network' 'wan ppp0'</pre>
<p>To make the change to take effect run:</p>
<pre>
root@WRT160NL:~# /etc/init.d/firewall restart
 </pre>
<h3>&nbsp;</h3>
<h3>Start it</h3>
<p>Attach the modem and run:</p>
<pre>
root@WRT160NL:~# usb_modeswitch

Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found default devices (1)
Accessing device 002 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
&nbsp;OK, driver found (&quot;usbserial_generic&quot;)
&nbsp;OK, driver &quot;usbserial_generic&quot; detached

SCSI inquiry data (for identification)
-------------------------
&nbsp; Vendor String: HUAWEI&nbsp;
&nbsp;&nbsp; Model String: Mass Storage&nbsp;&nbsp;&nbsp;
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
&nbsp;&nbsp;&nbsp;&nbsp; Product: HUAWEI Mobile
&nbsp; Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
&nbsp;OK, message successfully sent
&nbsp;Device is gone, skipping any further commands

Checking for mode switch (max. 20 times, once per second) ...
&nbsp;Original device is gone already, not checking
&nbsp;Searching for target devices ...
&nbsp;Searching for target devices ...
&nbsp;Searching for target devices ...
&nbsp;Searching for target devices ...
&nbsp;Searching for target devices ...
&nbsp;Found correct target device

Mode switch succeeded. Bye.
 </pre>
<p>&nbsp;</p>
<p>logread should now give something similiar to:</p>
<pre>
Jun 12 17:29:11 WRT160NL user.info kernel: generic ttyUSB0: generic converter now disconnected from ttyUSB0
Jun 12 17:29:11 WRT160NL user.info kernel: usbserial_generic 1-1:1.0: device disconnected
Jun 12 17:29:11 WRT160NL user.warn kernel: usb 1-1: usbfs: process 1345 (usb_modeswitch) did not claim interface 0 before use
Jun 12 17:29:11 WRT160NL user.info kernel: usb 1-1: USB disconnect, address 2
Jun 12 17:29:11 WRT160NL user.info kernel: generic ttyUSB1: generic converter now disconnected from ttyUSB1
Jun 12 17:29:11 WRT160NL user.info kernel: usbserial_generic 1-1:1.1: device disconnected
Jun 12 17:29:16 WRT160NL user.info kernel: usb 1-1: new high speed USB device using ar71xx-ehci and address 3
Jun 12 17:29:16 WRT160NL user.info kernel: usb 1-1: configuration #1 chosen from 1 choice
Jun 12 17:29:16 WRT160NL user.info kernel: option 1-1:1.0: GSM modem (1-port) converter detected
Jun 12 17:29:16 WRT160NL user.info kernel: usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
Jun 12 17:29:16 WRT160NL user.info kernel: option 1-1:1.1: GSM modem (1-port) converter detected
Jun 12 17:29:16 WRT160NL user.info kernel: usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
Jun 12 17:29:16 WRT160NL user.info kernel: option 1-1:1.2: GSM modem (1-port) converter detected
Jun 12 17:29:16 WRT160NL user.info kernel: usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
Jun 12 17:29:16 WRT160NL user.info kernel: scsi3 : SCSI emulation for USB Mass Storage devices
Jun 12 17:29:16 WRT160NL user.debug kernel: usb-storage: device found at 3
Jun 12 17:29:16 WRT160NL user.debug kernel: usb-storage: waiting for device to settle before scanning
Jun 12 17:29:16 WRT160NL user.info kernel: scsi4 : SCSI emulation for USB Mass Storage devices
Jun 12 17:29:16 WRT160NL user.debug kernel: usb-storage: device found at 3
Jun 12 17:29:16 WRT160NL user.debug kernel: usb-storage: waiting for device to settle before scanning
Jun 12 17:29:21 WRT160NL user.notice kernel: scsi 3:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
Jun 12 17:29:21 WRT160NL user.debug kernel: usb-storage: device scan complete
Jun 12 17:29:21 WRT160NL user.notice kernel: scsi 4:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
Jun 12 17:29:21 WRT160NL user.notice kernel: sd 4:0:0:0: [sda] Attached SCSI removable disk
Jun 12 17:29:21 WRT160NL user.debug kernel: usb-storage: device scan complete
 </pre>
<h3>&nbsp;</h3>
<h3>Using it</h3>
<p>To start using your new configuration:</p>
<pre>
root@WRT160NL:~# ifup ppp0
SIM ready
PIN set successfully
</pre>
<p>And now ping a host on Internet</p>
<pre>
root@WRT160NL:~# ping ftp.sunet.se
PING ftp.sunet.se (194.71.11.69): 56 data bytes
64 bytes from 194.71.11.69: seq=0 ttl=55 time=119.351 ms
64 bytes from 194.71.11.69: seq=1 ttl=55 time=88.978 ms
64 bytes from 194.71.11.69: seq=2 ttl=55 time=88.751 ms
64 bytes from 194.71.11.69: seq=3 ttl=55 time=88.484 ms
64 bytes from 194.71.11.69: seq=4 ttl=55 time=128.257 ms
^C
--- ftp.sunet.se ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 88.484/102.764/128.257 ms
 </pre>
<p>Stop your connection:</p>
<pre>
root@WRT160NL:~# ifdown ppp0</pre>
<p>&nbsp;</p>
<h3>Useful links</h3>
<ul>
<li><a href="http://josefsson.org/openwrt/dongle.html">http://josefsson.org/openwrt/dongle.html </a>The excellent guide that I used as a platform, read it!</li>
<li><a href="http://www.openwrt.org">OpenWrt</a>, Linuxbased firmware for routers</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/06/12/howto-use-3g-dongle-huawei-e1750-in-openwrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install OpenWRT on Linksys WRT160NL</title>
		<link>http://www.it-slav.net/blogs/2010/06/04/install-openwrt-on-linksys-wrt160nl/</link>
		<comments>http://www.it-slav.net/blogs/2010/06/04/install-openwrt-on-linksys-wrt160nl/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 18:37:58 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Linksys WRT160NL]]></category>
		<category><![CDATA[openwrt]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1825</guid>
		<description><![CDATA[&#160;
Background
After getting fedup with the bad fon support I decided to give a new wireless router a try. After browsing internet and openwrt forums I&#160;thought that a Linksys WRT160NL would fulfill my requirements:
The requrements are:

N
3G USB&#160;dongle
Cheap

&#160;
Packing up
The installation from Linksys is crap, a CD comes with the product and if you want to configure it [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h3>Background</h3>
<p>After getting fedup with the bad fon support I decided to give a new wireless router a try. After browsing internet and openwrt forums I&nbsp;thought that a Linksys WRT160NL would fulfill my requirements:</p>
<p>The requrements are:</p>
<ul>
<li>N</li>
<li>3G USB&nbsp;dongle</li>
<li>Cheap</li>
</ul>
<p>&nbsp;<span id="more-1825"></span></p>
<h3>Packing up</h3>
<p>The installation from Linksys is crap, a CD comes with the product and if you want to configure it you need to install software from the CD. The only supported operating systems are windows or Mac, I&nbsp;run linux.</p>
<p>I skipped the CD&nbsp;and connected my Linux box with a ethernet cable to the router. I tried to connect to http://192.168.1.1 and got a login screen.</p>
<p>After some <a href="http://www.speedguide.net/broadband-view.php?hw=307">googling</a> I&nbsp;found that the default login was blank and the password admin.</p>
<p>I managed to configure my new router after logging in. I&nbsp;do not now the purpose of the CD, real stupid.</p>
<p>&nbsp;</p>
<h3>Install OpenWRT</h3>
<p>I&nbsp;read the <a href="http://wiki.openwrt.org/toh/linksys/wrt160nl.">instructions</a> to get OpenWRT on my Linksys WRT160NL and tried the &quot;OEM&nbsp;easy installation&quot;. According to the instruction <a href="http://downloads.openwrt.org/backfire/10.03/ar71xx/openwrt-ar71xx-wrt160nl-squashfs.bin">openwrt-ar71xx-wrt160nl-squashfs.bin</a> is the image to install. Unfortunatly I get an errormessage &quot; Firmware Upgrade Failed!&quot;</p>
<p>I&nbsp;upgraded the firmware to the latest Linksys firmware and after that tried the OpenWRT&nbsp;firmware with the same error message.</p>
<p>After some bad language and alot of googling I found a <a href="https://dev.openwrt.org/ticket/7300">bug</a> reported that the version I&nbsp;tried to install always gives that message when installed from the Linksys webgui.</p>
<p>So I&nbsp;tried the Beta <a href="http://downloads.openwrt.org/backfire/10.03-beta/ar71xx/openwrt-ar71xx-wrt160nl-squashfs.bin">version</a> instead and finally I success message.</p>
<p>I&nbsp;telneted to 192.168.1.1 and run passwd to change my password.</p>
<p>ssh to 192.168.1.</p>
<p>run:</p>
<pre>
root@OpenWrt:~# opkg update

root@OpenWrt:~# opkg install kmod-ath9k

root@OpenWrt:~# opkg install  hostapd</pre>
<p>And start configure.</p>
<p>&nbsp;</p>
<h3>Update BETA to stable version</h3>
<p>It was a annoying feeling to run beta when a stable version existed.</p>
<p>I&nbsp;used the luci webgui to update the firmware to the stable version and it looked alright. I&nbsp;managed to log in both with ssh and webgui.</p>
<p>But when I&nbsp;tried to install a new package it gave me an error message that there was no free disk, sigh!</p>
<p>I installed the BETA version and it worked, tried RC3 and the same problem with no free disk.</p>
<p>After some bad language and a lot of fiddeling I&nbsp;updated to the stable with the checkbox &quot;Keep configuration files&quot; unchecked and this time it works flawless.</p>
<p>Follow the guidlines above to change root password, update the software package list, install wlansupport, WAP support&nbsp; and start configure.</p>
<p>&nbsp;</p>
<p>A succefull login below:</p>
<pre>
peter@peter-laptop:~$ ssh -l root 192.168.1.1
root@192.168.1.1's password:

BusyBox v1.15.3 (2010-04-06 03:14:11 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 Backfire (10.03, r20728) --------------------------
  * 1/3 shot Kahlua    In a shot glass, layer Kahlua
  * 1/3 shot Bailey's  on the bottom, then Bailey's,
  * 1/3 shot Vodka     then Vodka.
 ---------------------------------------------------
</pre>
<pre>
root@WRT160NL:~# uname -a
Linux WRT160NL 2.6.32.10 #20 Tue Apr 6 15:01:26 CEST 2010 mips GNU/Linux
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/06/04/install-openwrt-on-linksys-wrt160nl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenBSD 4.7 is out</title>
		<link>http://www.it-slav.net/blogs/2010/05/26/openbsd-4-7-is-out/</link>
		<comments>http://www.it-slav.net/blogs/2010/05/26/openbsd-4-7-is-out/#comments</comments>
		<pubDate>Wed, 26 May 2010 16:51:36 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1819</guid>
		<description><![CDATA[This is old news but still important.
&#160;

- OpenBSD 4.7 RELEASED -------------------------------------------------

May 19, 2010.

We are pleased to announce the official release of OpenBSD 4.7.
This is our 27th release on CD-ROM (and 28th via FTP).  We remain
proud of OpenBSD's record of more than ten years with only two remote
holes in the default install.

As in our previous [...]]]></description>
			<content:encoded><![CDATA[<p>This is old news but still important.</p>
<p>&nbsp;</p>
<pre wrap="">
- OpenBSD 4.7 RELEASED -------------------------------------------------

May 19, 2010.

We are pleased to announce the official release of OpenBSD 4.7.
This is our 27th release on CD-ROM (and 28th via FTP).  We remain
proud of OpenBSD's record of more than ten years with only two remote
holes in the default install.
<span id="more-1819"></span>
As in our previous releases, 4.7 provides significant improvements,
including new features, in nearly all areas of the system:

 - New/extended platforms:
    o OpenBSD/alpha
      o Added support for the DS15/DS25/ES45.
    o OpenBSD/loongson
      New platform for systems based on the Loongson 2E and 2F MIPS-compatible
      processors. Supported machines include:
      o Lemote Fuloong 2F mini-PC
      o Lemote Lynloong all-in-one-PC
      o Lemote Yeeloong netbook (8.9&quot; and 10.1&quot; models)
      o EMTEC Gdium Liberty 1000 netbook
    o OpenBSD/sgi
      o Added support for multi-node SGI Origin systems, in M mode.
      o Added support for the SGI Origin 350, Onyx 350, Onyx 4 and
        Tezro systems.
      o Added SMP support on the SGI Octane.
      o Support for many more onboard devices on Octane and Origin systems.
    o OpenBSD/socppc
      o Added support for the RouterBOARD RB600A.
    o OpenBSD/sparc64
      o Preliminary support for running OpenBSD in a guest domain on top of
        an OpenBSD control domain on sun4v machines.

 - Improved hardware support, including:
    o Revamped SCSI midlayer and improved driver support.
    o UDF 2.5 and 2.6 (HDDVD and Blu-ray) disks support.
    o Added mpath(4), a driver that steals paths to scsi devices if they could
      be available via multiple paths and then made available via mpath(4).
    o New aibs(4) driver for ASUSTeK AI Booster hardware monitoring.
    o New uthum(4) driver for the TEMPerHUM USB temperature and humidity
      sensors.
    o New utrh(4) driver for USBRH temperature and humidity sensors.
    o New uyurex(4) driver for the Maywa-denki &amp; KAYAC YUREX twitch/jiggle of
      knee sensor.
    o New urndis(4) driver for remote NDIS Ethernet over USB devices (phones).
    o New xf86-video-wsudl(4) Xorg driver for USB DisplayLink devices
      supported by udl(4).
    o New mpii(4) driver for LSI Logic Fusion MPT Message Passing Interface II
      based SAS 2 controllers.
    o New athn(4) driver for Atheros IEEE 802.11a/g/n wireless network devices.
    o New alc(4) driver for Atheros AR8131/AR8132 10/100/Gigabit Ethernet
      devices.
    o New lisa(4) driver for STMicroelectronics LIS331DL MEMS motion sensors.
    o New gcu(4) driver for Intel EP80579 Global Configuration Unit.
    o New lom(4) driver for LOMLite and LOMLite2 as found on many of Sun's
      UltraSPARC-IIi servers.
    o New vsw(4) driver for virtual switches on sun4v machines.
    o New vds(4) driver for virtual disk servers on sun4v machines.
    o Support for EP80579 integrated Ethernet and ICH9 M V has been added
      to em(4).
    o Support for 82599 and SFP+ 82598 devices has been added to ix(4).
    o Support for the Sun GigabitEthernet SBus Adapter 1.0/1.1 has been
      added to ti(4).
    o Support for SBus variants of the QLogic Fibre Channel host adapters
      has been added to isp(4).
    o Support for SBus variants of the Sun Gigabit Ethernet has been added
      to gem(4).
    o Support for Intel WiFi Link 1000 and Intel Centrino
      Advanced-N 6200/Ultimate-N 6300 has been added to iwn(4).
    o Support for Ralink RT3572 based 802.11n devices has been added to run(4).
    o VIA Tremor 5.1, M-Audio Revolution 5.1 cards has been added to envy(4).
    o New uhts(4) driver for USB HID touchscreens.
    o Improved touchscreen support in the xf86-input-ws(4) Xorg driver and
      improved calibration using the new device properties from Xinput.
    o Support for ON CAT6095 and ON CAT34TS02 temperature sensors added
      to sdtemp(4).
    o Several improvements and bug fixes to existing Ethernet drivers,
      including em(4), re(4), ti(4) and vge(4).
    o Support for the PIC PCI-X controller added to the SGI xbridge(4) driver.
    o Support for the onboard Fast Ethernet interface found on SGI Octane
      and many SGI Origin family systems, iec(4).
    o Support for more SGI input and video devices on Octane and Origin
      systems, with iockbc(4), impact(4), and odyssey(4).
    o Improved PCI resource allocation; more hardware left unconfigured by
      the machine's firmware (including hotplugged hardware) should work now.
    o Support for recording/full-duplex added to mavb(4).
    o Improved support for USB audio devices in uaudio(4).
    o Improved support for bwi(4) devices on strict-alignment architectures
      like armish.
    o Eliminate usage of SCSI tagged queueing mechanisms other than simple
      queuing, thus avoiding incorrect implementations on various disk devices.
    o Eliminate spurious dhclient(8) error messages when the specified
      interface does not exist.
    o Eliminate spurious softraid(4) error messages for removable devices
      without media.

 - New tools:
    o newfs_ext2fs(8) for creating ext2 filesystems.
    o mkuboot(8) for creating U-Boot boot loader images.
    o midicat(1) MIDI server allowing MIDI programs to communicate
    o POSIX-compliant fuser(1) to identify process IDs holding a file open

 - Filesystem midlayer improvements:
    o Dynamic Buffer Cache now supported to a max size set with sysctl
      kern.bufcachepercent
    o Dynamic VFS name cache rewrite, now uses Red/Black trees instead of
      linked lists.
    o Numerous NFS client stability fixes.
    o Fix FAT32 mounting.
    o Fix cd9660 directory handling to eliminate looping and random
      truncation of directory entries.
    o Fix various internal locking problems with cd9660, udf, msdosfs
      and ffs file systems.

 - pf(4) improvements:
    o nat-to, rdr-to, binat-to options replace the nat, rdr and binat
      translation rules.
      changes for more info.
    o The route-to, reply-to, dup-to and fastroute options in pf.conf
      move to filteropts.
    o pf(4) can now translate packets between different routing domains.
    o Added -S and -L options to pfctl(8) to store and load pf state table
      from a file.
    o Added support for IPV4 and IPv6 divert sockets.

 - OpenBGPD, OpenOSPFD and other routing daemon improvements:
    o Update capability code in bgpd(8) to follow RFC 5492.
    o BGP MPLS VPN (RFC 4364) support added to the bgpd RIB.
    o In bgpd(8), implement the RFC4486 BGP Cease Notification
      Message subcodes.
    o It is now possible to enable/disable specific BGP capabilities.
    o Update bgpctl(8) irrfilter to support IPv6 and 4-byte AS numbers.
    o Minimal router-dead-time of 1 second and sub-second hello intervals
      added to ospfd(8). Additionally it is now possible to specify
      sub-second SPF timers for faster route fail-over.
    o ospf6d(8) is now installed by default. The RIB can be synced with
      the kernel routing table now. Support for AS-ext LSA has been added.
      This is still work-in-progress but testing is highly appreciated.
    o ldpd -- the MPLS label distribution protocol daemon -- is now
      installed by default. A custom kernel with option MPLS is needed
      to use it.

 - Generic network stack improvements:
    o brconfig is now integrated into ifconfig(8)
    o Added vether(4), a virtual Ethernet device.
    o Two bugs in IPsec/HMAC-SHA2 were fixed, resulting in an incompatibility
      with the HMAC-SHA-256/384/512 hash algorithms with previous versions
      of OpenBSD and other IPsec implementations sharing the bugs.
    o In dhcpd(8), echo back the Relay Agent Information option if present,
      and add support for the ipsec-tunnel hardware type.
    o Make dhcrelay(8) pick up the routing domain from the specified interface
      and use that rdomain for relaying the packets to the server.
    o Added support in dhcrelay(8) for RFC3046 &quot;DHCP-over-ipsec&quot;.
    o Make the tcpdump(8) BGP OPEN capability parser RFC 5492 compliant.
    o Added an exec command to route(8) to run a process and its children
      in a specified routing domain.
    o ifconfig(8) now deals with more than 64 alias addresses.
    o Various fixes to mbuf defragmenting and mbuf chain copying
      improve reliability.

 - Assorted improvements:
    o malloc(3) now has an S flag to turn on the options that help debugging
      and improve security.
    o Updated terminfo(3) database and ncurses(3) library.
    o Added support for lazy binding in ld.so(1) on hppa.
    o Added POSIX silent check option (-C) to sort(1).
    o Added POSIX extended regular expression support to sed(1) (-E option).
    o Added GNU-compatible macro prefix option (-P) to m4(1).
    o Make it possible to specify a port in resolv.conf(5).
    o Improved FILE locking support in stdio(3).
    o Added SO_SNDTIMEO and SO_RCVTIMEO support in pthreads(3).
    o cdio(1) no longer prints bogus information if no TOC is found on
      the disk.
    o New -v flag causes cdio(1) to print profile and feature information.
    o whois(1) no longer attempts to keep the memory of 6Bone alive.
    o Added per-application MIDI-controlled volume knob to aucat(1)
    o Added MMC and MTC support to aucat(1) making possible MIDI-to-audio
      synchronization.
    o Added mio_open(3) interface to access hardware and software MIDI ports
    o Many memory leaks found by parfait and eliminated.
    o Make handling of floppy disk disklabels more reliable by properly
      initializing starting label.

 - Install/Upgrade process changes:
    o Take more care to ensure all filesystems are umount'ed when restarting
      an install or upgrade.
    o If no possible root disk is found, keep checking until one appears.
    o The default ftp directory for -stable is now the release directory
      instead of the snapshot directory.
    o Selection of TZ during installs is no longer confused by
      trailing slashes.
    o If /etc/X11 is found during upgrades, add the X sets to the list
      of default sets to install.

 - OpenSSH 5.5:
    o New features:
      o SSH protocol 1 is disabled by default.
      o Remove the libsectok/OpenSC-based smartcard code and add support
        for PKCS#11 tokens.
      o Add support for certificate authentication of users and hosts
        using a new, minimal OpenSSH certificate format (not X.509).
      o Added a 'netcat mode' to ssh(1).
      o Add the ability to revoke keys in sshd(8) and ssh(1).
      o Rewrite the ssh(1) multiplexing support to support non-blocking
        operation of the mux master.
      o Add a 'read-only' mode to sftp-server(8) that disables open in
        write mode and all other fs-modifying protocol methods. (bz#430)
      o Allow setting an explicit umask on the sftp-server(8) commandline
        to override whatever default the user has. (bz#1229)
      o Many improvements to the sftp(1) client.
      o New RSA keys will be generated with a public exponent of 65537
        instead of the previous value 35.
      o Passphrase-protected SSH protocol 2 private keys are now protected
        with AES-128 instead of 3DES.
    o The following significant bugs have been fixed in this release:
      o Fixed a minor information leak of environment variables specified in
        authorized_keys if an attacker happens to know the public key in use.
      o When using ChrootDirectory, make sure we test for the existence of
        the user's shell inside the chroot and not outside. (bz#1679)
      o Cache user and group name lookups in sftp-server using
        user_from_[ug]id(3) to improve performance on hosts where these
        operations are slow. (bz#1495)
      o Fix problem that prevented passphrase reading from being interrupted
        in some circumstances. (bz#1590)
      o Ignore and log any Protocol 1 keys where the claimed size is not
        equal to the actual size.
      o Make HostBased authentication work with a ProxyCommand. (bz#1569)
      o Avoid run-time failures when specifying hostkeys via a relative path
        by prepending the current working directory in these cases. (bz#1290)
      o Do not prompt for a passphrase if we fail to open a keyfile, and log
        the reason why the open failed to debug. (bz#1693)
      o Document that the PubkeyAuthentication directive is allowed in a
        sshd_config(5) Match block. (bz#1577)
      o When converting keys, truncate key comments at 72 chars as per
        RFC4716. (bz#1630)
      o Do not allow logins if /etc/nologin exists but is not readable by
        the user logging in.
      o Output a debug log if sshd(8) can't open an existing
        authorized_keys. (bz#1694)
      o Quell tc[gs]etattr(3) warnings when forcing a tty (ssh -tt), since
        we usually don't actually have a tty to read/set. (bz#1686)
      o Prevent sftp(1) from crashing when given a &quot;-&quot; without a command;
        also, allow whitespace to follow a &quot;-&quot;. (bz#1691)
      o After sshd(8) receives a SIGHUP, ignore subsequent HUPs while
        sshd(8) re-execs itself; prevents two HUPs in quick succession
        from resulting in sshd(8) dying. (bz#1692)
      o Clarify in sshd_config(5) that StrictModes does not apply to
        ChrootDirectory; permissions and ownership are always checked
        when chrooting. (bz#1532)
      o Set close-on-exec on various descriptors so they don't get leaked
        to child processes. (bz#1643)
      o Fix very rare race condition in x11/agent channel allocation
      o Fix incorrect exit status when multiplexing and channel ID 0 is
        recycled. (bz#1570)
      o Fail with an error when an attempt is made to connect to a server
        with ForceCommand=internal-sftp with a shell session. (bz#1606)
      o Warn but do not fail if stat(2)ing the subsystem binary
        fails. (bz#1599)
      o Change &quot;Connecting to host...&quot; message to &quot;Connected to host.&quot; and
        delay it until after the sftp protocol connection has been
        established. (bz#1588)
      o Use the HostKeyAlias rather than the hostname specified on the
        commandline when prompting for passwords. (bz#1039)
      o Correct off-by-one in percent_expand(). (bz#1607)
      o Fix passing of empty options from scp(1) and sftp(1) to the
        underlying ssh(1); also add support for the stop option &quot;--&quot;.
      o Fix an incorrect magic number and typo in PROTOCOL. (bz#1688)
      o Don't escape backslashes when displaying the SSH2 banner. (bz#1533)
      o Don't unnecessarily dup() the in and out fds for
        sftp-server(8). (bz#1566)
      o Force use of the correct hash function for random-art signature
        display. (bz#1611)
      o Do not fall back to adding keys without constraints when the agent
        refuses the constrained add request. (bz#1612)
      o Fix a race condition in ssh-agent(1) that could result in a wedged
        or spinning agent. (bz#1633)
      o Flush stdio before exec() to ensure that everything has made it out
        before the streams go away. (bz#1596)
      o Set FD_CLOEXEC on in/out sockets in sshd(8). (bz#1706)

 - Over 5,800 ports, major robustness and speed improvements in package tools.
 - Many pre-built packages for each architecture:
    o i386: 5951
    o sparc64: 5745
    o alpha: 5641
    o sh: 768
    o amd64: 5879
    o powerpc: 5785
    o sparc: 4053
    o arm: 3711
    o hppa: 5500
    o vax: 1785
    o mips64: 3690
    o mips64el: 4316

 - Some highlights:
    o Gnome 2.28.2.
    o KDE 3.5.10.
    o Xfce 4.6.1.
    o MySQL 5.1.42.
    o PostgreSQL 8.4.2.
    o Postfix 2.6.5.
    o OpenLDAP 2.3.43.
    o Mozilla Firefox 3.0.18 and 3.5.8.
    o Mozilla Thunderbird 2.0.0.23.
    o OpenOffice.org 3.1.1.
    o Emacs 21.4 and 22.3
    o Vim 7.2.267.
    o PHP 5.2.12.
    o Python 2.4.6, 2.5.4 and 2.6.3.
    o Ruby 1.8.6.369.

 - As usual, steady improvements in manual pages and other documentation.

 - The system includes the following major components from outside suppliers:
    o Xenocara (based on X.Org 7.4 with xserver 1.6.5 + patches,
      freetype 2.3.9, fontconfig 2.6.0, Mesa 7.4.2, xterm 250 and more)
    o Gcc 2.95.3 (+ patches) and 3.3.5 (+ patches)
    o Perl 5.10.1 (+ patches)
    o Our improved and secured version of Apache 1.3, with SSL/TLS
      and DSO support
    o OpenSSL 0.9.8k (+ patches)
    o Groff 1.15
    o Sendmail 8.14.3, with libmilter
    o Bind 9.4.2-P2 (+ patches)
    o Lynx 2.8.6rel.5 with HTTPS and IPv6 support (+ patches)
    o Sudo 1.7.2
    o Ncurses 5.7
    o Latest KAME IPv6
    o Heimdal 0.7.2 (+ patches)
    o Arla 0.35.7
    o Binutils 2.15 (+ patches)
    o Gdb 6.3 (+ patches)

If you'd like to see a list of what has changed between OpenBSD 4.6
and 4.7, look at

        <a href="http://www.openbsd.org/plus47.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/plus47.html</a>

Even though the list is a summary of the most important changes
made to OpenBSD, it still is a very very long list.

------------------------------------------------------------------------
- SECURITY AND ERRATA --------------------------------------------------

We provide patches for known security threats and other important
issues discovered after each CD release.  As usual, between the
creation of the OpenBSD 4.7 FTP/CD-ROM binaries and the actual 4.7
release date, our team found and fixed some new reliability problems
(note: most are minor and in subsystems that are not enabled by
default).  Our continued research into security means we will find
new security problems -- and we always provide patches as soon as
possible.  Therefore, we advise regular visits to

        <a href="http://www.openbsd.org/security.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/security.html</a>
and
	<a href="http://www.openbsd.org/errata.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/errata.html</a>

Security patch announcements are sent to the <a href="mailto:security-announce@OpenBSD.org" class="moz-txt-link-abbreviated">security-announce@OpenBSD.org</a>
mailing list.  For information on OpenBSD mailing lists, please see:

	<a href="http://www.openbsd.org/mail.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/mail.html</a>

------------------------------------------------------------------------
- CD-ROM SALES ---------------------------------------------------------

OpenBSD 4.7 is also available on CD-ROM.  The 3-CD set costs $50 CDN and
is available via mail order and from a number of contacts around the
world.  The set includes a colourful booklet which carefully explains the
installation of OpenBSD.  A new set of cute little stickers is also
included (sorry, but our FTP mirror sites do not support STP, the Sticker
Transfer Protocol).  As an added bonus, the second CD contains an audio
track, a song entitled &quot;I'm still here&quot;.  MP3 and OGG versions of
the audio track can be found on the first CD.

Lyrics (and an explanation) for the songs may be found at:

    <a href="http://www.openbsd.org/lyrics.html#47" class="moz-txt-link-freetext">http://www.OpenBSD.org/lyrics.html#47</a>

Profits from CD sales are the primary income source for the OpenBSD
project -- in essence selling these CD-ROM units ensures that OpenBSD
will continue to make another release six months from now.

The OpenBSD 4.7 CD-ROMs are bootable on the following four platforms:

  o i386
  o amd64
  o macppc
  o sparc64

(Other platforms must boot from floppy, network, or other method).

For more information on ordering CD-ROMs, see:

        <a href="http://www.openbsd.org/orders.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/orders.html</a>

The above web page lists a number of places where OpenBSD CD-ROMs
can be purchased from.  For our default mail order, go directly to:

        <a href="https://https.openbsd.org/cgi-bin/order" class="moz-txt-link-freetext">https://https.OpenBSD.org/cgi-bin/order</a>

All of our developers strongly urge you to buy a CD-ROM and support
our future efforts.  Additionally, donations to the project are
highly appreciated, as described in more detail at:

        <a href="http://www.openbsd.org/goals.html#funding" class="moz-txt-link-freetext">http://www.OpenBSD.org/goals.html#funding</a>

------------------------------------------------------------------------
- OPENBSD FOUNDATION ---------------------------------------------------

For those unable to make their contributions as straightforward gifts,
the OpenBSD Foundation (<a href="http://www.openbsdfoundation.org/" class="moz-txt-link-freetext">http://www.openbsdfoundation.org</a>) is a Canadian
not-for-profit corporation that can accept larger contributions and
issue receipts.  In some situations, their receipt may qualify as a
business expense writeoff, so this is certainly a consideration for
some organizations or businesses.  There may also be exposure benefits
since the Foundation may be interested in participating in press releases.
In turn, the Foundation then uses these contributions to assist OpenBSD's
infrastructure needs.  Contact the foundation directors at
<a href="mailto:directors@openbsdfoundation.org" class="moz-txt-link-abbreviated">directors@openbsdfoundation.org</a> for more information.

------------------------------------------------------------------------
- T-SHIRT SALES --------------------------------------------------------

The OpenBSD distribution companies also sell tshirts and polo shirts.
And our users like them too.  We have a variety of shirts available,
with the new and old designs, from our web ordering system at, as
described above.

The OpenBSD 4.7 t-shirts are available now.  We also sell our older
shirts, as well as a selection of OpenSSH t-shirts.

------------------------------------------------------------------------
- FTP INSTALLS ---------------------------------------------------------

If you choose not to buy an OpenBSD CD-ROM, OpenBSD can be easily
installed via FTP.  Typically you need a single small piece of boot
media (e.g., a boot floppy) and then the rest of the files can be
installed from a number of locations, including directly off the
Internet.  Follow this simple set of instructions to ensure that
you find all of the documentation you will need while performing
an install via FTP.  With the CD-ROMs, the necessary documentation
is easier to find.

1) Read either of the following two files for a list of ftp
   mirrors which provide OpenBSD, then choose one near you:

        <a href="http://www.openbsd.org/ftp.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/ftp.html</a>
        <a href="ftp://ftp.openbsd.org/pub/OpenBSD/4.7/ftplist" class="moz-txt-link-freetext">ftp://ftp.OpenBSD.org/pub/OpenBSD/4.7/ftplist</a>

   As of May 19, 2010, the following ftp mirror sites have the 4.7 release:

	<a href="ftp://ftp.eu.openbsd.org/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://ftp.eu.openbsd.org/pub/OpenBSD/4.7/</a>	Stockholm, Sweden
	<a href="ftp://ftp.bytemine.net/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://ftp.bytemine.net/pub/OpenBSD/4.7/</a>         Oldenburg, Germany
	<a href="ftp://mirror.aarnet.edu.au/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://mirror.aarnet.edu.au/pub/OpenBSD/4.7/</a>     Brisbane, Australia
	<a href="ftp://ftp.wu-wien.ac.at/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://ftp.wu-wien.ac.at/pub/OpenBSD/4.7/</a>        Vienna, Austria
	<a href="ftp://ftp.usa.openbsd.org/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://ftp.usa.openbsd.org/pub/OpenBSD/4.7/</a>	CO, USA
	<a href="ftp://ftp5.usa.openbsd.org/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://ftp5.usa.openbsd.org/pub/OpenBSD/4.7/</a>	CA, USA
	<a href="ftp://obsd.cec.mtu.edu/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://obsd.cec.mtu.edu/pub/OpenBSD/4.7/</a>         Michigan, USA

	The release is also available at the master site:

	<a href="ftp://ftp.openbsd.org/pub/OpenBSD/4.7/" class="moz-txt-link-freetext">ftp://ftp.openbsd.org/pub/OpenBSD/4.7/</a>	        Alberta, Canada

	However it is strongly suggested you use a mirror.

   Other mirror sites may take a day or two to update.

2) Connect to that ftp mirror site and go into the directory
   pub/OpenBSD/4.7/ which contains these files and directories.
   This is a list of what you will see:

        ANNOUNCEMENT     armish/          mvme68k/         sparc64/
        Changelogs/      ftplist          mvme88k/         src.tar.gz
        HARDWARE         hp300/           packages/        sys.tar.gz
        PACKAGES         hppa/            ports.tar.gz     tools/
        PORTS            i386/            root.mail        vax/
        README           landisk/         sgi/             xenocara.tar.gz
        alpha/           mac68k/          socppc/          zaurus/
        amd64/           macppc/          sparc/

   It is quite likely that you will want at LEAST the following
   files which apply to all the architectures OpenBSD supports.

        README          - generic README
        HARDWARE        - list of hardware we support
        PORTS           - description of our &quot;ports&quot; tree
        PACKAGES        - description of pre-compiled packages
        root.mail       - a copy of root's mail at initial login.
			  (This is really worthwhile reading).

3) Read the README file.  It is short, and a quick read will make
   sure you understand what else you need to fetch.

4) Next, go into the directory that applies to your architecture,
   for example, i386.  This is a list of what you will see:

	INSTALL.i386    cd47.iso        floppyB47.fs    pxeboot*
	INSTALL.linux   cdboot*         floppyC47.fs    xbase47.tgz
	MD5             cdbr*           game47.tgz      xetc47.tgz
	base47.tgz      cdemu47.iso     index.txt       xfont47.tgz
	bsd*            comp47.tgz      install47.iso   xserv47.tgz
	bsd.mp*         etc47.tgz       man47.tgz       xshare47.tgz
	bsd.rd*         floppy47.fs     misc47.tgz

   If you are new to OpenBSD, fetch <span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>at least<span class="moz-txt-tag">_</span></span> the file INSTALL.i386
   and the appropriate floppy*.fs or install47.iso files.  Consult the
   INSTALL.i386 file if you don't know which of the floppy images
   you need (or simply fetch all of them).

   If you use the install47.iso file (roughly 200MB in size), then you
   do not need the various *.tgz files since they are contained on that
   one-step ISO-format install CD.

5) If you are an expert, follow the instructions in the file called
   README; otherwise, use the more complete instructions in the
   file called INSTALL.i386.  INSTALL.i386 may tell you that you
   need to fetch other files.

6) Just in case, take a peek at:

        <a href="http://www.openbsd.org/errata.html" class="moz-txt-link-freetext">http://www.OpenBSD.org/errata.html</a>

   This is the page where we talk about the mistakes we made while
   creating the 4.7 release, or the significant bugs we fixed
   post-release which we think our users should have fixes for.
   Patches and workarounds are clearly described there.

Note: If you end up needing to write a raw floppy using Windows,
      you can use &quot;fdimage.exe&quot; located in the pub/OpenBSD/4.7/tools
      directory to do so.

------------------------------------------------------------------------
- X.ORG FOR MOST ARCHITECTURES -----------------------------------------

X.Org has been integrated more closely into the system.  This release
contains X.Org 7.4.  Most of our architectures ship with X.Org, including
amd64, sparc, sparc64 and macppc.  During installation, you can install
X.Org quite easily.  Be sure to try out xdm(1) and see how we have
customized it for OpenBSD.

------------------------------------------------------------------------
- PORTS TREE -----------------------------------------------------------

The OpenBSD ports tree contains automated instructions for building
third party software.  The software has been verified to build and
run on the various OpenBSD architectures.  The 4.7 ports collection,
including many of the distribution files, is included on the 3-CD
set.  Please see the PORTS file for more information.

Note: some of the most popular ports, e.g., the Apache web server
and several X applications, come standard with OpenBSD.  Also, many
popular ports have been pre-compiled for those who do not desire
to build their own binaries (see BINARY PACKAGES, below).

------------------------------------------------------------------------
- BINARY PACKAGES WE PROVIDE -------------------------------------------

A large number of binary packages are provided.  Please see the PACKAGES
file (<a href="ftp://ftp.openbsd.org/pub/OpenBSD/4.7/PACKAGES" class="moz-txt-link-freetext">ftp://ftp.OpenBSD.org/pub/OpenBSD/4.7/PACKAGES</a>) for more details.

------------------------------------------------------------------------
- SYSTEM SOURCE CODE ---------------------------------------------------

The CD-ROMs contain source code for all the subsystems explained
above, and the README (<a href="ftp://ftp.openbsd.org/pub/OpenBSD/4.7/README" class="moz-txt-link-freetext">ftp://ftp.OpenBSD.org/pub/OpenBSD/4.7/README</a>)
file explains how to deal with these source files.  For those who
are doing an FTP install, the source code for all four subsystems
can be found in the pub/OpenBSD/4.7/ directory:

        xenocara.tar.gz     ports.tar.gz   src.tar.gz     sys.tar.gz

------------------------------------------------------------------------
- THANKS ---------------------------------------------------------------

Ports tree and package building by Jasper Lievisse Adriaanse, Michael Erdely,
Simon Bertrang, Stuart Henderson, Antoine Jacoutot, Robert Nagy,
Nikolay Sturm, and Christian Weisgerber.  System builds by Theo de Raadt,
Mark Kettenis, and Miod Vallat.  X11 builds by Todd Fries and Miod Vallat.
ISO-9660 filesystem layout by Theo de Raadt.

We would like to thank all of the people who sent in bug reports, bug
fixes, donation cheques, and hardware that we use.  We would also like
to thank those who pre-ordered the 4.7 CD-ROM or bought our previous
CD-ROMs.  Those who did not support us financially have still helped
us with our goal of improving the quality of the software.

Our developers are:

    Alexander Bluhm, Alexander Hall, Alexander von Gernler,
    Alexander Yurchenko, Alexandre Ratchov, Alexey Vatchenko,
    Anders Magnusson, Andreas Gunnarsson, Anil Madhavapeddy,
    Antoine Jacoutot, Ariane van der Steldt, Artur Grabowski,
    Austin Hook, Benoit Lecocq, Bernd Ahlers, Bob Beck, Bret Lambert,
    Can Erkin Acar, Chad Loder, Charles Longeau, Chris Kuethe,
    Christian Weisgerber, Claudio Jeker, Dale Rahn, Damien Bergamini,
    Damien Miller, Dariusz Swiderski, Darren Tucker,
    David Gwynne,  David Hill, David Krause, Edd Barrett, Eric Faurot,
    Esben Norby,  Fabien Romano, Federico G. Schwindt, Felix Kronlage,
    Gilles Chehade, Giovanni Bechis, Gordon Willem Klok,
    Henning Brauer, Ian Darwin, Igor Sobrado, Ingo Schwarze,
    Jacek Masiulaniec, Jacob Meuser, Jakob Schlyter, Janne Johansson,
    Jared Yanovich, Jason Dixon, Jason George, Jason McIntyre,
    Jason Meltzer, Jasper Lievisse Adriaanse, Jim Razmus II, Joel Sing,
    Joerg Goltermann, Johan Mson Lindman, Jolan Luff, Jonathan Armani,
    Jonathan Gray, Jordan Hargrave, Joshua Stein, Kenneth R Westerback,
    Kevin Lo, Kevin Steves, Kjell Wooding, Kurt Miller, Landry Breuil,
    Laurent Fanis, Marc Espie, Marco Peereboom, Marco Pfatschbacher,
    Marco S Hyman, Marcus Glocker, Marek Vasut, Mark Kettenis,
    Mark Uemura, Markus Friedl, Martin Reindl, Martynas Venckus,
    Mathieu Sauve-Frankel, Mats O Jansson, Matthias Kilian,
    Matthieu Herrb, Michael Erdely, Michael Knudsen, Michele Marchetto,
    Mike Larkin, Miod Vallat, Moritz Grimm, Moritz Jodeit,
    Nicholas Marriott, Nick Holland, Nikolay Sturm, Okan Demirmen,
    Oleg Safiullin, Otto Moerbeek, Owain Ainsworth, Paul de Weerd,
    Paul Irofti, Peter Hessler, Peter Stromberg, Peter Valchev,
    Philip Guenther, Pierre-Emmanuel Andre, Pierre-Yves Ritschard,
    Rainer Giedat, Reyk Floeter, Robert Nagy, Rui Reis,
    Ryan Thomas McBride, Simon Bertrang, Simon Perreault, Stefan Kempf,
    Stefan Sperling, Stephan A. Rickauer, Steven Mestdagh,
    Stuart Henderson, Takuya Asada, Ted Unangst, Theo de Raadt,
    Thordur I Bjornsson, Tobias Stoeckmann, Tobias Weingartner,
    Todd C. Miller, Todd Fries, Will Maier, William Yodlowsky,
    Xavier Santolaria, Yasuoka Masahiko, Yojiro Uo
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/05/26/openbsd-4-7-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable Huawei E1750 in Ubuntu 10.04</title>
		<link>http://www.it-slav.net/blogs/2010/05/23/enable-huawei-e1750-in-ubuntu-10-04/</link>
		<comments>http://www.it-slav.net/blogs/2010/05/23/enable-huawei-e1750-in-ubuntu-10-04/#comments</comments>
		<pubDate>Sun, 23 May 2010 07:10:27 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Huawei]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1792</guid>
		<description><![CDATA[&#160;
I&#8217;m the happay owner of a Huawei E1750 modem and it is real easy to get it running in Ubuntu. This guide will probably work with many other 3G USB&#160;modems.
Just type from the command line:

sudo apt-get install usb-modeswitch

Plug in the modem
Go to the Network manager and enter your Mobile Broadband credentials and now it works!
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I&#8217;m the happay owner of a Huawei E1750 modem and it is real easy to get it running in Ubuntu. This guide will probably work with many other 3G USB&nbsp;modems.</p>
<p>Just type from the command line:</p>
<pre>
sudo apt-get install usb-modeswitch
</pre>
<p>Plug in the modem</p>
<p>Go to the Network manager and enter your Mobile Broadband credentials and now it works!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/05/23/enable-huawei-e1750-in-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android app for Nagios or op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2010/05/01/android-app-for-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2010/05/01/android-app-for-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Sat, 01 May 2010 13:30:56 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[NagMonDroid]]></category>
		<category><![CDATA[Nagroid]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1764</guid>
		<description><![CDATA[&#160;
With my new and fancy HTC Desire I wanted to look at my Nagios or op5 Monitor status. I&#160;have found two apps Nagroid and NagMonDroid.
&#160;
NagMonDroid did I&#160;not get working, probably because op5 Monitor only uses https as protocol.
&#160;
Nagroid works like a charm:

&#160;
The configuration is rather straightforward:

]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>With my new and fancy HTC Desire I wanted to look at my <a href="http://www.nagios.org">Nagios</a> or <a href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a> status. I&nbsp;have found two apps <a href="http://www.kiu.weite-welt.com/de.schoar.android//nagroid/help/">Nagroid</a> and <a href="http://www.simonmclaughlin.co.uk/page/Android_Apps/">NagMonDroid</a>.</p>
<p>&nbsp;<span id="more-1764"></span></p>
<p>NagMonDroid did I&nbsp;not get working, probably because op5 Monitor only uses https as protocol.</p>
<p>&nbsp;</p>
<p>Nagroid works like a charm:</p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/nagroid.png"><img width="480" height="800" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/nagroid.png" alt="" title="nagroid" class="aligncenter size-full wp-image-1765" /></a></p>
<p>&nbsp;</p>
<p>The configuration is rather straightforward:</p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/nagroid-settings.png"><img width="480" height="800" class="aligncenter size-full wp-image-1768" title="nagroid-settings" alt="" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/nagroid-settings.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/05/01/android-app-for-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hint: Howto get Android SDK working on Ubuntu</title>
		<link>http://www.it-slav.net/blogs/2010/05/01/hint-howto-get-android-sdk-working-on-ubuntu/</link>
		<comments>http://www.it-slav.net/blogs/2010/05/01/hint-howto-get-android-sdk-working-on-ubuntu/#comments</comments>
		<pubDate>Sat, 01 May 2010 13:14:02 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[screenshoots]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1751</guid>
		<description><![CDATA[&#160;
I wanted to use the Android SDK on my Ubuntu machine, mainly to grab screenshoots but also to play around with it.
&#160;
I followed the guidelines at this guide, but it did not work. DDM just show garbage as the device and when trying to get a screenshoot it complained with:

54:42 W/ddms: Unable to get frame [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I wanted to use the Android SDK on my Ubuntu machine, mainly to grab screenshoots but also to play around with it.</p>
<p>&nbsp;</p>
<p>I followed the guidelines at <a href="http://www.downloadsquad.com/2008/10/22/taking-screenshots-on-an-android-based-phone/">this</a> guide, but it did not work. DDM just show garbage as the device and when trying to get a screenshoot it complained with:</p>
<pre>
54:42 W/ddms: Unable to get frame buffer: device (????????????)
request rejected: insufficient permissions for device<span id="more-1751"></span>
</pre>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/ddm-fel.png"><img src="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/ddm-fel.png" alt="" title="ddm-fel" class="aligncenter size-full wp-image-1752" style="width: 687px; height: 513px;" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>After some googling i figured out that I had to hack my udev rules.</p>
<p>I added to /etc/udev/rules.d/51-android.rules</p>
<pre>
SUBSYSTEMS==&quot;usb&quot;, ATTRS{idVendor}==&quot;0bb4&quot;, ATTRS{idProduct}==&quot;0c87&quot;, MODE=&quot;0666&quot;
 </pre>
<pre>
and run

reload udev</pre>
<p>&nbsp;</p>
<p>The idVendor and&nbsp; idProduct was found by running lsusb:</p>
<pre>
# lsusb
Bus 002 Device 011: ID 0bb4:0c87 High Tech Computer Corp. 
</pre>
<p>&nbsp;</p>
<p>Now when starting DDM:</p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/ddm-funkar.png"><img src="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/ddm-funkar.png" alt="" title="ddm-funkar" class="aligncenter size-full wp-image-1753" style="width: 646px; height: 490px;" /></a></p>
<p>&nbsp;</p>
<p>And I&nbsp;can take screenshoots:</p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/android-screenshoot.png"><img width="480" height="800" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/05/android-screenshoot.png" alt="" title="android-screenshoot" class="aligncenter size-full wp-image-1754" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/05/01/hint-howto-get-android-sdk-working-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finally it has arrived, my HTC Desire</title>
		<link>http://www.it-slav.net/blogs/2010/04/30/finally-it-has-arrived-my-htc-desire/</link>
		<comments>http://www.it-slav.net/blogs/2010/04/30/finally-it-has-arrived-my-htc-desire/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 18:09:22 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[htc desire]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1740</guid>
		<description><![CDATA[After waiting for several weeks, my new phone, a HTC Desire has finally arrived. I have been a heavy cellphone user since started working as a Tivoli consultant in -98. I bought my first cellphone -94 and have had several so called smart phones both from Nokia and Ericsson.
&#160;
For the first time I felt that [...]]]></description>
			<content:encoded><![CDATA[<p>After waiting for several weeks, my new phone, a HTC Desire has finally arrived. I have been a heavy cellphone user since started working as a Tivoli consultant in -98. I bought my first cellphone -94 and have had several so called smart phones both from Nokia and Ericsson.</p>
<p>&nbsp;</p>
<p>For the first time I felt that this is more than a phone, for the first time calender integration works, for the first time I can use the builtin GPS, for the first time accessing the web with a phone works, for the first time downloaded software really works.</p>
<p>&nbsp;<span id="more-1740"></span></p>
<p>&nbsp;</p>
<p>My favorite apps so far is:</p>
<ul>
<li>Nagroid, to be able to view my <a href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a> status</li>
<li>FONMaps, find hotspots for LaFoneras</li>
<li>Car Cast, listen and download podcasts</li>
<li>MapDroid, to use preloaded OpenStreetmaps and GPS without using any bandwidth. Perfect when abroad because of the crazy price of data roaming outside Sweden.</li>
<li>HTC&nbsp;Facebook, read and post on facebook</li>
<li>FON&nbsp;Access, automatically connect to FON&nbsp;hotspots when traveling.</li>
<li>GPS Logger, logg tracks in gpx format that almost any GPS software understand</li>
<li>Sipdroid, to connect to my Asterisk PBX using 3G or WiFi</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Of&nbsp; cource the device is not perfect, I miss:</p>
<ul>
<li>The phone must be &#8216;rooted&#8217; to be real useful, why? Open the phone so the community and others can develop apps that are real useful. Vendor lock-in always sucks.</li>
<li>IPSec VPN so I&nbsp;can connect to my IPSec based OpenBSD firewall. The IPSec implementation in the phone sucks.</li>
<li>OpenVPN, there exists OpenVPN&nbsp;apps but to use the the phone must be &#8216;rooted&#8217;</li>
<li>Bluetooth modem, it is not possible to use the phone as a modem using bluetooth</li>
<li>Screenshots, the phone must be rooted or using the SDK to take screenshoots. Why?</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>I really hope that Google and/or HTC understand and use the power of the community to make the Android even more succesfull by open it even more.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/04/30/finally-it-has-arrived-my-htc-desire/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ash hole luck</title>
		<link>http://www.it-slav.net/blogs/2010/04/23/ash-hole-luck/</link>
		<comments>http://www.it-slav.net/blogs/2010/04/23/ash-hole-luck/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 18:34:51 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[ash hole]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1731</guid>
		<description><![CDATA[&#160;
I have not updated my blog lately because of heavy traveling. In Tuesday, after visiting GoOpen 2010, I took this picture at Gardemoen, Oslo. I was very lucky because my flight was DY3774

It seams like I was in luck and used an ash hole to get home:-)
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I have not updated my blog lately because of heavy traveling. In Tuesday, after visiting <a href="http://www.goopen.no/english/">GoOpen 2010</a>, I took this picture at Gardemoen, Oslo. I was very lucky because my flight was DY3774</p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/04/gardemoen.png"><img src="http://www.it-slav.net/blogs/wp-content/uploads/2010/04/gardemoen.png" alt="" title="gardemoen" class="aligncenter size-full wp-image-1732" style="width: 681px; height: 228px;" /></a></p>
<p>It seams like I was in luck and used an ash hole to get home:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/04/23/ash-hole-luck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Developer Firmware on Fonera router</title>
		<link>http://www.it-slav.net/blogs/2010/03/29/installing-developer-firmware-on-fonera-router/</link>
		<comments>http://www.it-slav.net/blogs/2010/03/29/installing-developer-firmware-on-fonera-router/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 20:11:39 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1705</guid>
		<description><![CDATA[Background
I bought a Fonera 2.0g WLAN router and I wanted to extend the functionality to have the possibility to add packages from OpenWRT. I also wanted the possibility to manage my new router with ssh.
The way to achive this is by installing developer firmware.

&#160;
&#160;
&#160;
Installing
I followed the instructions at Fons beta/developer wiki.
The image I used can [...]]]></description>
			<content:encoded><![CDATA[<h3>Background</h3>
<p>I bought a Fonera 2.0g WLAN router and I wanted to extend the functionality to have the possibility to add <a href="http://downloads.openwrt.org/kamikaze/8.09/atheros/packages/">packages</a> from OpenWRT. I also wanted the possibility to manage my new router with ssh.</p>
<p>The way to achive this is by installing developer firmware.</p>
<h3><span id="more-1705"></span></h3>
<h3>&nbsp;</h3>
<h3>&nbsp;</h3>
<h3>&nbsp;</h3>
<h3>Installing</h3>
<p>I followed the instructions at Fons beta/developer <a href="http://wiki.fon.com/wiki/Fon-ng:_Get_Involved">wiki</a>.</p>
<p>The image I used can be found <a href="http://download.fonosfera.org/RC/20090713_FON2202_2.2.6.0_rc5_DEV.tar.gz">here</a>.</p>
<h3>&nbsp;</h3>
<h3>&nbsp;</h3>
<h3>&nbsp;&nbsp;</h3>
<h3>Test</h3>
<p>I try to connect by using ssh</p>
<pre>
peter@peter-laptop:~$ ssh -l root 192.168.10.1
root@192.168.10.1's password: 

BusyBox v1.11.1 (2009-04-17 12:45:57 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

                                        __
                                    _.-~  )
                         _..--~~~~,'   ,-/     _
                      .-'. . . .'   ,-','    ,' )
                    ,'. . . _   ,--~,-'__..-'  ,'
                  ,'. . .  (@)' ---~~~~      ,'
                 /. . . . '~~             ,-'
                /. . . . .             ,-'
               ; . . . .  - .        ,'
              : . . . .       _     /
             . . . . .          `-.:
            . . . ./  - .          )
           .  . . |  _____..---.._/ ____ Seal _
     ~---~~~~----~~~~             ~~                

                      Flipper                       

--------  Fonera 2.0 Firmware (v2.2.5.0) -----------
      * Based on OpenWrt - http://openwrt.org
      * Powered by FON - http://www.fon.com
----------------------------------------------------</pre>
<div>&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/03/29/installing-developer-firmware-on-fonera-router/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install SNMP on OpenWRT</title>
		<link>http://www.it-slav.net/blogs/2010/03/23/install-snmp-on-openwrt/</link>
		<comments>http://www.it-slav.net/blogs/2010/03/23/install-snmp-on-openwrt/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 20:30:47 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[LaFonera]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[snmp]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1686</guid>
		<description><![CDATA[&#160;
When using a cool router software like OpenWRT it is a good idea to monitor the network usage. This article describe howto get SNMP&#160;on your OpenWRT&#160;based router.
&#160;
&#160;
1. Install
The easiest way is to use the webgui, http://&#60;your router ip&#62;

Log in as root/-&#60;your password&#62;
Click on Adminstrator to enable the Advnced menues
System-&#62;Software
Click on &#34;Update Package List&#34; (this require [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>When using a cool router software like OpenWRT it is a good idea to monitor the network usage. This article describe howto get SNMP&nbsp;on your OpenWRT&nbsp;based router.</p>
<h2>&nbsp;<span id="more-1686"></span></h2>
<h2>&nbsp;</h2>
<h2>1. Install</h2>
<p>The easiest way is to use the webgui, http://&lt;your router ip&gt;</p>
<ol>
<li>Log in as root/-&lt;your password&gt;</li>
<li>Click on Adminstrator to enable the Advnced menues</li>
<li>System-&gt;Software</li>
<li>Click on &quot;Update Package List&quot; (this require Internet access).</li>
<li>Install snmpd-static</li>
</ol>
<p>&nbsp;</p>
<h3>&nbsp;</h3>
<h3>&nbsp;</h3>
<h3>2. Configure</h3>
<p>Log in to the La Fonera using ssh:</p>
<pre>
peter@peter-laptop:~$ ssh -l root 192.168.0.159
root@192.168.0.159's password:

BusyBox v1.11.2 (2009-12-02 11:25:47 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (8.09.2, r18961) -------------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@fon:~#
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Start snmpd</p>
<pre>
root@fon:~# /etc/init.d/snmpd start
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Make it start when rebooted:</p>
<pre>
root@fon:~# /etc/init.d/snmpd enable
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>If you want to change your SNMP configuration the configuration is located in:</p>
<pre>
/etc/config/snmpd
</pre>
<p>&nbsp;</p>
<h3>&nbsp;</h3>
<h3>3. Monitor</h3>
<p>Now you can get the SNMP&nbsp;data and use your favorite Monitor tool, i.e. Nagios or op5 Monitor.</p>
<p>Below a screenshoot from op5 Monitor:</p>
<p>&nbsp;<a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/fon-traffic.png"><img width="603" height="195" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/fon-traffic.png" alt="" title="fon-traffic" class="aligncenter size-full wp-image-1690" /></a></p>
<p>&nbsp;</p>
<h3>&nbsp;</h3>
<h3>&nbsp;</h3>
<h3>Useful links</h3>
<ul>
<li><a href="http://www.openwrt.org">OpenWRT</a>, an OpenSource router software</li>
<li><a href="http://www.net-snmp.org/">Net-SNMP</a>, an SNMP implementation</li>
<li><a href="http://nagios.org">Nagios</a>, an OpenSource Monitoring software</li>
<li><a href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a>, an Enterprise Class Monitoring software based on Nagios</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/03/23/install-snmp-on-openwrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install OpenWRT on LaFonera router</title>
		<link>http://www.it-slav.net/blogs/2010/03/21/install-openwrt-on-lafonera-router/</link>
		<comments>http://www.it-slav.net/blogs/2010/03/21/install-openwrt-on-lafonera-router/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 15:33:37 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[La Fonera]]></category>
		<category><![CDATA[openwrt]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1667</guid>
		<description><![CDATA[

&#160;Background
I got an unused La Fonera router by a collegue. They can be bought from http://www.fon.com for approximately 40 Euro including freight. The purpose of the Fon community is to build a community of hotspots around the world so every owner of a La Fonera could use any other La Fonera router in the world.
&#160;
I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/fon.png"><br />
</a></p>
<h2>&nbsp;Background</h2>
<p>I got an unused La Fonera router by a collegue. They can be bought from <a href="http://www.fon.com">http://www.fon.com</a> for approximately 40 Euro including freight. The purpose of the Fon community is to build a community of hotspots around the world so every owner of a La Fonera could use any other La Fonera router in the world.</p>
<p>&nbsp;</p>
<p>I am curios about the legal aspect if someone in the Fon community uses my internet connection to do something bad, like download copyrighted software, hack CIA or whatever.</p>
<p>&nbsp;</p>
<p>The La Fonera router is real cool because:</p>
<ul>
<li>Looks good so it has a high wife acceptance factor</li>
<li>Hackable, the firmware could be replaced with for example <a href="http://www.openwrt.org">OpenWRT</a>, <a href="http://dd-wrt.com">DD-WRT</a>, <a href="http://www.digininja.org/jasager/">Jasager</a> and others&#8230;</li>
<li>Even more hackable, there are several guides and howtos to modify the La Fonera hardware.</li>
<li>Cheap, in the good old days it was possible to get one for free.<span id="more-1667"></span></li>
</ul>
<h2>&nbsp;</h2>
<h2>Install OpenWRT</h2>
<p>I&nbsp;followed this <a href="http://wiki.cuwin.net/index.php?title=Flashing_the_La_Fonera_with_OpenWRT">guide</a>, the only exception was that I used the latest OpenWRT in &quot;Phase C&quot;:</p>
<p>&nbsp;# ./ap51-flash-1.0-42 eth0 openwrt-atheros-root.squashfs openwrt-atheros-vmlinux.lzma</p>
<p>The files can be downloaded from <a href="http://www.openwrt.org">OpenWRTs</a> <a href="http://downloads.openwrt.org/">download section</a> for <a href="http://downloads.openwrt.org/kamikaze/8.09.2/atheros/">atheros platform</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;<a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/fon2.png"><img width="640" height="480" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/fon2.png" alt="" title="fon" class="aligncenter size-full wp-image-1675" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/03/21/install-openwrt-on-lafonera-router/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitor HP Proliant with Nagios or Op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2010/03/02/monitor-hp-proliant-with-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2010/03/02/monitor-hp-proliant-with-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 20:38:52 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[HP SIM]]></category>
		<category><![CDATA[Insight Manager]]></category>
		<category><![CDATA[SIM]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1644</guid>
		<description><![CDATA[&#160;
Background
It is always a good idea to monitor the server hardware, in many cases the root cause of the probblem is hardware related like: a fan stops and the temperature gets to high, dust in the machine makes it to hot, disks that fails, memory corruption and so on.&#160; This article will describe howto enable [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h2>Background</h2>
<p>It is always a good idea to monitor the server hardware, in many cases the root cause of the probblem is hardware related like: a fan stops and the temperature gets to high, dust in the machine makes it to hot, disks that fails, memory corruption and so on.&nbsp; This article will describe howto enable hardware monitoring on a HP&nbsp;Proliant running CentOS Linux and then howto collect the data with Nagios or op5 Monitor. The procedure is the same with RedHat Enterprise Linux and similiar with Suse Enterprise server.</p>
<p>The HP&nbsp;manuals and information is bloated with irrelevant information and I&nbsp;had to struggle several hours, ask collegues to get it running. I&nbsp;hope this blog article will help others to get monitoring of HP Proliant using HP Insight Manager easier to setup.</p>
<h2>&nbsp;<span id="more-1644"></span></h2>
<p>&nbsp;</p>
<h2>Installing the software on the target system</h2>
<p>You need two packages from HP and can be downloaded from <a href="http://www.hp.com">hp.com</a> under &quot;Support &amp; Drivers&quot;. Search your hardware plattform and correct operating system:</p>
<ul>
<li>ProLiant Support Pack for Red Hat Enterprise Linux 5 (i686)&nbsp; The latest Proliant Support Package 2010-03-02 name is psp-8.25.rhel5.i686.en.tar.gz</li>
<li>HP System Health Application and Insight Management Agents for Red Hat Enterprise Linux 5 (x86). The latest name is hpasm-8.0.0-173.rhel5.i386.rpm</li>
</ul>
<p>&nbsp;</p>
<p>Install kernel source code and rpm tools:</p>
<pre>
# yum install kernel-devel rpm-build rpm-devel
 </pre>
<p>&nbsp;</p>
<p>Proliant Support Package is not supported on CentOS so you have to let the installer think it is a RedHat system. If you have a RHEL&nbsp;system skip the next steps.</p>
<pre>
# cp /etc/redhat-release /etc/redhat-release.backup

# echo &quot;Red Hat Enterprise Linux Server release 5.4 (Tikanga)&quot;&gt;/etc/redhat-release</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Untar the Proliant Support Package</p>
<pre>
 # tar xzvf psp-8.25.rhel5.i686.en.tar.gz</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Install the  Proliant Support Package</p>
<pre>
# cd compaq/csp/linux/

# ./install825.sh</pre>
<p>alot of text appears and some questions, answer them.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Install HP System Health Application and Insight Management Agents, and for some stupid reason it is in conflict with some other packages just installed. I solved it in a dirty way:</p>
<pre>
# rpm -i --force  --replacefiles --nodeps hpasm-8.0.0-173.rhel5.i386.rpm</pre>
<p>Configure by running:</p>
<pre>
# hpa/etc/init.d/hpasm configure</pre>
<p>and answer the questions.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Do not forget to restore /etc/redhat-release</p>
<pre>
# cp /etc/redhat-release.backup /etc/redhat-release</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>I&nbsp;did modify my /etc/snmp/snmp.conf to:</p>
<pre>
dlmod cmaX /usr/lib/libcmaX.so
rocommunity public
trapsink 10.1.1.20
syscontact peter@it-slav.net
syslocation PDC, Peters DataCenter</pre>
<p>&nbsp;</p>
<p>To test that you have installation and configuration work, run a snmpwalk from your Nagios or op5 Monitor host:</p>
<pre>
# snmpwalk -c public -v1  &lt;ip-adress of your proliant box&gt; 1.3.6.1.4.1.232

SNMPv2-SMI::enterprises.232.1.1.1.0 = INTEGER: 1
SNMPv2-SMI::enterprises.232.1.1.2.0 = INTEGER: 23
SNMPv2-SMI::enterprises.232.1.1.3.0 = INTEGER: 2
SNMPv2-SMI::enterprises.232.1.2.1.4.1.0 = INTEGER: 30
SNMPv2-SMI::enterprises.232.1.2.1.4.2.1.1.1 = INTEGER: 1
SNMPv2-SMI::enterprises.232.1.2.1.4.2.1.2.1 = STRING: &quot;Compaq Standard Equipment Agent for Linux&quot;
SNMPv2-SMI::enterprises.232.1.2.1.4.2.1.3.1 = &quot;&quot;
SNMPv2-SMI::enterprises.232.1.2.1.4.2.1.4.1 = Hex-STRING: 00 00 00 00 00 00 00
SNMPv2-SMI::enterprises.232.1.2.1.4.2.1.5.1 = STRING: &quot;To gather Standard Equipment data for Linux.&quot;

...
 </pre>
<h2>&nbsp;</h2>
<h2>Install check_hpasm on the Nagios or op5 Monitor host</h2>
<p>The <a href="http://labs.consol.de/lang/en/nagios/check_hpasm/">check_hpasm</a> can be downloaded from <a href="http://labs.consol.de/">Console Labs</a>.</p>
<p>Unpack the tarball</p>
<pre>
# tar xzvf check_hpasm-4.1.2.tar.gz</pre>
<p>&nbsp;</p>
<pre>
Configure and compile

# ./configure --prefix=/opt/plugins/custom/hp-insight --with-nagios-user=monitor --with-nagios-group=users --enable-perfdata

...

# make

...

# make install</pre>
<p>&nbsp;</p>
<p>Test</p>
<pre>
# /opt/plugins/custom/hp-insight/libexec/check_hpasm -H  -C public

OK - System: 'proliant dl360 g3', S/N: '7J31LMW6N01D', ROM: 'P31 01/28/2004', hardware working fine, da: 1 logical drives, 1 physical drives | fan_1=50% fan_2=50% temp_1_cpu=16;50;50 temp_2_cpu=15;65;65 temp_3_ioBoard=21;56;56 temp_4_cpu=20;65;65
</pre>
<p>Congratulations your plugin and hw monitoring works!</p>
<p>&nbsp;</p>
<h2>Configure Nagios or op5 Monitor<br />
&nbsp;</h2>
<p>checkcommands.cfg</p>
<pre>
# command 'check_hpasm'
define command{
    command_name                   check_hpasm
    command_line                   $USER1$/custom/libexec/check_hpasm -H $HOSTADDRESS$ -C $ARG1$
    }</pre>
<p>&nbsp;</p>
<p>services.cfg</p>
<pre>
# service 'Insight Manager'
define service{
    use                            default-service
    host_name                      humpa
    service_description            Insight Manager
    check_command                  check_hpasm!public
    contact_groups                 call_it-slav,it-slav_jabber,it-slav_mail
    }</pre>
<h2>&nbsp;</h2>
<p>Screenshoot, using ninja</p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/hpinsightmgr.png"><img width="1242" height="182" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/03/hpinsightmgr.png" alt="" title="hpinsightmgr" class="aligncenter size-full wp-image-1658" /></a></p>
<p>&nbsp;</p>
<h2>&nbsp;Useful links</h2>
<ul>
<li><a href="http://www.op5.com">op5</a>, a systems and network management company</li>
<li><a href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a>, an enterpise monitor system based on Nagios</li>
<li><a href="http://www.op5.org/community/projects/ninja">Ninja</a>, Nagios is now just awesome</li>
<li><a href="http://www.nagios.org">Nagios</a>, enterprise monitoring based on opensource</li>
<li><a href="http://welcome.hp.com/country/us/en/support.html">Hp support &amp; drivers</a>, a place to start looking for the HP software used in this article</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/03/02/monitor-hp-proliant-with-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>op5 Monitor 5.0 Beta</title>
		<link>http://www.it-slav.net/blogs/2010/02/26/op5-monitor-5-0-beta/</link>
		<comments>http://www.it-slav.net/blogs/2010/02/26/op5-monitor-5-0-beta/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:58:49 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5]]></category>
		<category><![CDATA[op5 Monitor]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1626</guid>
		<description><![CDATA[The release of the next generation Open Source Network Monitoring Software is only weeks away with the release of op5 Monitor 5. Here you can download a Beta version of the sofware intended for testing och evaluation or try it at a live demo.

op5 Monitor Beta, virtual image in ovf format
Try op5 Monitor Beta

The op5 [...]]]></description>
			<content:encoded><![CDATA[<p>The release of the next generation Open Source Network Monitoring Software is only weeks away with the release of op5 Monitor 5. Here you can download a Beta version of the sofware intended for testing och evaluation or try it at a live demo.</p>
<ul>
<li><a href="http://www.op5.com/op5/products/network-monitor/download-50-beta#">op5 Monitor Beta, virtual image in ovf format</a></li>
<li><a href="https://beta.op5.com/ninja">Try op5 Monitor Beta</a></li>
</ul>
<p>The op5 Monitor Beta use <a href="http://www.op5.org/community/projects/ninja">Ninja</a> as GUI and <a href="http://www.op5.org/community/projects/merlin">Merlin</a> as a databasebackend.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/02/26/op5-monitor-5-0-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rockbox makes your media player much better</title>
		<link>http://www.it-slav.net/blogs/2010/02/19/rockbox-makes-your-media-player-much-better/</link>
		<comments>http://www.it-slav.net/blogs/2010/02/19/rockbox-makes-your-media-player-much-better/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 17:31:58 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[mp3 player]]></category>
		<category><![CDATA[RockBox]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1616</guid>
		<description><![CDATA[I have an old iPod G3 player that I haven&#8217;t used for several years. The main reason is that it is full of Apple vendor lock-in &#34;features&#34;. The most annoying issues are:

Hard to manage without iTunes
iTunes is crap
Cannot play ogg and flac
I&#160;just want to attach it and it should popup like a USB disk, drop [...]]]></description>
			<content:encoded><![CDATA[<p>I have an old <a href="http://en.wikipedia.org/wiki/File:Ipod_backlight_transparent.png" target="_blank">iPod G3</a> player that I haven&#8217;t used for several years. The main reason is that it is full of Apple vendor lock-in &quot;features&quot;. The most annoying issues are:</p>
<ul>
<li>Hard to manage without iTunes</li>
<li>iTunes is crap</li>
<li>Cannot play ogg and flac</li>
<li>I&nbsp;just want to attach it and it should popup like a USB disk, drop the files into it, detach and play the songs.</li>
</ul>
<p>I got a hint from a friend that I should try <a href="http://www.rockbox.org" target="_blank">RockBox</a>, so I&nbsp;download it and used the very simple installer on linux and it works perfectly well. All the drawbacks mentioned above are solved and&nbsp; as a bonus the gui is much better.</p>
<p>&nbsp;</p>
<p>Now I&nbsp;can:</p>
<ul>
<li>Play ogg</li>
<li>Play flac</li>
<li>Customize the GUI</li>
<li>Change myriads of settings</li>
<li>Throw away mysterious sync software like iTunes and others.</li>
<li>Attach it as a USB&nbsp;disk, drop my media files into it, detach and play them</li>
</ul>
<p>If you are lucky and owns a <a href="http://www.rockbox.org/wiki/TargetStatus" target="_blank">Rockbox supported</a> media player, update it. You will not regret it.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/02/19/rockbox-makes-your-media-player-much-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Share your internet connection</title>
		<link>http://www.it-slav.net/blogs/2010/02/12/share-your-internet-connection/</link>
		<comments>http://www.it-slav.net/blogs/2010/02/12/share-your-internet-connection/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 18:32:06 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[english]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1592</guid>
		<description><![CDATA[&#160;
Background
I&#160;was with my geekfriends at a ski resort and I&#160;managed to get an Internet connection using a cellphone. Of course I&#160;wanted to share it with my friends. As geeks we brought a switch and a couple of ethernetcables.
&#160;
Solution
Using this script on a Ubuntu 9.10 I&#160;managed to share my connection:

sudo ifconfig eth0 10.8.16.1
sudo sysctl -w net.ipv4.ip_forward=1
sudo [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h2>Background</h2>
<p>I&nbsp;was with my geekfriends at a ski resort and I&nbsp;managed to get an Internet connection using a cellphone. Of course I&nbsp;wanted to share it with my friends. As geeks we brought a switch and a couple of ethernetcables.</p>
<p>&nbsp;</p>
<h2>Solution</h2>
<p>Using this script on a Ubuntu 9.10 I&nbsp;managed to share my connection:</p>
<pre>
sudo ifconfig eth0 10.8.16.1
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv4.conf.default.forwarding=1
sudo sysctl -w net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
sudo iptables --table nat -A POSTROUTING -o ppp0 -j MASQUERADE</pre>
<p>Conmnect everymachine with the switch and the clients just needed to use a 10.0.0.0/8 network adress and add 10.8.16.1 as default gateway and it works!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/02/12/share-your-internet-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring BizTalk with Nagios or op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2010/02/05/monitoring-biztalk-with-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2010/02/05/monitoring-biztalk-with-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:39:55 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[Biztalk]]></category>
		<category><![CDATA[biztalk monirtoring]]></category>
		<category><![CDATA[biztalk nagios]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1581</guid>
		<description><![CDATA[&#160;
Background
At op5 we often run into BizTalk at customer sites as a business critical application. We have done an investigation and come up with a plugin&#160; to monitor BizTalk.
To fully understand this document BizTalk knowledge is necessary.

&#160;
Solution
op5 has developed a plugin that can monitor the following at a BizTalk server:

Recieve locations &#8211; Verify that they [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h2>Background</h2>
<p>At op5 we often run into <a href="http://en.wikipedia.org/wiki/Biztalk" target="_blank">BizTalk</a> at customer sites as a business critical application. We have done an investigation and come up with a plugin&nbsp; to monitor BizTalk.</p>
<p>To fully understand this document BizTalk knowledge is necessary.</p>
<p><span id="more-1581"></span></p>
<p>&nbsp;</p>
<h2>Solution</h2>
<p>op5 has developed a plugin that can monitor the following at a BizTalk server:</p>
<ul>
<li>Recieve locations &#8211; Verify that they are enabled.</li>
<li>Send Ports &#8211; Verify that they are in Started state</li>
<li>Group Overview &#8211; Catch messages in the message queue that are in state Suspended. The different type of messages are:
<ul>
<li>Dehydrated</li>
<li>Suspended</li>
<li>Queue</li>
</ul>
</li>
</ul>
<p>The plugin license is GPLv3 so it is free for any one to use and enhance.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Links</h2>
<ul>
<li><a href="http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob;f=check_biztalk.pl">check_biztalk</a> the plugin that monitors BizTalk</li>
<li><a href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a> Monitor solution based on Nagios</li>
<li><a href="http://www.nagios.org">Nagios</a> free enterprise monitor software</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/02/05/monitoring-biztalk-with-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Bluetooth phone to connect to Internet on Linux</title>
		<link>http://www.it-slav.net/blogs/2010/01/31/use-bluetooth-phone-to-connect-to-internet-on-linux/</link>
		<comments>http://www.it-slav.net/blogs/2010/01/31/use-bluetooth-phone-to-connect-to-internet-on-linux/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 18:50:52 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Bluetoth]]></category>
		<category><![CDATA[Cell Phone]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Phone]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1567</guid>
		<description><![CDATA[My laptop and cellular phone has both Bluetooth and it has annoyed me for a while that I have not managed to get a working Internet connection using Bluetooth. I have only managed to get it working with a USB&#160;cable between my phone and laptop.
&#160;
After some Google search and reading of man pages I finally [...]]]></description>
			<content:encoded><![CDATA[<p>My laptop and cellular phone has both Bluetooth and it has annoyed me for a while that I have not managed to get a working Internet connection using Bluetooth. I have only managed to get it working with a USB&nbsp;cable between my phone and laptop.</p>
<p>&nbsp;</p>
<p>After some Google search and reading of man pages I finally get it working.</p>
<p><span id="more-1567"></span></p>
<p>&nbsp;</p>
<p>My setup is a <a href="http://www.it-slav.net/blogs/2009/11/19/review-nokia-e52/" target="_blank">Nokia E52</a> and a IBM T60 laptop running Ubuntu 9.10. I have tested it with a Ericsson P1i and a Dell D630 aswell and I think the guidlines below will work with many other setups. One exception is probably iPhone <img src='http://www.it-slav.net/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>From a bash shell run:</p>
<pre>
peter@svarten:~$ sdptool search DUN
Inquiring ...
Searching for DUN on A8:7E:33:20:40:0F ...
Service Name: Dial-Up Networking
Service RecHandle: 0x10030
Service Class ID List:
  &quot;Dialup Networking&quot; (0x1103)
Protocol Descriptor List:
  &quot;L2CAP&quot; (0x0100)
  &quot;RFCOMM&quot; (0x0003)
    Channel: 5
Language Base Attr List:
  code_ISO639: 0x454e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  &quot;Dialup Networking&quot; (0x1103)
    Version: 0x0100

peter@svarten:~$ sudo rfcomm connect 1 A8:7E:33:20:40:0F 5
[sudo] password for peter:
Connected /dev/rfcomm1 to A8:7E:33:20:40:0F on channel 5
Press CTRL-C for hangup
</pre>
<p>Now my phone asks if I accept the connection and I choose &quot;yes&quot;.</p>
<p>&nbsp;</p>
<p>And now the networkmanager has a new &quot;Mobile Broadband connection&quot;. Just choose your operator and it will work.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/01/31/use-bluetooth-phone-to-connect-to-internet-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using OpenStreetMap to point out your location on a webpage</title>
		<link>http://www.it-slav.net/blogs/2010/01/25/using-openstreetmap-to-point-out-your-location-on-a-webpage/</link>
		<comments>http://www.it-slav.net/blogs/2010/01/25/using-openstreetmap-to-point-out-your-location-on-a-webpage/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 19:45:35 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[english]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1546</guid>
		<description><![CDATA[After fiddeling with my Bluetooth GPS reciever I wanted my friends and my wife to keep track of me. I&#160;wanted to use OpenStreetMap because I&#160;really like the idea of free and open maps instead of the unintelligible Google Maps licenses. The result can be seen here where I&#160;show the op5 office location outside Stockholm, Sweden.
&#160;
&#160;
Pre [...]]]></description>
			<content:encoded><![CDATA[<p>After <a target="_blank" href="http://www.it-slav.net/blogs/2009/05/26/gpsdrive-a-fancy-gps-navigation-for-linux/">fiddeling</a> with my Bluetooth GPS reciever I wanted my friends and my wife to keep track of me. I&nbsp;wanted to use <a target="_blank" href="http://www.openstreetmaps.org">OpenStreetMap</a> because I&nbsp;really like the idea of free and open maps instead of the unintelligible Google Maps licenses. The result can be seen <a target="_blank" href="http://www.it-slav.net/~peter/gps/">here</a> where I&nbsp;show the <a target="_blank" href="http://www.op5.com">op5</a> office location outside Stockholm, Sweden.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>Pre req</h3>
<ul>
<li>a GPS reciever</li>
<li>gpsd</li>
<li>gpsd-client</li>
</ul>
<p>In my setup I&nbsp;have the GPS reciever attached to my laptop which I travel around with. On my webserver I&nbsp;have gpsd-client and a script that generates the webpage. I use a VPN&nbsp;connection to allow my webserver to communicate with the laptop gpsdaemon. On the roads I&nbsp;use 3G attached cellphone and when I&nbsp;have an internet connection via cable or wifi I use that.</p>
<h3><span id="more-1546"></span></h3>
<h3>&nbsp;</h3>
<h3>The script</h3>
<pre>
#!/bin/sh
GPSPIPE=/usr/bin/gpspipe
OUTFILE=/home/peter/public_html/my_position.html
#GPSDIP=10.8.0.10
GPSDIP=192.168.0.153
while true
do
        GPSDATA=`$GPSPIPE -w -n 10 $GPSDIP |grep O=`
        if [ &quot;$?&quot; ]
        then
                LON=`echo $GPSDATA| awk '{ print $5 }'`
                LAT=`echo $GPSDATA| awk '{ print $4 }'`
        	echo &quot;LON=$LON LAT=$LAT&quot;
		cat &gt; $OUTFILE &lt;&lt;EOF
&lt;html&gt;
&lt;head&gt;
        &lt;title&gt;Last know It-slav location&lt;/title&gt;
        &lt;!-- bring in the OpenLayers javascript library
                 (here we bring it from the remote site, but you could
                 easily serve up this javascript yourself) --&gt;
        &lt;script src=&quot;http://www.openlayers.org/api/OpenLayers.js&quot;&gt;&lt;/script&gt;
        &lt;!-- bring in the OpenStreetMap OpenLayers layers.
                 Using this hosted file will make sure we are kept up
                 to date with any necessary changes --&gt;
        &lt;script src=&quot;http://www.openstreetmap.org/openlayers/OpenStreetMap.js&quot;&gt;&lt;/script&gt;

        &lt;script type=&quot;text/javascript&quot;&gt;
                // Start position for the map (hardcoded here for simplicity,
                // but maybe you want to get from URL params)
EOF
echo &quot;var lat=$LAT&quot; &gt;&gt;$OUTFILE
echo &quot;var lon=$LON&quot; &gt;&gt;$OUTFILE
cat &gt;&gt; $OUTFILE &lt;&lt;EOF
                var zoom=13

                var map; //complex object of type OpenLayers.Map

                function init() {
                        map = new OpenLayers.Map (&quot;map&quot;, {
                                controls:[
                                        new OpenLayers.Control.Navigation(),
                                        new OpenLayers.Control.PanZoomBar(),
                                        new OpenLayers.Control.LayerSwitcher(),
                                        new OpenLayers.Control.Attribution()],
                                maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
                                maxResolution: 156543.0399,
                                numZoomLevels: 19,
                                units: 'm',
                                projection: new OpenLayers.Projection(&quot;EPSG:900913&quot;),
                                displayProjection: new OpenLayers.Projection(&quot;EPSG:4326&quot;)
                        } );

                        // Define the map layer
                        // Note that we use a predefined layer that will be
                        // kept up to date with URL changes
                        // Here we define just one layer, but providing a choice
                        // of several layers is also quite simple
                        // Other defined layers are OpenLayers.Layer.OSM.Mapnik, OpenLayers.Layer.OSM.Maplint and OpenLayers.Layer.OSM.CycleMap
                        layerMapnik = new OpenLayers.Layer.OSM.Mapnik(&quot;Mapnik&quot;);
                        map.addLayer(layerMapnik);
                        layerTilesAtHome = new OpenLayers.Layer.OSM.Osmarender(&quot;Osmarender&quot;);
                        map.addLayer(layerTilesAtHome);
                        layerCycleMap = new OpenLayers.Layer.OSM.CycleMap(&quot;CycleMap&quot;);
                        map.addLayer(layerCycleMap);
                        layerMarkers = new OpenLayers.Layer.Markers(&quot;Markers&quot;);
                        map.addLayer(layerMarkers);

                        // Add the Layer with GPX Track
                        //var lgpx = new OpenLayers.Layer.GML(&quot;MB Bruderholz&quot;, &quot;mb_bruderholz.GPX&quot;, {
                        //    format: OpenLayers.Format.GPX,
                        //    style: {strokeColor: &quot;green&quot;, strokeWidth: 5, strokeOpacity: 0.5},
                        //    projection: new OpenLayers.Projection(&quot;EPSG:4326&quot;)
                        //});
                        //map.addLayer(lgpx);
                        var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection(&quot;EPSG:4326&quot;), map.getProjectionObject());
                        map.setCenter (lonLat, zoom);

                        var size = new OpenLayers.Size(21,25);
                        var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
                        var icon = new OpenLayers.Icon('http://www.openstreetmap.org/openlayers/img/marker.png',size,offset);
                        layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
                }
        &lt;/script&gt;

&lt;/head&gt;
&lt;!-- body.onload is called once the page is loaded (call the 'init' function) --&gt;
&lt;body onload=&quot;init();&quot;&gt;
        &lt;!-- define a DIV into which the map will appear. Make it take up the whole window --&gt;
        &lt;div style=&quot;width:90%; height:90%&quot; id=&quot;map&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
EOF
	else
		echo &quot;No GPS data&quot;
	fi
	sleep 10
done
</pre>
<h3>&nbsp;</h3>
<h3>Gpsdaemon</h3>
<p>To enable the gpsdameon to allow another host to attach to it start it with -g i.e.</p>
<pre>
sudo gpsd -N -n -D 3 -G /dev/rfcomm1</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>The result</h3>
<p>The result can be found <a href="http://www.it-slav.net/~peter/gps/" target="_blank">here</a> or a screenshot below:</p>
<p><img width="636" height="476" src="http://www.it-slav.net/blogs/wp-content/uploads/2010/01/op5position2.png" alt="op5position" title="op5position" class="aligncenter size-full wp-image-1557" /></p>
<p>&nbsp;</p>
<h3>Links</h3>
<ul>
<li><a href="http://gpsd.berlios.de/" target="_blank">gpsd</a></li>
<li>how to <a href="http://www.linux-gps.org/index.php5?title=Holux_M-1000" target="_blank">attach</a> the bluetooth GPS reciever</li>
<li><a href="http://www.openstreetmaps.org" target="_blank">OpenStreetMaps</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/01/25/using-openstreetmap-to-point-out-your-location-on-a-webpage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hint: USB PATA/SATA interface</title>
		<link>http://www.it-slav.net/blogs/2010/01/18/hint-usb-patasata-interfac/</link>
		<comments>http://www.it-slav.net/blogs/2010/01/18/hint-usb-patasata-interfac/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 19:28:42 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[english]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1541</guid>
		<description><![CDATA[Every computer geek ends up with a bunch of disks with unknown status in the drawer. It can be rather cumbersome to put them in a machine and check the status especially if some are SATA and others are PATA, it gets even more complicated if they are mixed 3.5&#34; and 2.5&#34;.
In situations like this [...]]]></description>
			<content:encoded><![CDATA[<p>Every computer geek ends up with a bunch of disks with unknown status in the drawer. It can be rather cumbersome to put them in a machine and check the status especially if some are SATA and others are PATA, it gets even more complicated if they are mixed 3.5&quot; and 2.5&quot;.</p>
<p>In situations like this I recommend a USB SATA/PATA interface i.e. <a href="http://www.kjell.com/content/templates/shop_main_details.aspx?item=68225&amp;path=97000000,119000000,149500000,154000000" target="_blank">Plexgear</a> at <a href="http://www.kjell.com/" target="_blank">Kjell&amp;Company</a>, the adapter looks like it is OEM:ed so there probably several with different brands.</p>
<p>Features:</p>
<ul>
<li>USB-SATA</li>
<li>USB-PATA 2.5&quot;</li>
<li>USB-PATA 3.5&quot;</li>
<li>Power Supply for normal devices and SATA devices</li>
</ul>
<p>The only thing I miss is that it does not contain a SCSI interface aswell <img src='http://www.it-slav.net/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I have used it to backup files on a LVM disk, transfer files from old disk to a new when upgrading, reinitialize a disk that refused to install Windows 7, attach a DVD-Rom to a blade server and so on.</p>
<p>In my opinion every geek and sysadmin should have one.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/01/18/hint-usb-patasata-interfac/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Book review &#8220;FreePBX 2.5, Powerful Telephony Solutions&#8221;</title>
		<link>http://www.it-slav.net/blogs/2009/11/26/book-review-freepbx-2-5-powerful-telephony-solutions/</link>
		<comments>http://www.it-slav.net/blogs/2009/11/26/book-review-freepbx-2-5-powerful-telephony-solutions/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 11:42:16 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[FreePBX]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1494</guid>
		<description><![CDATA[&#160;
&#160;
I have finished reading the great book &#34;FreePBX 2.5 Powerful Telephony Solutions&#34;, by Alex Robar and it is 277 pages.
&#160;
The intended target audience for this book are system administrators who want to get started with Asterisk and FreePBX.&#160; It is perfect for administrators who want to reduce costs by replacing a proprietary PBX with a [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<a target="_blank" href="http://www.packtpub.com/freepbx-2-5-powerful-telephony-solutions/mid/230909otf457?utm_source=It-Slav.net&amp;utm_medium=affiliate&amp;utm_content=other&amp;utm_campaign=mdb_000778"><img width="500" height="617" class="aligncenter size-full wp-image-1500" title="freepbx" alt="freepbx" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/11/freepbx.jpg" /></a></p>
<p>&nbsp;</p>
<p>I have finished reading the great book &quot;FreePBX 2.5 Powerful Telephony Solutions&quot;, by Alex Robar and it is 277 pages.</p>
<p>&nbsp;<span id="more-1494"></span></p>
<p>The intended target audience for this book are system administrators who want to get started with Asterisk and FreePBX.&nbsp; It is perfect for administrators who want to reduce costs by replacing a proprietary PBX with a PBX that runs on open source packages. The pre required knowledge is basic knowledge of Linux and telephony, though neither is strictly required.</p>
<p>&nbsp;</p>
<p>I find the targeted audience and the pre required knowledge correct, however I&nbsp;think the Linux knowledge is an absolute demand or at least have someone to ask. A basic knowledge of Telephony is also more or less required.</p>
<p>&nbsp;</p>
<p>The book cover installation on CentOS&nbsp;and Ubuntu Server, configuration, adding handset, trunk setup, call routing, voicemail, digital receptionist, music-on-hold, call recording, maintenance, backups and much more.</p>
<p>&nbsp;</p>
<p>I find the book very valuable and I really like the concept of FreePBX. When starting with Asterisk the myriads of parameters are overwhelming. FreePBX makes the approach to Asterisk easier and makes the startup much faster then go to the Asterisk config via textfiles. FreePBX comes with many modules that should be enough for most demands and if needed it is still possible to use configuration using config files.</p>
<p>&nbsp;</p>
<p>The book describes the most important modules in FreePBX in a structured and pedagogic way with many screenshoots and figures. I really likes the examples in the end of the book with trunk configuration to some big SIP providers. Even if none of them is valid in Sweden it gives you an idea what parameters to start with when configure trunks.</p>
<p>&nbsp;</p>
<p>When it comes to trouble shooting I&nbsp;think the book should have contained a chapter about that. In many cases the way of trouble shoot is to use the Asterisk CLI, read logs and in some cases use a network analyser like WireShark. I think the book should have contained an introduction to trouble shooting and the different tools available.</p>
<p>Some of the script examples contain some typos but with basic scripting knowledge it is easy to fix.</p>
<p>&nbsp;</p>
<p>I reccomend this book for anyone interested in FreePBX, FreePBX admins and Asterisk newbies. This book makes the start with FreePBX much faster compared to&nbsp; trying to collect the information from the web and other sources. The FreePBX website is a great as a reference, however this book makes it easy and fast to get started with FreePBX and Asterisk.</p>
<p>&nbsp;</p>
<h2>Links:</h2>
<ul>
<li>More info about&nbsp; the book <a href="http://www.packtpub.com/freepbx-2-5-powerful-telephony-solutions/mid/230909otf457?utm_source=It-Slav.net&amp;utm_medium=affiliate&amp;utm_content=other&amp;utm_campaign=mdb_000778" target="_blank">&quot;FreePBX 2.5 Powerful Telephony Solutions&quot;</a></li>
<li>Example <a href="http://www.packtpub.com/files/4725-freepbx-sample-chapter-8-recording-calls.pdf" target="_blank">chapter 8 Recording calls</a></li>
<li>FreePBX <a href="http://www.freepbx.org" target="_blank">homepage</a></li>
<li>Asterisk <a href="http://www.asterisk.org" target="_blank">homepage</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/11/26/book-review-freepbx-2-5-powerful-telephony-solutions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Keep track of unused switch ports with Nagios or op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2009/11/24/keep-track-of-unused-switch-ports-with-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2009/11/24/keep-track-of-unused-switch-ports-with-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 10:12:02 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unused switch ports]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1485</guid>
		<description><![CDATA[Background
I&#160;was reading the Swedish computer magazine, Tech World. There was an article about an appliance solution that could give a report about unused switch ports. The box PortIQ from Infoblox costs approximatly 10.000 Euro.
op5 has developed this feature at a customer site and is included with op5 Monitor, op5 has published the code as opensource.
This [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>I&nbsp;was reading the Swedish computer magazine, <a target="_blank" href="http://techworld.idg.se/">Tech World</a>. There was an article about an appliance solution that could give a report about unused switch ports. The box <a target="_blank" href="http://www.infoblox.com/products/portiq-appliances.cfm">PortIQ</a> from Infoblox costs approximatly 10.000 Euro.</p>
<p><a target="_blank" href="http://www.op5.com">op5</a> has developed this feature at a customer site and is included with <a target="_blank" href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a>, op5 has published the code as <a target="_blank" href="http://git.op5.org/git/">opensource</a>.</p>
<p>This guide will describe howto get it running in op5 Monitor. op5 Monitor is vanilla Nagios with some addons so it should be no problem to follow this guide in a Nagios environment</p>
<p>&nbsp;</p>
<p><span id="more-1485"></span>&nbsp;</p>
<h2>Installation</h2>
<p>1. Update your op5 Monitor or <a href="http://git.op5.org/git/?p=nagios/op5plugins.git;a=tree;f=check_portstatus;h=120bf07e50d72c1a1beb0a8963cd45a5341e7727;hb=5759746d3bcd457d344c21d9befa5611515a9acb" target="_blank">download</a> the plugin and report script.</p>
<p>&nbsp;</p>
<p>2. Create metadata for check_portstatus as $USER1$/check_portstatus -H  $HOSTADDRESS$</p>
<p>in checkcommands.cfg:</p>
<p><code># command 'check_portstatus'<br />
define command{<br />
&nbsp;&nbsp;&nbsp; command_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_portstatus<br />
&nbsp;&nbsp;&nbsp; command_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $USER1$/check_portstatus -H $HOSTADDRESS$<br />
&nbsp;&nbsp;&nbsp; }</code><br />
&nbsp;</p>
<p>3. mkdir /var/spool/check_portstatus</p>
<p>&nbsp;</p>
<p>4. chown monitor:apache /var/spool/check_portstatus</p>
<p>&nbsp;</p>
<p>5. cp /opt/monitor/op5/portstatus/portstatus.php  /var/www/html/portstatus.php</p>
<p>&nbsp;</p>
<p>6. Define your service i.e. services.cfg:</p>
<p><code># service 'Portstatus'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gw<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Portstatus<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_portstatus<br />
&nbsp;&nbsp;&nbsp; }</code><br />
&nbsp;</p>
<h2>&nbsp;</h2>
<h2>The result</h2>
<p>The screenshot below shows a Cisco switch with alot of unused ports.</p>
<p><img width="692" height="713" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/11/portstatus1.png" alt="portstatus" title="portstatus" class="aligncenter size-full wp-image-1488" /></p>
<p>&nbsp;</p>
<h2>&nbsp;</h2>
<h2>Conclusions</h2>
<p>This article shows how easy it is to modify Nagios and other opensource tools to give you what you want. Do not hesitate to contact <a href="javascript:location.href='mailto:'+String.fromCharCode(112,101,116,101,114,64,105,116,45,115,108,97,118,46,110,101,116)+'?'">me</a> or <a target="_blank" href="http://www.op5.com">op5</a> to help you enhance you Nagios or op5 installation.</p>
<h2>&nbsp;</h2>
<h2>Links</h2>
<ul>
<li><a target="_blank" href="http://www.op5.com">op5</a></li>
<li><a target="_blank" href="http://www.op5.com/op5/products/network-monitor">op5 Monitor</a></li>
<li><a target="_blank" href="http://www.nagios.org">Nagios</a></li>
<li><a target="_blank" href="http://www.infoblox.com/products/portiq-appliances.cfm">PortIQ</a> appliance box from Infoblox</li>
<li><a target="_blank" href="http://techworld.idg.se/">Tech world</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/11/24/keep-track-of-unused-switch-ports-with-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rule engine integration with Nagios using NodeBrain</title>
		<link>http://www.it-slav.net/blogs/2009/10/22/rule-engine-integration-with-nagios-using-nodebrain/</link>
		<comments>http://www.it-slav.net/blogs/2009/10/22/rule-engine-integration-with-nagios-using-nodebrain/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 18:40:59 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[nagios rule engine]]></category>
		<category><![CDATA[nodebrain]]></category>
		<category><![CDATA[Rule engine]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1423</guid>
		<description><![CDATA[Background
This article will describe how easy it is to integrate other tools to Nagios or op5 Monitor. I&#160;will use an example with a webshop where a business view of how the webshop is doing is implemented by using a GPL&#8217;d rule engine, NodeBrain. I have in an earlier article described the ruleset for this implementation [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>This article will describe how easy it is to integrate other tools to <a target="_blank" href="http://www.nagios.org">Nagios</a> or <a target="_blank" href="http://www.op5.com/op5/products/monitor">op5 Monitor</a>. I&nbsp;will use an example with a webshop where a business view of how the webshop is doing is implemented by using a GPL&#8217;d rule engine, NodeBrain. I have in an <a target="_blank" href="http://www.it-slav.net/blogs/2009/10/05/an-advanced-gpld-rule-engine-nodebrain/">earlier article</a> described the ruleset for this implementation but now I&nbsp;will show how the integration can be done.</p>
<p>&nbsp;</p>
<h2>Scenario</h2>
<p>The scenario is a webshop with:</p>
<ul>
<li>5 frontend webservers</li>
<li>2 application servers</li>
<li>3 databasservers</li>
</ul>
<p>Management want to monitor how the webshop is doing. They do not want to know if a redundant part is down instead management want to have the overview of the webshop status.<span id="more-1423"></span></p>
<p>A management consultant is hired and do an investigation and after a ridiculous amount of money the following rules are defined:</p>
<ul>
<li>Webserver rules
<ul>
<li>If 3 or more webserver works the webservice is OK</li>
<li>If 2 webservers works the webservice is WARNING</li>
<li>If 1 webserver or less is working the webservice is CRITICAL</li>
</ul>
</li>
<li>Applicationserver rules
<ul>
<li>If 1 or 2 application servers works the application layer is OK</li>
<li>If zero application servers works the application layer is CRITICAL</li>
</ul>
</li>
<li>Database server rules
<ul>
<li>If 2 or more database server works the database layer is OK</li>
<li>if 1 database server works the database layer is WARNING</li>
<li>If no database servers works the database layer is CRITICAL</li>
</ul>
</li>
<li>&nbsp;The webserver layer, application layer and database layer should be viewed seperatly</li>
<li>The total webshop status has the highest status value of webserver layer, application layer and database layer</li>
</ul>
<p>I use Nagvis to illustrate the releationship between the layers.</p>
<p>&nbsp;</p>
<h3>Case 1</h3>
<p>The picture shows when everything is fine:</p>
<p><img height="335" width="826" class="aligncenter size-full wp-image-1435" title="Screenshot3" alt="Screenshot3" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/10/Screenshot31.png" /></p>
<h3>Case 2</h3>
<p>The rules in place:</p>
<ul>
<li>2 webservers CRITICAL and the webserverlayer is OK</li>
<li>1 appserver CRITICAL and the application layer is OK</li>
<li>2 databases are down and the database layer is WARNING</li>
<li>The total webshop status is WARNING because it has the highest status of the different layers</li>
</ul>
<p><img height="308" width="771" class="aligncenter size-full wp-image-1436" title="Screenshot4" alt="Screenshot4" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/10/Screenshot4.png" /></p>
<p>&nbsp;</p>
<h3>Case 3</h3>
<p>Now it has been even worse:</p>
<ul>
<li>4 webservers CRITICAL and the webserverlayer is CRITICAL</li>
<li>1 appserver CRITICAL and the application layer is OK</li>
<li>2 databases are down and the database layer is WARNING</li>
<li>The total webshop status is CRITICAL because it has the highest status of the different layers</li>
</ul>
<p>&nbsp;<img height="308" width="816" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/10/Screenshot5.png" alt="Screenshot5" title="Screenshot5" class="aligncenter size-full wp-image-1438" /></p>
<p>&nbsp;</p>
<h2>Conclusions</h2>
<p>This article shows the power of Open Source and what is possible todo when integration different projects with each other. A solution like this with one of the Big Four (IBM, BMC, CA, HP)&nbsp;would have cost alot when it comes to license and highly specialised consultants had to be hirered.</p>
<h1>&nbsp;</h1>
<h2>Links</h2>
<ul>
<li><a href="http://www.op5.com">Op5</a> A company that package and support enterprise class systems- and networkmanagement products</li>
<li><a href="http://www.nodebrain.org">NodeBrain</a>, A powerful GPL&#8217;d rule engine</li>
<li><a href="http://www.nagios.org">Nagios</a>, An enterprise class Monitoring sofware</li>
<li><a href="http://www.nagvis.org/">Nagvis</a>, Nagios Visualization addon</li>
</ul>
<p>&nbsp;</p>
<h1>&nbsp;</h1>
<h1>Implementation</h1>
<h2>Hosts and services</h2>
<p>The hosts and services are created:</p>
<ul>
<li>Webserver layer: 5 hosts each with 1 service</li>
<li>Application layer: 2 hosts each with 1 service</li>
<li>Database layer: 3 hosts each with 1 service</li>
<li>Webshop layer: 1 host called webshopcontainer and 4 services: webserversstatus, appsserverstatus, dbserversstatus and webshop status. The services represent each layer in the model and webshop is the total status of the webshop.</li>
</ul>
<p>To make it easy to control the status of all these devices I will use passive checks. So if I want to change the status of a service I&nbsp;just use the GUI&nbsp;and send in a passive check result. In real life active checks would have been used to monitor the different services.</p>
<p>&nbsp;</p>
<p>The result showing <strong>Service Detail</strong> using op5 developed Nagios GUI&nbsp;<a target="_blank" href="http://www.op5.org/community/projects/ninja">Ninja</a>:</p>
<p><img height="467" width="1209" class="aligncenter size-full wp-image-1431" title="screenshoot2" alt="screenshoot2" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/10/screenshoot2.png" /></p>
<p>&nbsp;</p>
<p>The statechanges are sent to NodeBrain via an eventhandler that sends the NodeBrain commands via a namedpipe:</p>
<p><code>#!/bin/sh<br />
#<br />
# Event handler script for sending nagios data to nodebrain<br />
#<br />
# This script has these arguments $SERVICESTATEID$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $SERVICEDESC$ $HOSTNAME$<br />
NODEBRAINPIPE=/opt/plugins/custom/nodebrainpipe<br />
DATE=`date`<br />
echo &quot;$DATE SERVICESTATEID=$1 SERVICESTATETYPE=$2 SERVICEATTEMPT=$3 SERVICEDESC=$4 HOSTNAME=$5&quot; &gt;&gt; /tmp/eventhandler_out</p>
<p># What state is the service in?<br />
case &quot;$1&quot; in<br />
OK)<br />
&nbsp;&nbsp;&nbsp; # The service just came back up<br />
&nbsp;&nbsp;&nbsp; # Send ok to nodebrain<br />
&nbsp;&nbsp;&nbsp; echo &quot;assert $4=0;&quot; &gt; $NODEBRAINPIPE<br />
&nbsp;&nbsp;&nbsp; echo &quot;assert $4=0;&quot; &gt;&gt; /tmp/eventhandler_out<br />
&nbsp;&nbsp;&nbsp; ;;<br />
WARNING)<br />
&nbsp;&nbsp;&nbsp; # We don't really care about warning states, since the service is probably still running...<br />
&nbsp;&nbsp;&nbsp; ;;<br />
UNKNOWN)<br />
&nbsp;&nbsp;&nbsp; # We don't know what might be causing an unknown error, so don't do anything...<br />
&nbsp;&nbsp;&nbsp; ;;<br />
CRITICAL)<br />
&nbsp;&nbsp;&nbsp; # Is this a &quot;soft&quot; or a &quot;hard&quot; state?<br />
&nbsp;&nbsp;&nbsp; case &quot;$2&quot; in<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; SOFT)<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # We're in a &quot;soft&quot; state, meaning that Nagios is in the middle of retrying the<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # check before it turns into a &quot;hard&quot; state and contacts get notified...<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # Don't do anything&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ;;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; # The HTTP service somehow managed to turn into a hard error without getting fixed.<br />
&nbsp;&nbsp;&nbsp; # It should have been restarted by the code above, but for some reason it didn't.<br />
&nbsp;&nbsp;&nbsp; # Let's give it one last try, shall we?&nbsp; <br />
&nbsp;&nbsp;&nbsp; # Note: Contacts have already been notified of a problem with the service at this<br />
&nbsp;&nbsp;&nbsp; # point (unless you disabled notifications for this service)<br />
&nbsp;&nbsp;&nbsp; HARD)<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # AHA! Hard state, send data to nodebrain<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo &quot;assert $4=2;&quot; &gt; $NODEBRAINPIPE<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo &quot;assert $4=2;&quot; &gt;&gt;/tmp/eventhandler_out <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ;;<br />
&nbsp;&nbsp;&nbsp; esac<br />
&nbsp;&nbsp;&nbsp; ;;<br />
esac</p>
<p>exit 0</code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The Nodebrainrules, that has all the logic and opens the namedpipe for commands:</p>
<p><code>#!/usr/local/bin/nb -d<br />
# <br />
-rm webshop.log<br />
set log=&quot;webshop.log&quot;,out=&quot;.&quot;;<br />
declare indata identity owner;<br />
define webshop node pipe.server(&quot;indata@nodebrainpipe&quot;);</p>
<p>#Start with webservers<br />
#Set OK<br />
assert weba=0;<br />
assert webb=0;<br />
assert webc=0;<br />
assert webd=0;<br />
assert webe=0;<br />
assert&nbsp; webserversstatus=0;</p>
<p>#define webserver rules<br />
#5 frontwebservers, if 3 or more ok status is ok<br />
#if 2 is ok, status warning<br />
#if 1 or 0 ok, status critical<br />
define webservers cell weba+webb+webc+webd+webe;</p>
<p>define webserversok on(webservers&lt;=4) webserversstatus=0;<br />
define webseroksend on(webserversstatus=0):-./send_to_monitor.sh webserversstatus 0 &quot;OK: Websservers are fine&quot;;</p>
<p>define webserverswarning on(webservers&gt;4 and webservers&lt;8) webserversstatus=1;<br />
define webserverswarningsend on(webserversstatus=1):-./send_to_monitor.sh webserversstatus 1 &quot;WARNING: Webservers have problems&quot;;</p>
<p>define webserverscritical on(webservers&gt;=8) webserversstatus=2;<br />
define webserverscriticalsend on(webserversstatus=2):-./send_to_monitor.sh webserversstatus 2 &quot;CRITICAL: Webservers have serious problems &quot;;</p>
<p>#appservers<br />
assert appa=0;<br />
assert appb=0;<br />
assert appserversstatus=0;<br />
#2 appservers, 1 down is ok, 2 down critical<br />
define appservers cell appa+appb;</p>
<p>define appserversok on(appservers&lt;=2) appserversstatus=0;<br />
define appserversoksend on(appserversstatus=0):-./send_to_monitor.sh appserversstatus 0 &quot;OK: Appservers are fine&quot;;</p>
<p>define appserverscritical on(appservers&gt;2) appserversstatus=2;<br />
define appserverscriticalsend on(appserversstatus=2):-./send_to_monitor.sh appserversstatus 2 &quot;CRITICAL: Appservers have serious problems&quot;;</p>
<p>#Databaseservers<br />
assert dba=0;<br />
assert dbb=0;<br />
assert dbc=0;<br />
assert dbserversstatus=0;<br />
#3 db servers<br />
#if 2 or more ok, status ok<br />
#if 1 ok, status warning<br />
define dbservers cell dba+dbb+dbc;</p>
<p>define dbserversok on(dbservers&lt;=2) dbserversstatus=0;<br />
define dbserversoksend on(dbserversstatus=0):-./send_to_monitor.sh dbserversstatus 0 &quot;OK: DataBaseservers are fine&quot;;</p>
<p>define dbserverswarning on(dbservers&gt;=4 and dbservers &lt;6)dbserversstatus=1;<br />
define dbserverswarningsend on(dbserversstatus=1):-./send_to_monitor.sh dbserversstatus 1 &quot;WARNING: DataBaseservers have problems&quot;;</p>
<p>define dbservercritical on(dbservers&gt;=6)dbserversstatus=2;<br />
define dbservercriticalsend on(dbserversstatus=2):-./send_to_monitor.sh dbserversstatus 2 &quot;CRITICAL: DataBaseservers have serious problems&quot;;</p>
<p>#Total rules<br />
assert webshopstatus=0;<br />
#If all serverstatus ok, the whole webshop is ok<br />
define webshopok on(webserversstatus=0 and appserversstatus=0 and dbserversstatus=0) webshopstatus=0;<br />
define webshopoksend on(webshopstatus=0):-./send_to_monitor.sh webshopstatus 0 &quot;OK: Webshop is fine&quot;;<br />
#If any serverstatus is critical the whole webshop is critical<br />
define webshopscritical on(webserversstatus=2 or appserversstatus=2 or dbserversstatus=2) webshopstatus=2;<br />
define webshopscriticalsend on(webshopstatus=2):-./send_to_monitor.sh webshopstatus 2 &quot;CRITICAL: Webshop has serious problems&quot;;<br />
#If not any serverstatuscritical and in warning, the whole shop is warning.<br />
define webshopwarning on((!webserversstatus=2 and !appserversstatus=2 and !dbserversstatus=2) and (webserversstatus=1 or dbserversstatus=1)) webshopstatus=1; <br />
define webshopwarningsend on(webshopstatus=1):-./send_to_monitor.sh webshopstatus 1 &quot;WARNING: Webshop has some problems&quot;;</code><br />
&nbsp;</p>
<p>&nbsp;</p>
<p>The NodeBrain rules runs this script when fired:</p>
<p><code>#!/bin/sh</p>
<p>HOSTNAME=webshopcontainer<br />
SERVICEDESC=$1<br />
STATUS=$2<br />
MESSAGE=$3<br />
</code></p>
<p><code>now=`date +%s`<br />
commandfile='/opt/monitor/var/rw/nagios.cmd'<br />
/usr/bin/printf &quot;[%lu] PROCESS_SERVICE_CHECK_RESULT;$HOSTNAME;$SERVICEDESC;$STATUS;$MESSAGE\n&quot; $now &gt; $commandfile</code></p>
<p>
&nbsp;</p>
<p>The Nagios or op5 Monitor hosts.cfg</p>
<p><code>###############################################################################<br />
#&nbsp; Generated by op5 Monitor webconfiguration exporter<br />
#<br />
#&nbsp; Exported 2009-10-22 19:33 by monitor<br />
#</p>
<p>
# host template 'Dummy-template'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; initial_state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o<br />
&nbsp;&nbsp;&nbsp; hostgroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NodeBrainDemo<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check-host-alive<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp; check_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp; retry_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; obsess_over_host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; check_freshness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; active_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; passive_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; flap_detection_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n<br />
&nbsp;&nbsp;&nbsp; process_perf_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_status_information&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_nonstatus_information&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; notification_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; notification_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; notification_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d,u,r,f<br />
&nbsp;&nbsp;&nbsp; notifications_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; stalking_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n<br />
&nbsp;&nbsp;&nbsp; register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host template 'default-host-template'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-host-template<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check-host-alive<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
&nbsp;&nbsp;&nbsp; check_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp; retry_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; check_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; active_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; passive_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; process_perf_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_status_information&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_nonstatus_information&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; notification_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; notification_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; notification_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d,u,r,f,s<br />
&nbsp;&nbsp;&nbsp; notifications_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'app-host-a'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app-host-a<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; App Host A<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; hostgroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NodeBrainDemo<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'app-host-b'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app-host-b<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; App Host B<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'db-host-a'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db-host-a<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DB Host A<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'db-host-b'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db-host-b<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DB Host B<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'db-host-c'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db-host-c<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DB Host C<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'web-host-a'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-a<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web Host A<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'web-host-b'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-b<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web Host B<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'web-host-c'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-c<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web Host C<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'web-host-d'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-d<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web Host D<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'web-host-e'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-e<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web Host E<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># host 'webshopcontainer'<br />
define host{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopcontainer<br />
&nbsp;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopcontainer<br />
&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; }</code><br />
&nbsp;</p>
<p>&nbsp;</p>
<p>The Nagios or op5 Monitor services.cfg</p>
<p><code>###############################################################################<br />
#&nbsp; Generated by op5 Monitor webconfiguration exporter<br />
#<br />
#&nbsp; Exported 2009-10-22 19:33 by monitor<br />
#</p>
<p># service template 'Dummy-service-template'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-service-template<br />
&nbsp;&nbsp;&nbsp; display_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-service-template<br />
&nbsp;&nbsp;&nbsp; is_volatile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; initial_state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; check_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retry_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; active_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; passive_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; check_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; parallelize_check&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; obsess_over_service&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; check_freshness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; event_handler_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; flap_detection_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n<br />
&nbsp;&nbsp;&nbsp; process_perf_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_status_information&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_nonstatus_information&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; notification_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; notification_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; notification_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c,w,u,r,f<br />
&nbsp;&nbsp;&nbsp; notifications_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; stalking_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n<br />
&nbsp;&nbsp;&nbsp; register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># service template 'default-service'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; is_volatile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
&nbsp;&nbsp;&nbsp; check_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp; retry_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; active_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; passive_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; check_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; event_handler_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; process_perf_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_status_information&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; retain_nonstatus_information&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; notification_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; notification_period&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24x7<br />
&nbsp;&nbsp;&nbsp; notification_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c,w,u,r,f,s<br />
&nbsp;&nbsp;&nbsp; notifications_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>
####################################################<br />
#<br />
# Services for host app-host-a<br />
#</p>
<p># service 'appa'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app-host-a<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appa<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; parallelize_check&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; obsess_over_service&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; check_freshness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; flap_detection_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n<br />
&nbsp;&nbsp;&nbsp; contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support-group<br />
&nbsp;&nbsp;&nbsp; stalking_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host app-host-b<br />
#</p>
<p># service 'appb'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app-host-b<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appb<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host db-host-a<br />
#</p>
<p># service 'dba'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db-host-a<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dba<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host db-host-b<br />
#</p>
<p># service 'dbb'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db-host-b<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbb<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host db-host-c<br />
#</p>
<p># service 'dbc'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db-host-c<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbc<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host web-host-a<br />
#</p>
<p># service 'weba'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-a<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; weba<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host web-host-b<br />
#</p>
<p># service 'webb'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-b<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webb<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host web-host-c<br />
#</p>
<p># service 'webc'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-c<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webc<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host web-host-d<br />
#</p>
<p># service 'webd'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-d<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webd<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host web-host-e<br />
#</p>
<p># service 'webe'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default-service<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web-host-e<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webe<br />
&nbsp;&nbsp;&nbsp; check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;&nbsp; event_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventhandler_send_to_nodebrain<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>####################################################<br />
#<br />
# Services for host webshopcontainer<br />
#</p>
<p># service 'appserversstatus'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-service-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopcontainer<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appserversstatus<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># service 'dbserversstatus'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-service-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopcontainer<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbserversstatus<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># service 'webserversstatus'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-service-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopcontainer<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webserversstatus<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</p>
<p># service 'webshopstatus'<br />
define service{<br />
&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dummy-service-template<br />
&nbsp;&nbsp;&nbsp; host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopcontainer<br />
&nbsp;&nbsp;&nbsp; service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshopstatus<br />
&nbsp;&nbsp;&nbsp; servicegroups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; webshop<br />
&nbsp;&nbsp;&nbsp; flap_detection_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&nbsp;&nbsp;&nbsp; }</code></p>
<p>
&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/10/22/rule-engine-integration-with-nagios-using-nodebrain/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>An advanced GPL&#8217;d rule engine, NodeBrain</title>
		<link>http://www.it-slav.net/blogs/2009/10/05/an-advanced-gpld-rule-engine-nodebrain/</link>
		<comments>http://www.it-slav.net/blogs/2009/10/05/an-advanced-gpld-rule-engine-nodebrain/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:31:48 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[nodebrian]]></category>
		<category><![CDATA[Rule engine]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1392</guid>
		<description><![CDATA[Background
When I&#160;worked as a Tivoli Consultant I spend a lot of time investigating the customer processes and workflow and try to make the monitoring solution to support this. It was often long term projects and involved alot of people like, project managers, support staff, maintenance staff, application owners, applicataion engineers, operating systemens managers, DBAs and [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>When I&nbsp;worked as a Tivoli Consultant I spend a lot of time investigating the customer processes and workflow and try to make the monitoring solution to support this. It was often long term projects and involved alot of people like, project managers, support staff, maintenance staff, application owners, applicataion engineers, operating systemens managers, DBAs and so on.</p>
<p>Very often the investigation followed the following principles:</p>
<ol>
<li>Investigate the problem management workflow</li>
<li>Document the different parts that builds up the system</li>
<li>Find spots where a probe could be inserted to monitor a particular part in the system</li>
<li>Define the thresholds for the probe</li>
<li>Iterate 3 and 4 until all possible problems in the system could be detected</li>
<li>Define who should have which alarm and when ifthe probes shows abnormal behavior.</li>
<li>Write the ruleset that implements 7</li>
<li>Test</li>
<li>Document and hand over to the customer</li>
</ol>
<p>When it comes to a product like Nagios or op5 Monitor, the product has a built in rule engine that fullfills most of the requirements in the steps above. In most cases it is just a matter of configuration and in some cases some extra scripting.</p>
<p><span id="more-1392"></span></p>
<h2>&nbsp;</h2>
<h2>Solution</h2>
<p>I&nbsp;have run into rare cases where the builtin rule engine is not good enough and I&nbsp;have looked for a rule engine that fullfill the following requirements:</p>
<ul>
<li>Gnu Public Licence or another acceptable license</li>
<li>Standalone</li>
<li>Advanced enough</li>
<li>Possible to integrate with other solutions like Nagios or op5 Monitor</li>
</ul>
<p>Now I think I&nbsp;have found a good candidate, <a target="_blank" href="http://www.nodebrain.org">NodeBrain</a> and right now I&#8217;m testing it.</p>
<p>I&nbsp;will do a follow up article where I&nbsp;describe howto integrate NodeBrain with <a href="http://www.nagios.org" target="_blank">Nagios</a> or <a href="http://www.op5.com/op5/products/monitor" target="_blank">op5 Monitor</a>.</p>
<p>&nbsp;</p>
<h2>An example</h2>
<p>This is as an example of what a rule engine can do:</p>
<p>Webshop example</p>
<ul>
<li>&nbsp;5 webfrontends, 1 or 2 down is OK, 3 is down is WARNING, 4 or 5 down is CRITICAL</li>
<li>2 appservers, 1 down is OK, 2 DOWN&nbsp;is CRITICAL</li>
<li>3 database backends, 1 down is OK, 2 down is WARNING, 3 down is CRITICAL</li>
<li>Overall, the layer with the highest severity is the total severerity.</li>
</ul>
<h3>&nbsp;Implementation:</h3>
<p>The ruleset</p>
<p><code>#Start with webservers<br />
#Set OK<br />
assert weba=0;<br />
assert webb=0;<br />
assert webc=0;<br />
assert webd=0;<br />
assert webe=0;<br />
assert&nbsp; webserversstatus=0;</p>
<p>#define webserver rules<br />
#5 frontwebservers, if 3 or more ok status is ok<br />
#if 2 is ok, status warning<br />
#if 1 or 0 ok, status critical<br />
define webservers cell weba+webb+webc+webd+webe;<br />
define webserversok on(webservers&lt;=4) webserversstatus=0;<br />
define webserverswarning on(webservers&gt;4 and webservers&lt;8) webserversstatus=1;<br />
define webserverscritical on(webservers&gt;=8) webserversstatus=2;</p>
<p>#appservers<br />
assert appa=0;<br />
assert appb=0;<br />
assert appserversstatus=0;<br />
#2 appservers, 1 down is ok, 2 down critical<br />
define appservers cell appa+appb;<br />
define appserversok on(appservers&lt;=2) appserversstatus=0;<br />
define appserverscritical on(appservers&gt;2) appserversstatus=2;</p>
<p>#Databaseservers<br />
assert dba=0;<br />
assert dbb=0;<br />
assert dbc=0;<br />
assert dbserversstatus=0;<br />
#3 db servers<br />
#if 2 or more ok, status ok<br />
#if 1 ok, status warning<br />
define dbservers cell dba+dbb+dbc;<br />
define dbserversok on(dbservers&lt;=2) dbserversstatus=0;<br />
define dbserverswarning on(dbservers&gt;=4 and dbservers &lt;6)dbserversstatus=1;<br />
define dbservercritical on(dbservers&gt;=6)dbserversstatus=2;</p>
<p>#Total rules<br />
assert webshopstatus=0;<br />
#If all serverstatus ok, the whole webshop is ok<br />
define webshopok on(webserversstatus=0 and appserversstatus=0 and dbserversstatus=0) webshopstatus=0;<br />
#If any serverstatus is critical the whole webshop is critical<br />
define webshopscritical on(webserversstatus=2 or appserversstatus=2 or dbserversstatus=2) webshopstatus=2;<br />
#If not any serverstatuscritical and in warning, the whole shop is warning.<br />
define webshopwarning on((!webserversstatus=2 and !appserversstatus=2 and !dbserversstatus=2) and (webserversstatus=1 or dbserversstatus=1)) webshopstatus=1; </code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Testing:</p>
<p><code>./nb webshop.nb -<br />
&gt; assert weba=2;<br />
&gt; assert webb=2;<br />
&gt; assert webc=2;<br />
2009/10/02 09:44:42 NB000I Rule webserverswarning fired (webserversstatus=1)<br />
2009/10/02 09:44:42 NB000I Rule webshopwarning fired (webshopstatus=1)<br />
&gt; assert webd=2;<br />
2009/10/02 09:45:06 NB000I Rule webserverscritical fired (webserversstatus=2)<br />
2009/10/02 09:45:06 NB000I Rule webshopscritical fired (webshopstatus=2)<br />
&gt; assert webd=0;<br />
2009/10/02 09:46:27 NB000I Rule webserverswarning fired (webserversstatus=1)<br />
2009/10/02 09:46:27 NB000I Rule webshopwarning fired (webshopstatus=1)<br />
&gt; assert weba=0;<br />
2009/10/02 09:46:32 NB000I Rule webserversok fired (webserversstatus=0)<br />
2009/10/02 09:46:32 NB000I Rule webshopok fired (webshopstatus=0)<br />
&gt; assert appa=2;<br />
&gt; assert appb=2;<br />
2009/10/02 09:47:12 NB000I Rule appserverscritical fired (appserversstatus=2)<br />
2009/10/02 09:47:12 NB000I Rule webshopscritical fired (webshopstatus=2)<br />
&gt; assert weba=2;<br />
2009/10/02 09:47:40 NB000I Rule webserverswarning fired (webserversstatus=1)<br />
&gt; assert webd=2;<br />
2009/10/02 09:48:07 NB000I Rule webserverscritical fired (webserversstatus=2)<br />
&gt; assert appb=0;<br />
2009/10/02 09:49:08 NB000I Rule appserversok fired (appserversstatus=0)<br />
&gt; assert weba=0;<br />
2009/10/02 09:49:33 NB000I Rule webserverswarning fired (webserversstatus=1)<br />
2009/10/02 09:49:33 NB000I Rule webshopwarning fired (webshopstatus=1)<br />
&gt; assert dba=2;<br />
&gt; assert dbb=2;<br />
2009/10/02 09:51:05 NB000I Rule dbserverswarning fired (dbserversstatus=1)<br />
&gt; assert dbc=2;<br />
2009/10/02 09:51:09 NB000I Rule dbservercritical fired (dbserversstatus=2)<br />
2009/10/02 09:51:09 NB000I Rule webshopscritical fired (webshopstatus=2)<br />
&gt; show -t<br />
@ = ! == node<br />
webshopwarning = ! == on(((!(webserversstatus=2))&amp;((!(appserversstatus=2))&amp;(!(dbserversstatus=2))))&amp;((webserversstatus=1)|(dbserversstatus=1))) webshopstatus=1;<br />
webshopscritical = ! == on((webserversstatus=2)|((appserversstatus=2)|(dbserversstatus=2))) webshopstatus=2;<br />
webshopok = ! == on((webserversstatus=0)&amp;((appserversstatus=0)&amp;(dbserversstatus=0))) webshopstatus=0;<br />
webshopstatus = 2<br />
dbservercritical = ! == on(dbservers&gt;=6) dbserversstatus=2;<br />
dbserverswarning = ! == on((dbservers&gt;=4)&amp;(dbservers&lt;6)) dbserversstatus=1;<br />
dbserversok = ! == on(dbservers&lt;=2) dbserversstatus=0;<br />
dbservers = 6 == ((dba+dbb)+dbc)<br />
dbserversstatus = 2<br />
dbc = 2<br />
dbb = 2<br />
dba = 2<br />
appserverscritical = ! == on(appservers&gt;2) appserversstatus=2;<br />
appserversok = ! == on(appservers&lt;=2) appserversstatus=0;<br />
appservers = 2 == (appa+appb)<br />
appserversstatus = 0<br />
appb = 0<br />
appa = 2<br />
webserverscritical = ! == on(webservers&gt;=8) webserversstatus=2;<br />
webserverswarning = ! == on((webservers&gt;4)&amp;(webservers&lt;8)) webserversstatus=1;<br />
webserversok = ! == on(webservers&lt;=4) webserversstatus=0;<br />
webservers = 6 == ((((weba+webb)+webc)+webd)+webe)<br />
webserversstatus = 1<br />
webe = 0<br />
webd = 2<br />
webc = 2<br />
webb = 2<br />
weba = 0</p>
<p>&gt; assert dbc=0;<br />
2009/10/02 09:52:12 NB000I Rule dbserverswarning fired (dbserversstatus=1)<br />
2009/10/02 09:52:12 NB000I Rule webshopwarning fired (webshopstatus=1)<br />
&gt; assert webb=0;<br />
2009/10/02 09:52:31 NB000I Rule webserversok fired (webserversstatus=0)<br />
&gt; assert dba=0;<br />
2009/10/02 09:52:45 NB000I Rule dbserversok fired (dbserversstatus=0)<br />
2009/10/02 09:52:45 NB000I Rule webshopok fired (webshopstatus=0) </code></p>
<p>&nbsp;</p>
<h2>Links</h2>
<ul>
<li><a href="http://www.nodebrain.org" target="_blank">NodeBrain</a></li>
<li><a href="http://www.nodebrain.org/package/nb/version/0.7/release/0.7.4/nbTutorial.html" target="_blank">NodeBrain tutorial</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/10/05/an-advanced-gpld-rule-engine-nodebrain/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
