<?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; sysadmin</title>
	<atom:link href="http://www.it-slav.net/blogs/category/sysadmin/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>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>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>Unlock Huawei modems</title>
		<link>http://www.it-slav.net/blogs/2010/05/02/unlock-huawei-modems/</link>
		<comments>http://www.it-slav.net/blogs/2010/05/02/unlock-huawei-modems/#comments</comments>
		<pubDate>Sun, 02 May 2010 12:46:06 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Hints]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Unlock Huawei]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1773</guid>
		<description><![CDATA[&#160;
I&#160;wanted to unlock my operator locked Huawei e1750 modem. After googling I&#160;found this page in swedish.
The unlock code can be calculated by using the IMEI number, the unlock code is sent by using AT&#160;commands.
I&#160;have succesfully tested this on e1750 and e1550.
I&#160;also tried it on e220 and it did not work.

&#160;
1. Get the IMEI number
Normally this [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I&nbsp;wanted to unlock my operator locked Huawei e1750 modem. After googling I&nbsp;found <a href="http://www.mobilabredband.se/forum/viewtopic.php?id=1709">this</a> page in swedish.</p>
<p>The unlock code can be calculated by using the IMEI number, the unlock code is sent by using AT&nbsp;commands.</p>
<p>I&nbsp;have succesfully tested this on e1750 and e1550.</p>
<p>I&nbsp;also tried it on e220 and it did not work.</p>
<p><span id="more-1773"></span></p>
<h2>&nbsp;</h2>
<h2>1. Get the IMEI number</h2>
<p>Normally this is printed on the device put the geek way of getting it is by asking the device:</p>
<pre>
peter@peter-laptop:~/huawei$ cat /dev/ttyUSB0 &amp;
[1] 9378
peter@peter-laptop:~/huawei$ echo -e &quot;ATI\r&quot; &gt; /dev/ttyUSB0
peter@peter-laptop:~/huawei$ ATI
Manufacturer: huawei
Model: E1750
Revision: 11.126.07.04.00
IMEI: 123456789012347
+GCAP: +CGSM,+DS,+ES

OK
</pre>
<p>So the IMEI&nbsp;number is: 123456789012347</p>
<p>&nbsp;</p>
<h2>&nbsp;</h2>
<h2>2. Calculate the unlock code</h2>
<p>The following python script will calculate the unlock code:</p>
<pre>
import hashlib

def getCode(imei, salt):
    digest = hashlib.md5((imei+salt).lower()).digest()
    code = 0
    for i in range(0,4):
        code += (ord(digest[i])^ord(digest[4+i])^ord(digest[8+i])^ord(digest[12+i])) &lt;&lt; (3-i)*8
        code &amp;= 0x1ffffff
        code |= 0x2000000
    return code

# Your IMEI goes here:
imei = &quot;123456789012347&quot;

print &quot;Unlock code: %s&quot; % getCode(imei, &quot;5e8dd316726b0335&quot;)
print &quot;Flash code: %s&quot; % getCode(imei, &quot;97b7bc6be525ab44&quot;)
</pre>
<p>When run:</p>
<pre>
peter@peter-laptop:~/huawei$ python unlock_code.py
Unlock code: 36963763
Flash code: 53969249
</pre>
<h2>&nbsp;</h2>
<h2>3. Use the unlock code</h2>
<pre>
peter@peter-laptop:~/huawei$ echo -e 'AT^CARDLOCK=&quot;36963763&quot;\r' &gt; /dev/ttyUSB0

OK
</pre>
<p>&nbsp;</p>
<p>Congratulations, now your modem is unlocked</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2010/05/02/unlock-huawei-modems/feed/</wfw:commentRss>
		<slash:comments>4</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>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>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>Phonzo SIP provider tries to block Asterisk</title>
		<link>http://www.it-slav.net/blogs/2009/12/07/phonzo-sip-provider-tries-to-block-asterisk/</link>
		<comments>http://www.it-slav.net/blogs/2009/12/07/phonzo-sip-provider-tries-to-block-asterisk/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 20:17:47 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Hints]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[it-slav.net]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1507</guid>
		<description><![CDATA[After the problems I&#160;have had with Bredband2, I&#160;want to test Phonzo.se as a new VoIP provider.
I&#160;registered on their homepage and after a couple of days I&#160;got a snail mail with my credentials.
I&#160;configured my FreePBX and calling in worked directly, but not outgoing. After 2 hours of troubleshooting I&#160;started to google &#34;phonzo asterisk&#34; and found several [...]]]></description>
			<content:encoded><![CDATA[<p>After the problems I&nbsp;have had with Bredband2, I&nbsp;want to test <a href="http://www.phonzo.se" target="_blank">Phonzo.se</a> as a new VoIP provider.</p>
<p>I&nbsp;registered on their homepage and after a couple of days I&nbsp;got a snail mail with my credentials.</p>
<p>I&nbsp;configured my FreePBX and calling in worked directly, but not outgoing. After 2 hours of troubleshooting I&nbsp;started to google &quot;phonzo asterisk&quot; and found several people that has the same experience. The reason is that Phonzo does not accepted &quot;Asterisk PBX&quot; as useragent and that is default in Asterisk.</p>
<p>&nbsp;</p>
<p>After changing sip.conf</p>
<pre>
[general]

...

useragent=it-slav PBX

....</pre>
<p>
It worked!</p>
<p><span id="more-1507"></span>&nbsp;</p>
<p>I&nbsp;do not like unlogical stupidity so I&nbsp;sent an email to the support and the following bizare mail conversation occoured:</p>
<address>Me : Why do you try to block Asterisk? Changing useragent=garbage makes it work.</address>
<address>&nbsp;</address>
<address>Phonzo: We do not try to block Asterisk in any way. Just change your useragent to something else, then it works.</address>
<address>&nbsp;</address>
<address>Me: Why do I&nbsp;have to change it? It took me 2 hours to figure out.</address>
<address>&nbsp;</address>
<address>Phonzo: You must change UA because our system do not accept &quot;Asterisk PBX&quot; as UA. This is something Phonzo always has had.</address>
<address>&nbsp;</address>
<address>Me: Why did you introduce this limitation in the first place? When will you remove it?</address>
<address>&nbsp;</address>
<address>Phonzo: The reason for this change is that the company evolve and new solutions has been implemented. If our customers finds it problematic that we do not accept UA to be &quot;Asterisk PBX&quot; we will remove it.</address>
<address>&nbsp;</address>
<address>Me: The question is total opposite, you erlier claimed that is has NOT&nbsp;changed, instead it was introduced when Phonzo started.</address>
<address>Lets recap:</address>
<address>-You claim that UA &quot;Asterisk PBX&quot; is not allowed because that is something you introduced when Phonzo started, &quot;why?&quot; has not been answered.</address>
<address>-You claim that you do not block Asterisk because, if anyone asks, you tell them to change UA. No reason why this limitation was introduced at all. My conclusion is that you block Asterisk.</address>
<address>-You will remove it if it causes problems to your customers. I lost two hours and I&nbsp;find several other on internet that see this as problematic. Take it away.</address>
<address>&nbsp;</address>
<address>Phonzo: It is not a problem to change UA it is very simple. Every other question has been answered.</address>
<address>&nbsp;</address>
<address>Me: Now I&nbsp;have published this bizare conversation on my blog.</address>
<address>The question still remains:</address>
<address>Why do you not allow UA &quot;Asterisk PBX&quot;?</address>
<address>&nbsp;</address>
<p>I&nbsp;will update this post when new info arrives.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/12/07/phonzo-sip-provider-tries-to-block-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</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>OpenBSD 4.6 Released</title>
		<link>http://www.it-slav.net/blogs/2009/10/18/openbsd-4-6-released/</link>
		<comments>http://www.it-slav.net/blogs/2009/10/18/openbsd-4-6-released/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 16:36:41 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Hints]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>

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

Many people have received their 4.6 CDs in the mail by now, and we
really don't want them to be without the full package repository.

------------------------------------------------------------------------
- OpenBSD 4.6 RELEASED -------------------------------------------------

Oct 18, 2009.

We are pleased to announce the official release of OpenBSD 4.6.
This is our 26th release on CD-ROM (and 27th via FTP).  We remain
proud of OpenBSD's [...]]]></description>
			<content:encoded><![CDATA[<div lang="x-western" class="moz-text-plain" wrap="true" graphical-quote="true" style="font-family: -moz-fixed; font-size: 12px;">
<pre wrap="">
Many people have received their 4.6 CDs in the mail by now, and we
really don't want them to be without the full package repository.

------------------------------------------------------------------------
- OpenBSD 4.6 RELEASED -------------------------------------------------

Oct 18, 2009.

We are pleased to announce the official release of OpenBSD 4.6.
This is our 26th release on CD-ROM (and 27th 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 releases, 4.6 provides significant improvements,
including new features, in nearly all areas of the system:

- New/extended platforms:
    o mvme88k
      o MVME141 and MVME165 boards are now supported.
    o sgi
      o SGI Octane, SGI Origin 200 and SGI Fuel systems are now supported.
      o Several bugs in interrupt handling have been fixed, resulting
        in significantly improved system response.
    o sparc
      o The bootblock load address has been moved so that larger kernels
        can be loaded.
    o sparc64
      o Acceleration support has been added for many of the PCI frame buffer
        drivers, such as the Sun PGX, PGX64 and XVR-100, and Tech Source
        Raptor GFX graphics cards.
</pre>
<pre wrap=""><span id="more-1417"></span>

- Improved hardware support, including:
    o Several new/improved drivers for sensors, including:
      o The ips(4) driver now has sensor support, complementing the bio support.
      o The acpithinkpad(4) driver now has temperature and fan sensor support.
      o New endrun(4) driver for the EndRun Technologies timedelta sensor.
      o The fins(4) driver now has support for F71806, F71862 and F71882 ICs.
      o The acpitz(4) driver now shows correct decimals for temperature.
    o Added radeonfb(4) to sparc64, an accelerated framebuffer for
      Sun XVR-100 boards.
    o Added support for RTL8103E and RTL8168DP devices in the re(4) driver.
    o Added support for BCM5709/BCM5716 devices in the bnx(4) driver.
    o Added support for ICH10 variants of em(4).
    o Added support for VIA VX855 chipset in the viapm(4) and pciide(4) drivers.
    o Added support for Intel SCH IDE to pciide(4).
    o Added support for the Broadcom HT-1100 chipset in the piixpm(4) driver.
    o Added support for 82574L based devices in the em(4) driver.
    o Added support for VIA CX800 south bridge to the viapm(4) driver.
    o A number of network drivers including bge(4), bnx(4), hme(4), iwn(4),
      ix(4), msk(4), sis(4), sk(4), vr(4) and wpi(4) now make use of the
      MCLGETI(9) allocator in order to reduce memory usage and increase
      performance when under load or attack.
    o Added support in em(4) for the newer 82575 chips.
    o zyd(4) now supports devices with Airoha AL2230S radios.
    o zyd(4) now works on big-endian machines
    o urtw(4) now supports RTL8187B based devices.
    o New otus(4) driver for Atheros AR9001U USB 802.11a/b/g/Draft-N
      wireless devices.
    o New berkwdt(4) driver for Berkshire Products PCI watchdog timers.
    o New udl(4) driver for USB video devices.
    o Support for a variety of newer models in bge(4).
    o Initial version of vsw(4), a driver for the virtual network switch
      found on sun4v sparc64 systems.
    o Implemented machfb(4), an accelerated driver for the sparc64 PGX/PGX64
      framebuffers.
    o New vcc(4) and vcctty(4) drivers for the &quot;Virtual Console Concentrator&quot;
      found on the control domain of sun4v systems.
    o Implemented 64-bit FIFO modes for ciss(4) devices.
    o Enabled hardware VLAN tagging and stripping on ix(4).
    o Added basic support for Envy24HT chips to the envy(4) driver.
    o Many improvements and updates to the isp(4) driver.
    o Added support for 88E8057-based Yukon 2 Ultra 2-devices in msk(4).
    o The ips(4) driver now works reliably.
    o Added raptor(4), an accelerated framebuffer driver for the Tech Source
      Raptor GFX cards on the sparc64 platform.
    o Enabled schsio(4) on i386 and amd64 and added watchdog timer support.
    o New acpivideo(4) driver for ACPI display switching and brightness control.
    o Added support for the IBM ServeRAID-8k in the aac(4) driver.
    o Added support for the BCM5825 and 5860/61/62 Broadcom CryptoNetX
      IPSec/SSL Security processor in the ubsec(4) driver.
    o Added support for AES-CBC with BCM5823-based ubsec(4) devices.
    o Firmware for bnx(4) has been updated.
    o Added support to fxp(4) for the 82552 MAC found on some ICH7 chipsets.
    o Added support to umsm(4) for Truinstall enabled modems like the
      Sierra 881U.
    o Added support to pciide(4) for ICH10 SATA devices not operating in
      AHCI mode.
    o dc(4) now reads the MAC address from the eeprom rather than CIS.
    o em(4) now correctly handles MAC addresses for dual-port 8257[56] cards.
    o IPv6 receive TCP/UDP checksum offloading has been enabled for jme(4).
    o IPv6 receive TCP/UDP checksum offloading has been enabled in bge(4) for
      the 5755 and later chips.
    o iwi(4) now associates with APs that refuse non-short slot-time capable
      STAs.
    o IP, TCP and UDP checksum offloading has been enabled in vr(4) for
      VT6105M-based devices.
    o VGA BIOS repost support has been added for amd64 and i386 platforms.

- New tools:
    o Added smtpd(8), a new privilege-separated SMTP daemon.
    o Imported the tmux(1) terminal multiplexer, replacing window(1).

- New functionality:
    o httpd(8) can now serve files larger than 2GB in size.
    o Mice with many buttons are now supported by wsmoused(8).
    o New &quot;nfsserver&quot; and &quot;nfsclient&quot; views have been added to systat(1).
    o Automatic partition allocation has been added to disklabel(8), with a
      variety of smart heuristics.
    o An undo command has been added to disklabel(8), which reverts the
      label back to its previous state.
    o When running in auto-mode, sysmerge(8) will now install binary files
      from X sets automatically.
    o sysmerge(8) now creates a report summary file in the work directory.
    o httpd(8) now drops privileges to www/www rather than nobody/nogroup
      if the User/Group entries are not present within the configuration file.
    o ELF based platforms now generate ELF core dumps and gdb(1) is now able
      to read ELF core dumps.
    o Additional diff options have been added to opencvs(1).
    o When sendbug(1) is run as root, the pcidump(8) and acpidump(8) output
      is included.
    o Support for audible ping(8) and ping6(8) has been added.
    o ftpd(8) now logs both the remote IP and remote hostname when receiving
      a new connection.
    o relayd(8) now allows both UDP and TCP redirections.
    o SSL sessions are now maintained by relayd(8) for each checked host,
      resulting in subsequent checks being lighter and faster on the server.
    o Added support to relayd(8) for client-side TCP connections from relays.
    o Added support to relayd(8) for specifying a CA file to verify SSL server
      certificates when connecting as a client from relays.

- pf(4) improvements:
    o Enabled pf(4) by default in the rc.conf(8).
    o Removed pf(4) scrub rules, and only do one kind of packet reassembly.
      Rulesets with scrub rules need to be modified because of this.
    o Regular rules can now have per-rule scrub options.
    o Added new &quot;match&quot; keyword which only applies rule options but does
      not change the current pass/block state.
    o Make all pf(4) operations transactional to improve atomicity of reloads.
    o Stricter pf(4) checking for ICMP and ICMPv6 packets.
    o Various improvements to pfsync(4) to lower sync traffic bandwidth and
      optionally allow active-active firewall setups.
    o Fix pf(4) scrub max-mss for IPv6 traffic.

- softraid(4) improvements:
    o Rebuild support has been added and RAID 1 volumes can now be rebuilt.
    o Boot time assembly has been significantly improved, with volume and
      chunk ordering now being respected. Duplicated chunks and version
      mismatches are also handled gracefully.
    o Volumes with missing members are now brought online.

- OpenBGPD, OpenOSPFD and other routing daemon improvements:
    o In bgpd(8), rework most of the RDE to allow multiple RIBs.
      It is possible to filter per-RIB and attach neighbors to a specific RIB.
    o Added an option to bgpd(8) to change the &quot;connect-retry&quot; timer.
    o Allow bgpd.conf(5) and bgpctl(8) to contain 32-bit ASN numbers written in
      ASPLAIN format.
    o Fix bgpd(8) to correctly encode MP unreachable NLRI so IPv6 prefixes get
      removed correctly.
    o Changed the behaviour of &quot;redistribute default&quot; for ospfd(8) and ripd(8).
      A default route has to be present in the FIB to be correctly advertised.
    o Make ospfd(8) and ripd(8) track reject and blackhole routes and allow
      them to be redistributed even if pointing to 127.0.0.1.
    o Allow an alternate control socket to be specified for ospfd(8).
    o ospfd(8) can now be bound to an alternate routing domain.
    o Fix ospfd(8) route metric for &quot;redistribute default&quot;.
    o Initial version of ldpctl(8) and ldpd(8), a label distribution protocol
      daemon for mpls.
    o Make dvmrpd(8) RDE aware of multicast group members per interface.
    o Added support for pruning in dvmrpd(8).

- Generic Network-Stack improvements:
    o Support for virtual routing and firewalling with the addition of routing
      domains.
    o Added support for ifconfig(8) to bind an interface to a routing domain.
    o Added support to ping(8), traceroute(8), arp(8), nc(1) and telnet(1) to
      specify which routing domain to use.
    o Allow ifconfig(8) to turn off IPv6 completely for an interface and
      make rtsold(8) turn on inet6 on the interface.
    o Routes track the interface link state.
    o route(8) flush accepts &quot;-iface&quot; or &quot;-priority&quot; to only flush routes
      matching these conditions.
    o Multiple dhclients can now coexist without causing mayhem.
    o Make wireless interfaces have an interface priority of 4 by default.
      Makes them less preferred then wired interfaces.
    o Do not accept IPv4 ICMP redirects by default.
    o Added the MAC address to the log entries in dhclient(8).
    o Make systat(1) show interface description names in the interface view,
      and add new NFS server and client views.
    o Make tun(4) emulate link state depending on the open and close of the
      device fd.
    o Use pf state-table information to speed up decision on whether a packet
      is to be delivered locally or forwarded.
    o More routing socket checks added to make userland applications more
      resilient to kernel changes.

- Install/Upgrade process changes:
    o The installer has almost been rewritten, primarily with a focus on
      simplifying the installation process.
    o Automatic disk layout can now be used during installation, allowing for
      simple single-disk installs.
    o VLAN support is now available in some installation media.
    o A standard user account can now be created during the install process.

- OpenSSH 5.3:
    o Do not limit home directory paths to 256 characters.
    o Several minor documentation and correctness fixes.

- Over 5,800 ports, minor robustness improvements in package tools.
    o Many pre-built packages for each architecture:
      i386:   5606    sparc64:  5413    alpha: 5346    sh:     1261
      amd64:  5544    powerpc:  5427    sparc: 3711    mips64: 3443
      arm:    5291    hppa:     4790    vax:   1785

- 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 + patches, freetype 2.3.9,
        fontconfig 2.6.0, Mesa 7.4.2, xterm 243 and more)
      o Gcc 2.95.3 (+ patches) and 3.3.5 (+ patches)
      o Perl 5.10.0 (+ 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.2
      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.5
and 4.6, look at

        <a class="moz-txt-link-freetext" href="http://www.openbsd.org/plus46.html">http://www.OpenBSD.org/plus46.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.6 FTP/CD-ROM binaries and the actual 4.6
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 class="moz-txt-link-freetext" href="http://www.openbsd.org/security.html">http://www.OpenBSD.org/security.html</a>
and
	<a class="moz-txt-link-freetext" href="http://www.openbsd.org/errata.html">http://www.OpenBSD.org/errata.html</a>

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

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

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

OpenBSD 4.6 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;Planet of the Users&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 class="moz-txt-link-freetext" href="http://www.openbsd.org/lyrics.html#46">http://www.OpenBSD.org/lyrics.html#46</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.6 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 class="moz-txt-link-freetext" href="http://www.openbsd.org/orders.html">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 class="moz-txt-link-freetext" href="https://https.openbsd.org/cgi-bin/order">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 class="moz-txt-link-freetext" href="http://www.openbsd.org/goals.html#funding">http://www.OpenBSD.org/goals.html#funding</a>

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

For those unable to make their contributions as straightforward gifts,
the OpenBSD Foundation (<a class="moz-txt-link-freetext" href="http://www.openbsdfoundation.org/">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 class="moz-txt-link-abbreviated" href="mailto:directors@openbsdfoundation.org">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.6 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 class="moz-txt-link-freetext" href="http://www.openbsd.org/ftp.html">http://www.OpenBSD.org/ftp.html</a>
        <a class="moz-txt-link-freetext" href="ftp://ftp.openbsd.org/pub/OpenBSD/4.6/ftplist">ftp://ftp.OpenBSD.org/pub/OpenBSD/4.6/ftplist</a>

   As of Oct 1, 2009, the following ftp mirror sites have the 4.6 release:

	<a class="moz-txt-link-freetext" href="ftp://ftp.stacken.kth.se/pub/OpenBSD/4.6/">ftp://ftp.stacken.kth.se/pub/OpenBSD/4.6/</a>	Sweden
	<a class="moz-txt-link-freetext" href="ftp://ftp2.usa.openbsd.org/pub/OpenBSD/4.6/">ftp://ftp2.usa.openbsd.org/pub/OpenBSD/4.6/</a>	NYC, USA
	<a class="moz-txt-link-freetext" href="ftp://ftp3.usa.openbsd.org/pub/OpenBSD/4.6/">ftp://ftp3.usa.openbsd.org/pub/OpenBSD/4.6/</a>	CO, USA
	<a class="moz-txt-link-freetext" href="ftp://ftp5.usa.openbsd.org/pub/OpenBSD/4.6/">ftp://ftp5.usa.openbsd.org/pub/OpenBSD/4.6/</a>	CA, USA
	<a class="moz-txt-link-freetext" href="ftp://rt.fm/pub/OpenBSD/4.6/">ftp://rt.fm/pub/OpenBSD/4.6/</a>			IL, USA

	The release is also available at the master site:

	<a class="moz-txt-link-freetext" href="ftp://ftp.openbsd.org/pub/OpenBSD/4.6/">ftp://ftp.openbsd.org/pub/OpenBSD/4.6/</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.6/ 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    cd46.iso        floppyB46.fs    pxeboot*
	INSTALL.linux   cdboot*         floppyC46.fs    xbase46.tgz
	MD5             cdbr*           game46.tgz      xetc46.tgz
	base46.tgz      cdemu46.iso     index.txt       xfont46.tgz
	bsd*            comp46.tgz      install46.iso   xserv46.tgz
	bsd.mp*         etc46.tgz       man46.tgz       xshare46.tgz
	bsd.rd*         floppy46.fs     misc46.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 install46.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 install46.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 class="moz-txt-link-freetext" href="http://www.openbsd.org/errata.html">http://www.OpenBSD.org/errata.html</a>

   This is the page where we talk about the mistakes we made while
   creating the 4.6 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.6/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.6 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 class="moz-txt-link-freetext" href="ftp://ftp.openbsd.org/pub/OpenBSD/4.6/PACKAGES">ftp://ftp.OpenBSD.org/pub/OpenBSD/4.6/PACKAGES</a>) for more details.

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

The CD-ROMs contain source code for all the subsystems explained
above, and the README (<a class="moz-txt-link-freetext" href="ftp://ftp.openbsd.org/pub/OpenBSD/4.6/README">ftp://ftp.OpenBSD.org/pub/OpenBSD/4.6/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.6/ directory:

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

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

OpenBSD 4.6 includes artwork and CD artistic layout by Ty Semaka,
who also arranged an audio track on the OpenBSD 4.6 CD set.  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.6 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 Cappuccio,
    Chris Kuethe, Christian Weisgerber, Claudio Jeker,
    Constantine A. Murenin, Dale Rahn, Damien Bergamini, Damien Miller,
    Darren Tucker, David Gwynne, David Hill, David Krause, Eric Faurot,
    Esben Norby, Federico G. Schwindt, Felix Kronlage, Gilles Chehade,
    Giovanni Bechis, Gordon Willem Klok, Hans-Joerg Hoexer,
    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 Gray,
    Jordan Hargrave, Joris Vink, 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, 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, Ray Lai, Reyk Floeter, Robert Nagy, Rui Reis,
    Ryan Thomas McBride, Simon Bertrang, Stefan Kempf, Steven Mestdagh,
    Stuart Henderson, Ted Unangst, Theo de Raadt, Thordur I. Bjornsson,
    Tobias Stoeckmann, Tobias Weingartner, Todd C. Miller, Todd Fries,
    Will Maier, William Yodlowsky, Xavier Santolaria, Yojiro Uo
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/10/18/openbsd-4-6-released/feed/</wfw:commentRss>
		<slash:comments>0</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>
		<item>
		<title>Howto turn on and off services permanently in Ubuntu</title>
		<link>http://www.it-slav.net/blogs/2009/09/24/howto-turn-on-and-off-services-permanently-in-ubuntu/</link>
		<comments>http://www.it-slav.net/blogs/2009/09/24/howto-turn-on-and-off-services-permanently-in-ubuntu/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 19:08:10 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1367</guid>
		<description><![CDATA[In RedHat, CentOs and Suse and probaly other Linux distributions, the way of enabling and disabling a service at reboot is by using chkconfig.  In ubuntu, the way of turning on and off a services at boot is by using update-rc.d.  It changes the links for the init scripts.
&#160;
To start a script in [...]]]></description>
			<content:encoded><![CDATA[<p>In RedHat, CentOs and Suse and probaly other Linux distributions, the way of enabling and disabling a service at reboot is by using chkconfig.  In ubuntu, the way of turning on and off a services at boot is by using update-rc.d.  It changes the links for the init scripts.</p>
<p>&nbsp;</p>
<p>To start a script in the default run levels:</p>
<pre>
sudo update-rc.d appname defaults</pre>
<p>To remove a script from all runlevels:</p>
<pre>
sudo update-rc.d appname remove</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/09/24/howto-turn-on-and-off-services-permanently-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>op5 announces the release of op5 Monitor 4.2</title>
		<link>http://www.it-slav.net/blogs/2009/09/15/op5-announces-the-release-of-op5-monitor-4-2/</link>
		<comments>http://www.it-slav.net/blogs/2009/09/15/op5-announces-the-release-of-op5-monitor-4-2/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 09:00:10 +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[english]]></category>
		<category><![CDATA[op5]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[ninja]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1346</guid>
		<description><![CDATA[op5 AB is a world leading OSM &#8211; Open Source Management &#8211; company that delivers software based on open source for control of IT systems and networks. The award winning op5 Monitor is now released with important enhancements that will enable customers and other vendors to further improve usability and integration for optimized IT monitoring. [...]]]></description>
			<content:encoded><![CDATA[<p><em>op5 AB is a world leading OSM &#8211; Open Source Management &#8211; company that delivers software based on open source for control of IT systems and networks. The award winning op5 Monitor is now released with important enhancements that will enable customers and other vendors to further improve usability and integration for optimized IT monitoring. </em></p>
<p>&nbsp;</p>
<p>op5 Monitor is based on Nagios*, the industry standard for enterprise-class IT infrastructure monitoring. Until now, op5 Monitor has had to rely on the basics of standard Nagios Graphical User Interface (GUI) for presentation and overall user experience. With the release of op5 Monitor 4.2 we include a fully functional preview of a brand new GUI, now based on the Ninja Open Source project. The new GUI is based on a modern PHP architecture and is now shipped for real operation testing.<span id="more-1346"></span></p>
<p>&nbsp;</p>
<p>Usability, flexibility and visualization probably stands for more then 80% of overall customer value. Our solutions for full control of our customers IT systems hold a huge amount of both historical data and instant events. Making this information accessible and easy to understand for as many as possible is the single most effective value for our customers. And who is better to give us important feedback on GUI related features and functions then our customers? This is why we now choose to include an early version for test, evaluation and feedback purposes, all to secure the best for the coming official release of Monitor 5.0 later this year, says Jan Josephson, CEO op5 AB.</p>
<p>&nbsp;</p>
<p>The new GUI with its flexible interface based on the PHP framework makes it much easier to provide customizations for customers specific needs. With the introduction of widget and support session based authentication it is now possible to fully personalize views and settings. The widget technology further provides a future standard way for two way synchronization and presentation of customer unique data and the presentation of it.</p>
<p>&nbsp;</p>
<p>The ability to search, sort and filter vast data volumes has been greatly improved with pagination for views of hosts and services and the possibility to sort by column. The new improved search feature includes auto suggestion and let you search on hosts, services host groups and service groups. <br />
These changes greatly improves the possibilities to answer to customer needs and to develop customized features that has not been possible until now due to the restrictions from the old GUI.<br />
A new module for network visualization (the NagVis project) has been included in op5 Monitor 4.2. You can now visualize your infrastructure using three different map types;</p>
<ul>
<li>Auto map, a auto drawn topology map using parent / child relationships.</li>
<li>Static Map makes it possible to put any object (host, service, host group or service group) on an image of choice.</li>
<li>Geo map, uses Google maps API, drawing a map by using addresses or gps coordinates on your monitored objects. Object and status information as well as links can be included in the map. The maps can be visualized as widgets on the tactical overview or be used on big monitors in operation centers.</li>
<li>Largest OSS-project in Network Monitoring, Nagios.</li>
</ul>
<p>&nbsp;</p>
<p>About op5 AB op5 AB is a world leading OSM &#8211; Open Source Management &#8211; company that delivers software based on open source for control of IT systems and networks. Its main products are op5 Monitor, op5 Statistics and op5 LogServer. The products are based on open source code that op5 further develops, packages, and sells as complete products and systems with services and support. p5 has a large selection of primarily European clients from different market segments for example AGA Linde Gas, The Swedish Customs Service (Tullverket) and other parastatals, several county councils, municipalities and municipal companies. op5 was founded in 2003. The company is based in Sweden with offices in Stockholm and Gothenburg.</p>
<p>&nbsp;</p>
<p><a href="http://www.op5.com/">www.op5.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/09/15/op5-announces-the-release-of-op5-monitor-4-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ninja, the new Nagios GUI, preview</title>
		<link>http://www.it-slav.net/blogs/2009/09/12/ninja-the-new-nagios-gui-preview/</link>
		<comments>http://www.it-slav.net/blogs/2009/09/12/ninja-the-new-nagios-gui-preview/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 13:27:33 +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]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[geomap]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[Nagios gui]]></category>
		<category><![CDATA[ninja]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1314</guid>
		<description><![CDATA[&#160;
Next week, op5 will release the new Nagios GUI called Ninja. The license is GPL and several people has reported the GUI work perfectly well on vanilla Nagios. Ninja uses a database backend. Merlin, another op5 developed software feeds the Nagios information into the database.
Links:

op5 -OpenSource based management software company
Ninja- Nagios Is Now Just Awesome
Merlin [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Next week, op5 will release the new Nagios GUI called Ninja. The license is GPL and several people has reported the GUI work perfectly well on vanilla Nagios. Ninja uses a database backend. Merlin, another op5 developed software feeds the Nagios information into the database.</p>
<p>Links:</p>
<ul>
<li><a href="http://www.op5.com">op5</a> -OpenSource based management software company</li>
<li><a href="http://www.op5.org/community/projects/ninja">Ninja</a>- Nagios Is Now Just Awesome</li>
<li><a href="http://www.op5.org/op5media/op5.org/merlin/merlin_100x100.png">Merlin</a> &#8211; Module for Effortless Redundancy and Loadbalancing In Nagios</li>
<li><a href="https://beta.op5.com/ninja">Try</a> &#8211; Ninja GUI</li>
</ul>
<p>Some screenshoots below:</p>
<p>&nbsp;</p>
<p>&nbsp;Geomap, based on google maps</p>
<p><img height="448" width="943" class="aligncenter size-full wp-image-1325" title="geomap" alt="geomap based in googlemaps" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/09/geomap3.png" /></p>
<p>&nbsp;<span id="more-1314"></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tactical overview, with widgets that could be dragged and dropped<img class="aligncenter size-full wp-image-1328" title="tacticaloverview" alt="tacticaloverview" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/09/tacticaloverview.png" style="width: 951px; height: 442px;" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Host details</p>
<p><img class="aligncenter size-full wp-image-1331" title="hostdetails" alt="hostdetails" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/09/hostdetails.png" style="width: 956px; height: 441px;" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Nagvis integration</p>
<p><img height="663" width="878" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/09/nagvis-demo.png" alt="nagvis-demo" title="nagvis-demo" class="aligncenter size-full wp-image-1333" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/09/12/ninja-the-new-nagios-gui-preview/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>General Systems- and Network management guideline, part 1</title>
		<link>http://www.it-slav.net/blogs/2009/08/30/general-systems-and-network-management-guidelines-part-1/</link>
		<comments>http://www.it-slav.net/blogs/2009/08/30/general-systems-and-network-management-guidelines-part-1/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 15:30:44 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Hints]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[guideline]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[monitor guideline]]></category>
		<category><![CDATA[monitor howto]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Network management]]></category>
		<category><![CDATA[op5]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[surveillance]]></category>
		<category><![CDATA[surveillance guideline]]></category>
		<category><![CDATA[Systems management]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1170</guid>
		<description><![CDATA[Background
This article is describing best practice I have collected after a 10 year period with Systems- and Network&#160; management. My role has varied between consultant, trainer, systems engineer, project manager and architect.
&#160;
Very many programs creates log files. They are great for trouble shooting and in some cases the only place to find out if there [...]]]></description>
			<content:encoded><![CDATA[<h3>Background</h3>
<p>This article is describing best practice I have collected after a 10 year period with Systems- and Network&nbsp; management. My role has varied between consultant, trainer, systems engineer, project manager and architect.</p>
<p>&nbsp;</p>
<p>Very many programs creates log files. They are great for trouble shooting and in some cases the only place to find out if there is something wrong.&nbsp;</p>
<p>A monitor friendly software has a way of figuring out the status this very moment by providing relevant information via for example:&nbsp; SNMP, a web page, status stored in a database, a well documented API available in several different languages or similiar.</p>
<p>&nbsp;</p>
<p>A NON monitor friendly application has for an example a javascript webpage where all the status can be read, unfortunatly this becomes more and more common.</p>
<p>&nbsp;</p>
<p>When someone writes a piece of software, think about that someone else might want to know the status of it.</p>
<p><span id="more-1170"></span></p>
<p>As a consultant working with monitoring and surveillance, I have meet several developers that has the attitude that their software never breaks if everything else works.:</p>
<p>-Just make sure that I get the data and all the surrounding pieces like databases, network, hardware and so on works, then my code will work flawless.</p>
<p>IMHO, unfortunatly the best way to meet that type of arguments is by just sit back and let them put their application into test and production. Focus on getting the other stuff monitored. Within a rather short while the development team will come back and ask how the best way of sending information into the monitoring solution is done.</p>
<p>&nbsp;</p>
<p><strong>The best way of building a monitored solution is to design the application to be monitored from the begining instead of trying to fix it afterwards.</strong></p>
<p>&nbsp;</p>
<p>In most cases a good enough solution can be created relativly simple afterwards and in some cases it is a little bit harder.</p>
<p>&nbsp;</p>
<h3>Guideline</h3>
<p>My experience as surveilence expert working with Tivoli, BMC, HP OpenView, IBM NetView, BigBrother, Nagios and op5 Monitor can be collected in these simple guidelines:</p>
<ul>
<li>Keep it simple stupid.
<ul>
<li>Start with simple monitoring, like PING to make sure that the host is up and standard checks like http, smtp and so on to make sure that standard services are up. Going from no monitoring to basic monitoring is a huge step and many organizations do not have the processes to handle more complex monitoring.</li>
<li>The next step is disk, CPU and memory on hosts. On network devices are port load, cpu load, network link.</li>
<li>Third step is to dig into bussiness critical applications and services.</li>
</ul>
</li>
<li>Small iterations. Do not try to build a top of the line monitoring solution from day one. You will never leave the startup phase.</li>
<li>Let the monitoring solution pull the status instead of sending the status to the monitroing solution. This avoid complicated rules when different types of information is sent to the monitoring solution. So avoid sending SNMPtraps.</li>
<li>The monitoring solution is NOT a trashcan where to send tons of uninteresting garbage. It is far to common that HW vendors recommends to send thousands of unnecessary SNMPtraps to the monitoring solution and just a few is interesting. It is a nightmare to create the ruleset to figure out what is interesting, especially if there is dependencies where one message is interesting if another message has been sent before. The documentation is a badly written&nbsp; MIB on a couple of hundered pages. In almost every case I&#8217;ve run into with this approch the implementation never ends and test cases are hard to create. When the systems are in production I can bet on that a critical event will occour which has not been taken care of and the production will stop. Managers will be upset, vendors will blame each other and customers will be angry.</li>
<li>Let the status be availiable easily:
<ul>
<li>via standard APIs, Perl and Bash is the most common.</li>
<li>SNMP via SNMPget instead of SNMPtraps</li>
<li>Status stored in a database, the monitoring solution can run SQL quries to get the status.</li>
<li>Commands the can be runned by the monitoring solution and the output parsed, or even better, exit codes are used and documented.</li>
</ul>
</li>
<li>Normally it is not a good idea to read a log file to understand the status of of the software.</li>
</ul>
<p>&nbsp;</p>
<h3>Afterword</h3>
<p>This guide describes the guidelines howto collect the data for your monitor solution. In the next article I will describe howto implement and work with the information collected.</p>
<p>Stay tuned&#8230;</p>
<h3>&nbsp;</h3>
<h3>Links</h3>
<ul>
<li>Another <a href="http://www.op5.com/support/documentation/how-to/708-implementing-monitoring" target="_blank">article</a> written by op5 support</li>
<li><a href="http://www.nagios.org">Nagios</a>, a great opensource monitoring software</li>
<li><a href="http://www.op5.com/op5/products/monitor" target="_blank">op5 Monitor</a>, a monitoring software based on Nagios</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/08/30/general-systems-and-network-management-guidelines-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unison File Synchronizer</title>
		<link>http://www.it-slav.net/blogs/2009/08/27/unison-file-synchronizer/</link>
		<comments>http://www.it-slav.net/blogs/2009/08/27/unison-file-synchronizer/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 20:01:20 +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[sysadmin]]></category>
		<category><![CDATA[file synchronization]]></category>
		<category><![CDATA[ifolder]]></category>
		<category><![CDATA[unison]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1213</guid>
		<description><![CDATA[Background
As a former Novell employee there is one software I really miss and that is iFolder. It is an excellent file syncronization software. You configure iFolder where your local iFolder files are located and what server to syncronize against. Do a sync and now they are avilable at any iFolder instance if you sync against [...]]]></description>
			<content:encoded><![CDATA[<h3>Background</h3>
<p>As a former Novell employee there is one software I really miss and that is iFolder. It is an excellent file syncronization software. You configure iFolder where your local iFolder files are located and what server to syncronize against. Do a sync and now they are avilable at any iFolder instance if you sync against the same server. It works almost magical. You can have several machines where you create files, sync them. After that go to a fresh machine do a iFolder sync and vol&aacute; there is the files.</p>
<p>According to Novell iFolder is OpenSourced but the installation is <a href="https://help.ubuntu.com/community/iFolderEnterpriseServer" target="_blank">horrible</a> on any other plattform then SuSE.</p>
<p>&nbsp;</p>
<h3>Solution</h3>
<p>After some investigation I&nbsp;finally stumbled on <a href="http://www.cis.upenn.edu/~bcpierce/unison/" target="_blank">Unison</a>. Unison works on Unix like operating system like, Linux, BSD, OS X and also on Windows. It is in the Ubuntu repository and RHEL rpm package can be found <a href="http://dag.wieers.com/rpm/packages/unison/" target="_blank">here</a>.</p>
<p>&nbsp;</p>
<h3>Simple example</h3>
<p>Syncronize one directory <code>testunison</code> containing two files</p>
<p><code>peter@peter-laptop:~$ unison -ui text -contactquietly testunison ssh://zelda/testunison<br />
peter@zelda's password: <br />
Looking for changes<br />
&nbsp; Waiting for changes from server<br />
Reconciling changes</code></p>
<p>local&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zelda.mynet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
new file &#8212;-&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a&nbsp; [f] <br />
new file &#8212;-&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b&nbsp; [f]</p>
<p>Proceed with propagating updates? [] y<br />
Propagating updates</p>
<p>UNISON 2.27.57 started propagating changes at 21:56:43 on 27 Aug 2009<br />
[BGN] Copying a from /home/peter/testunison to //zelda.mynet//home/peter/testunison<br />
[BGN] Copying b from /home/peter/testunison to //zelda.mynet//home/peter/testunison<br />
[END] Copying a<br />
[END] Copying b<br />
UNISON 2.27.57 finished propagating changes at 21:56:43 on 27 Aug 2009</p>
<p>Saving synchronizer state<br />
Synchronization complete&nbsp; (2 items transferred, 0 skipped, 0 failures)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>Links</h3>
<ul>
<li>Unison homepage: <a href="http://dag.wieers.com/rpm/packages/unison/" target="_blank">http://www.cis.upenn.edu/~bcpierce/unison/</a></li>
<li>Unison <a href="http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial" target="_blank">tutorial</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/08/27/unison-file-synchronizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Nagios or op5 Monitor eventhandler to start a service that has stopped</title>
		<link>http://www.it-slav.net/blogs/2009/06/15/using-nagios-or-op5-monitor-eventhandler-to-start-a-service-that-has-stopped/</link>
		<comments>http://www.it-slav.net/blogs/2009/06/15/using-nagios-or-op5-monitor-eventhandler-to-start-a-service-that-has-stopped/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 19:03:01 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[MythTV]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1138</guid>
		<description><![CDATA[Background
I use MythTV quite frequently and noticed that it is instable when using sasc-ng as a decoder to decrypt encrypted DVB-T channels. So approximatly every third day the MythTVbackend server stops and need to be started again. I have wriiten an earlier article about howto monitor MythTV with Nagios or op5 Monitor so I get [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>I use MythTV quite frequently and noticed that it is instable when using <a target="_blank" href="https://opensvn.csie.org/traccgi/sascng/">sasc-ng</a> as a decoder to decrypt encrypted DVB-T channels. So approximatly every third day the MythTVbackend server stops and need to be started again. I have wriiten an <a target="_blank" href="http://www.it-slav.net/blogs/?p=651">earlier article</a> about howto monitor MythTV with Nagios or op5 Monitor so I get noticed that it has stopped. But I need to manually start it again. This article describe howto make Nagios or op5 Monitor to start a stopped MythTVbackend. It can be used for starting almost any service.</p>
<p>I have used the examples provided by Ethan at <a target="_blank" href="http://support.nagios.com/knowledge-base/official-documentation">Nagios official documentation</a> describing <a target="_blank" href="http://nagios.sourceforge.net/docs/3_0/eventhandlers.html">eventhandlers</a>.</p>
<p>Normally it is not recommended to let a tool like Nagios or op5 Monitor start a service that has stopped, because it is probably a reason why the service has stopped and the correct procedure is to fix the root cause of the problem, not the symptom.</p>
<p>The MythTV backend runs on one machine called lala (after a character in Teletubbies) which is not the same as the Nagios or op5 Monitor server. I use nrpe to run the start script i.e.</p>
<pre>
 /etc/init.d/mythtv-backend start
</pre>
<p>There is several options here but I already setup the nrpe agent and it is simple to make Nagios or op5 Monitor to use nrpe to run a script.<span id="more-1138"></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Implementation</h2>
<p>I used the script I found at Nagios documentation about <a target="_blank" href="http://nagios.sourceforge.net/docs/3_0/eventhandlers.html">eventhandlers</a> as a base and modiied it slightly.</p>
<p>&nbsp;</p>
<h3>At my op5 Monitor machine</h3>
<pre>
/opt/plugins/custom/restart-mythtv-lala.sh
</pre>
<pre>
#!/bin/sh
#
# Event handler script for restarting the mythTVbackend server on lala
#
# Note: This script will only restart the mythtvbackend if the service is
#       retried 2 times (in a &quot;soft&quot; state) or if the service somehow
#       manages to fall into a &quot;hard&quot; error state.
#

# What state is the mythbackend service in?
case &quot;$1&quot; in
OK)
	# The service just came back up, so don't do anything...
	;;
WARNING)
	# We don't really care about warning states, since the service is probably still running...
	;;
UNKNOWN)
	# We don't know what might be causing an unknown error, so don't do anything...
	;;
CRITICAL)
	# Aha!  The HTTP service appears to have a problem - perhaps we should restart the server...

	# Is this a &quot;soft&quot; or a &quot;hard&quot; state?
	case &quot;$2&quot; in

	# We're in a &quot;soft&quot; state, meaning that Nagios is in the middle of retrying the
	# check before it turns into a &quot;hard&quot; state and contacts get notified...
	SOFT)

		# What check attempt are we on?  We don't want to restart the web server on the first
		# check, because it may just be a fluke!
		case &quot;$3&quot; in

		# Wait until the check has been tried 3 times before restarting the web server.
		# If the check fails on the 4th time (after we restart the web server), the state
		# type will turn to &quot;hard&quot; and contacts will be notified of the problem.
		# Hopefully this will restart the web server successfully, so the 4th check will
		# result in a &quot;soft&quot; recovery.  If that happens no one gets notified because we
		# fixed the problem!
		2)
			echo &quot;`date` Restarting mythtv service (2rd soft critical state)...&quot; &gt;&gt; /tmp/mythtvstart
			# Call the init script to restart the mythbackend server
			#/etc/rc.d/init.d/httpd restart
			#date &gt;&gt; /tmp/mythtvstart
			/opt/plugins/check_nrpe -H lala -c start_mythtvbackend
			;;
			esac
		;;

	# The mythtvbackend service somehow managed to turn into a hard error without getting fixed.
	# It should have been restarted by the code above, but for some reason it didn't.
	# Let's give it one last try, shall we?
	# Note: Contacts have already been notified of a problem with the service at this
	# point (unless you disabled notifications for this service)
	HARD)
		echo &quot;`date` Restarting mythtv service (hard state)...&quot; &gt;&gt; /tmp/mythtvstart
		# Call the init script to restart the HTTPD server
		#/etc/rc.d/init.d/httpd restart
		#date &gt;&gt; /tmp/mythtvstart
		/opt/plugins/check_nrpe -H lala -c start_mythtvbackend
		;;
	esac
	;;
esac
exit 0
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>
/opt/monitor/misccomands.cfg</pre>
<pre>
# command 'restart-mythtv-lala'
define command{
    command_name                   restart-mythtv-lala
    command_line                   /opt/plugins/custom/start-mythtv-lala.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
    }
</pre>
<p>&nbsp;</p>
<pre>
/opt/monitor/etc/services.cfg

# service 'Mythbackend'
define service{
    use                            default-service
    host_name                      lala
    service_description            Mythbackend
    check_command                  check_tcp!6543
    servicegroups                  MythTV,it-slav
    event_handler                  restart-mythtv-lala!$SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
    contact_groups                 it-slav_sms,it-slav_jabber,it_slav_mail
    }
</pre>
<h3>At my mythbackend machine lala</h3>
<pre>
/etc/nrpe.d/mycommands.cfg
command[start_mythtvbackend]=/usr/bin/sudo /etc/init.d/mythtv-backend start

/etc/sudoers
nobody ALL= (root) NOPASSWD:/etc/init.d/mythtv-backend start
</pre>
<address>Notice that my nrpe agent run as user nobody</address>
<address>&nbsp;</address>
<address>&nbsp;</address>
<address>&nbsp;</address>
<address>&nbsp;</address>
<h2>Test</h2>
<p>I stopped the mythtvbackend by running:</p>
<pre>
peter@lala:/etc/nrpe.d$ date
Mon Jun 15 20:40:55 CEST 2009
peter@lala:/etc/nrpe.d$ sudo /etc/init.d/mythtv-backend stop
 * Stopping MythTV server: mythbackend
</pre>
<p>And run</p>
<pre>
[root@op5 ~]# tail -f /tmp/mythtvstart
Mon Jun 15 20:47:09 CEST 2009 Restarting mythtv service (2rd soft critical state)...
</pre>
<p>YES it works!</p>
<p>&nbsp;</p>
<h2>Links:</h2>
<ul>
<li><a target="_blank" href="http://www.op5.com/op5/products/monitor">op5 Monitor</a> a Nagios based supported enterprise Monitoring software.</li>
<li><a target="_blank" href="http://www.mythtv.org">MythTV</a> a free OpenSource Digital Video Recorder</li>
<li><a href="http://www.nagios.org">Nagios</a> Open Source Monitoring</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/06/15/using-nagios-or-op5-monitor-eventhandler-to-start-a-service-that-has-stopped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitor an IPsec VPN tunnel on OpenBSD with Nagios or op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2009/04/27/monitor-an-ipsec-vpn-tunnel-on-openbsd-with-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2009/04/27/monitor-an-ipsec-vpn-tunnel-on-openbsd-with-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 06:48:31 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[ipsec]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=1006</guid>
		<description><![CDATA[Background
This article describes how to monitor an IPSEC tunnel running on OpenBSD. I could not find any plugin already done so I created my own.
The pre req. for this article are:

A working Nagios or op5 Monitor setup
A IPsec VPN tunnel running on OpenBSD
A working NRPE agent at the OpenBSD box


&#160;
Theory
The way of getting the status [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>This article describes how to monitor an IPSEC tunnel running on OpenBSD. I could not find any plugin already done so I created my own.</p>
<p>The pre req. for this article are:</p>
<ul>
<li>A working <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> setup</li>
<li>A <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ipsec&amp;apropos=0&amp;sektion=0&amp;manpath=OpenBSD+Current&amp;arch=i386&amp;format=html" target="_blank">IPsec VPN tunnel</a> running on <a href="http://www.openbsd.org" target="_blank">OpenBSD</a></li>
<li>A working NRPE agent at the OpenBSD box</li>
</ul>
<p><span id="more-1006"></span></p>
<p>&nbsp;</p>
<h2>Theory</h2>
<p>The way of getting the status of IPsec on OpenBSD is buy running:</p>
<pre>
ipsecctl -s s</pre>
<pre>
esp tunnel from x.x.x.x to y.y.y.y spi 0xe58a63d3 auth hmac-md5 enc 3des-cbc \
       authkey 0xabcdfghijklmnopqrstuvxyz \
       enckey 0xabcdfghijklmnopqrstuvxyz
esp tunnel from y.y.y.y to x.x.x.x spi 0x555f1f13 auth hmac-md5 enc 3des-cbc \
      authkey 0xabcdfghijklmnopqrstuvxyz \
      &nbsp;enckey 0xabcdfghijklmnopqrstuvxyz</pre>
<p>This shows that the IPsec tunnel between x.x.x.x and y.y.y.y is up.</p>
<p><em>Depending of the OpenBSD version the output will be different.</em></p>
<p>&nbsp;</p>
<p><em><br />
</em></p>
<h2>Plugin</h2>
<p>I put the plugin in /opt/plugins/custom at my OpenBSD box.</p>
<pre>
#!/bin/sh
#
# Copyright (C) 2009 Peter Andersson, peter@it-slav.net
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
#
# Very simple plugin that checks if a ipsec vpn is up between to ip-adresses
# Tested on OpenBSD 4.0
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see .
#
# Example use of this script:
# ./check_ipsecctl 10.1.1.1 10.2.1.1 &quot;VPN HQ&quot;
# OK: VPN HQ is up
#
# ./check_ipsecctl 10.1.1.1 10.2.1.1 &quot;VPN HQ&quot;
# CRITICAL: VPN HQ is down (No IP-SEC VPN from 10.1.1.1 to 10.2.1.1  No IP-SEC VPN from 10.2.1.1 to 10.1.1.1)
#
#
IPSECCTL=&quot;/sbin/ipsecctl -s sa&quot;
STATUS=0

LINE1=`$IPSECCTL | grep &quot;from $1 to $2&quot; `
if [ $? -eq 1 ]; then
        STATUS=2;
        OUTPUT1=&quot;No IP-SEC VPN from $1 to $2 &quot;
fi

LINE2=`$IPSECCTL | grep &quot;from $2 to $1&quot; `
if [ $? -eq 1 ]; then
        STATUS=2;
        OUTPUT2=&quot;No IP-SEC VPN from $2 to $1&quot;
fi

if [ $STATUS -eq 0 ]; then
        echo &quot;OK: $3 is up&quot;
        exit $STATUS
else
        echo &quot;CRITICAL: $3 is down ($OUTPUT1 $OUTPUT2)&quot;
        exit $STATUS
fi
</pre>
<h2>Nrpe config</h2>
<p>Nagios run check_ipsecctl via NRPE, it mus run as a privileged user and I use sudo, in /etc/nrpe.cfg</p>
<pre>
command[vpn_johan]=sudo /opt/plugins/custom/check_ipsecctl x.x.x.x y.y.y.y &quot;VPN Johan&quot;
</pre>
<p>x.x.x.x and y.y.y.y are the IP-addresses where the VPN tunnel terminates</p>
<p>&nbsp;</p>
<h2>Sudo</h2>
<p>Use sudoedit /etc/sudoers to modify the sudo config file:</p>
<p>nagios&nbsp; ALL=(root) NOPASSWD: /opt/plugins/custom/check_ipsecctl</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Nagios or op5 Monitor configuration</h2>
<p>The VPN connection can be treated as a service running on the OpenBSD box, but in my opinion, the VPN&nbsp; should be treated as a host using the plugin above to check that the host is alive, and the hosts at the other end of the VPN connection should have the&nbsp; VPN tunnel as parent. The advantage is that if the VPN tunnel is down the hosts and services behind it is unreachable, which is the correct behavior.</p>
<p>&nbsp;</p>
<p>hosts.cfg</p>
<pre>
# host template 'default-hosttemplate-nrpe'
define host{
    name                           default-hosttemplate-nrpe
    check_command                  check_nrpe
    max_check_attempts             5
    obsess_over_host               0
    check_freshness                0
    active_checks_enabled          1
    passive_checks_enabled         1
    event_handler_enabled          1
    flap_detection_enabled         1
    flap_detection_options         n
    process_perf_data              1
    retain_status_information      1
    retain_nonstatus_information   1
    notification_interval          0
    notification_period            24x7
    notification_options           d,u,r,f
    notifications_enabled          1
    stalking_options               n
    register                       0
    }
# host 'vpn-johan'
define host{
    use                            default-hosttemplate-nrpe
    host_name                      vpn-johan
    alias                          vpn johan
    address                        10.1.1.1
    parents                        internet
    check_command                  check_nrpe!vpn_johan
    contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
    }
</pre>
<p>10.1.1.1 is the IP-adress to my OpenBSD box. The reason for using a template is that I&#8217;m using the webbased config tool that comes with op5 Monitor.</p>
<h2>The result</h2>
<p><img height="293" width="264" class="aligncenter size-full wp-image-1020" title="vpn-op5monitor" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/04/vpn-op5monitor.png" alt="vpn-op5monitor" /></p>
<h2>Links</h2>
<ul>
<li><a href="http://www.nagios.org" target="_blank">Nagios</a></li>
<li><a href="http://www.op5.com/op5/products/monitor" target="_blank">op5 Monitor</a> a Nagios based full supported monitor solution</li>
<li><a href="http://www.openbsd.org" target="_blank">OpenBSD</a>, a FREE, multi-platform 4.4BSD-based UNIX-like operating system.</li>
<li><a href="http://www.ietf.org/proceedings/37/charters/ipsec-charter.html" target="_blank">IPsec</a>, a suite of protocols for securing Internet Protocol communications by authenticating and encrypting each IP packet of a data stream.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/04/27/monitor-an-ipsec-vpn-tunnel-on-openbsd-with-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using a webcamera to detect motions and send an alarm to Nagios or op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2009/04/13/using-a-webcamera-to-detect-motion-and-send-an-alarm-to-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2009/04/13/using-a-webcamera-to-detect-motion-and-send-an-alarm-to-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 20:49:05 +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[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[webcam motion]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=958</guid>
		<description><![CDATA[Background
This article describe howto use a USB camera (also known as webcam) to detect motions and send an alarm to Nagios or op5 Monitor. It can be used in datacenters to send an alert if someone or something is moving or at home to detect if someone is in your house. I will place the [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>This article describe howto use a USB camera (also known as webcam) to detect motions and send an alarm to Nagios or op5 Monitor. It can be used in datacenters to send an alert if someone or something is moving or at home to detect if someone is in your house. I will place the camera just inside the door so everybody passing my front door will be filmed and an alert will be sent to me.</p>
<p>The software used:</p>
<ul>
<li><a target="_blank" href="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome">Motion</a>, to detect movement and create a movie of the relevant time, pictures is also taken.</li>
<li><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> to create the alarm.</li>
</ul>
<p>The hardware used is an old Logitech webcam I found in my <a target="_blank" href="http://www.pytronix.se/">fathers</a> drawer  <img src='http://www.it-slav.net/blogs/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Motion supports alot of different devices but must simple is to use a video4linux supported device.</p>
<p>The pre req. for this article is a working Nagios or op5 Monitor system.</p>
<p><span id="more-958"></span></p>
<h2>Installation</h2>
<p>I have an Ubuntu system where I attach the webcamera, dmesg gives me:</p>
<pre>
[634581.861029] usb 1-2: new full speed USB device using uhci_hcd and address 3
[634582.032251] usb 1-2: configuration #1 chosen from 1 choice
[634582.034125] quickcam: QuickCam USB camera found (driver version QuickCam USB 0.6.6 $Date: 2006/11/04 08:38:14 $)
[634582.034144] quickcam: Kernel:2.6.27-11-generic bus:1 class:FF subclass:FF vendor:046D product:0870
[634582.048202] quickcam: Sensor HDCS-1020 detected
[634582.050173] quickcam: Registered device: /dev/video0
</pre>
<p>&nbsp;</p>
<p>Installing motion is simple, just run:</p>
<pre>
sudo apt-get install motion</pre>
<p>I will use passive checks to let motion send in alerts to Nagios, the best way of doing that is by using NSCA, for theory refer to an earlier <a target="_blank" href="http://www.it-slav.net/blogs/?p=392">article</a>.</p>
<pre>
sudo apt-get install nsca</pre>
<p>&nbsp;</p>
<h2>Test motion</h2>
<p>The first thing to test is that motion works, for me to get it to work I needed no configuration, run:</p>
<pre>
sudo motion</pre>
<p>and dance in front of your camera.</p>
<p><object width="425" height="344" type="application/x-shockwave-flash" data="http://www.youtube.com/v/cOFMggDP46Y&amp;hl=sv&amp;fs=1"><param value="true" name="allowFullScreen" /><param value="always" name="allowscriptaccess" /><param value="http://www.youtube.com/v/cOFMggDP46Y&amp;hl=sv&amp;fs=1" name="src" /><param value="true" name="allowfullscreen" /></object></p>
<p>&nbsp;</p>
<p>Now motion should inform that it has created pictures and a movie.</p>
<p>&nbsp;</p>
<h2>Configuration</h2>
<p>Configure Nagios or op5 Monitor to accept alerts sent from motion:</p>
<pre>
# service 'Camera Motion Detection'
define service{
&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
 host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lala
 service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Camera Motion Detection
 check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_dummy!0 &quot;No motion detected&quot;
 max_check_attempts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1
&nbsp;active_checks_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0
&nbsp;flap_detection_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n
 contact_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it-slav_msn,it-slav_mail,call_it-slav
&nbsp;stalking_options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n
 check_freshness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1
 freshness_threshold&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3600
}</pre>
<p>If nothing has been sent within an hour (3600 seconds), the state is set to OK by using freshness and check_dummy.</p>
<p>&nbsp;</p>
<p>Create /home/motion/scripts/check_camera_motion/send_nsca.cfg</p>
<pre>
encryption_method=0</pre>
<p>&nbsp;</p>
<p>Create /home/motion/scripts/check_camera_motion/passive_camera_warning</p>
<pre>
lala&nbsp;&nbsp;&nbsp; Camera Motion Detection&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; WARNING: Motion detected</pre>
<p>The separator must be TAB</p>
<p>&nbsp;</p>
<p>In /etc/motion/motion.conf, find the parameter on_event_start and change it to:</p>
<pre>
on_event_start&nbsp; cd /home/motion/scripts/check_camera&amp;&amp;send_nsca -H op5.mynet -c send_nsca.cfg &lt; passive_camera_warning</pre>
<p>And an alert will be sent to Nagios everytime motion detects a motion.</p>
<p>&nbsp;</p>
<p>Start motion with:</p>
<pre>
sudo motion
</pre>
<p>And do the dancing again, now you should have an Nagios alarm with status WARNING.</p>
<p>&nbsp;</p>
<h3>Hint</h3>
<p>A good idea could be to change the parameters <em>target_dir</em> and <em>snapshot_filename</em> to a directory where you can point apache websever, so you can use a webbrowser to browse your images and movies.</p>
<p>&nbsp;</p>
<h2>Links</h2>
<ul>
<li><a target="_blank" href="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome">Motion</a>, the software used to detect motions</li>
<li><a href="http://www.nagios.org">Nagios</a></li>
<li><a target="_blank" href="http://www.op5.com/op5/products/monitor">op5 Monitor</a>, a supported version of Nagios</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/04/13/using-a-webcamera-to-detect-motion-and-send-an-alarm-to-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MySql Performance Monitoring with Nagios or op5 Monitor</title>
		<link>http://www.it-slav.net/blogs/2009/04/06/mysql-performance-monitoring-with-nagios-or-op5-monitor/</link>
		<comments>http://www.it-slav.net/blogs/2009/04/06/mysql-performance-monitoring-with-nagios-or-op5-monitor/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 18:49:56 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Nagios]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=933</guid>
		<description><![CDATA[When using a database that are business critical it can be a good idea to monitor the internals. This article describe how-to monitor MySql with Nagios or op5 Monitor. In these case it runs a MythTV system but it could be almost anything.

Pre requirements
The pre requriements for this article is a working Nagios or op5 [...]]]></description>
			<content:encoded><![CDATA[<p>When using a database that are business critical it can be a good idea to monitor the internals. This article describe how-to monitor MySql with Nagios or op5 Monitor. In these case it runs a MythTV system but it could be almost anything.</p>
<p><br class="spacer_" /></p>
<h2>Pre requirements</h2>
<p>The pre requriements for this article is a working Nagios or op5 Installation and a working MySql database.</p>
<p><br class="spacer_" /></p>
<h2>Plugin</h2>
<p>The plugin used in this article is: <a href="http://www.consol.de/opensource/nagios/check-mysql-health" target="_blank">http://www.consol.de/opensource/nagios/check-mysql-health</a></p>
<p>Unfortunatly the webpage is in German only.</p>
<p><span id="more-933"></span><br class="spacer_" /></p>
<h2>Enable MySql to retrive information <br />
</h2>
<pre>mysql&gt; grant usage on *.* to 'nagios'@'op5' identified by 'XXXX-';</pre>
<p>op5 is the nagios hostname.</p>
<p><br class="spacer_" /></p>
<h2>Download the plugin, install and test<br />
</h2>
<p>Download the plugin from<a href="http://www.consol.de/fileadmin/opensource/Nagios/check_mysql_health-2.0.4.tar.gz" target="_blank"> http://www.consol.de/fileadmin/opensource/Nagios/check_mysql_health-2.0.4.tar.gz</a></p>
<p>I put it into /opt/plugins/custom/check_mysql_health at the Nagios server.</p>
<p>Test the command by running at the Nagios server:</p>
<pre>[root@op5 custom]# ./check_mysql_health -H mysqlhost --user nagios --password XXXX  --mode threads-connected
 OK - 5 client connection threads | threads_connected=5;10;20</pre>
<p>It works!!</p>
<p>To get a list of what the check_mysql_health plugin can monitor run:</p>
<pre>[root@op5 custom]# ./check_mysql_health --help</pre>
<p><br class="spacer_" /></p>
<h2>Configure Nagios or op5 Monitor</h2>
<p>I find the following parameters interesting to monitor:</p>
<ul>
<li>connection-time</li>
<li>keycache-hitrate</li>
<li>qcache-hitrate</li>
<li>tablecache-hitrate</li>
<li>threadcache-hitrate</li>
<li>tmp-disk-tables</li>
</ul>
<p><strong>checkcommands.cfg</strong></p>
<pre># command 'check_mysql_health'
 define command{
 command_name                   check_mysql_health
 command_line                   $USER1$/custom/check_mysql_health -H $HOSTADDRESS$ --user $ARG1$ -password $ARG2$ --mode $ARG3$
 }</pre>
<pre># command 'check_mysql_health_tresholds'
 define command{
 command_name                   check_mysql_health_tresholds
 command_line                   $USER1$/custom/check_mysql_health -H $HOSTADDRESS$ --user $ARG1$ -password $ARG2$ --mode $ARG3$ --warning $ARG4$ --critical $ARG5$
 }</pre>
<p><br class="spacer_" /></p>
<p>I created a servicegroup named mysql</p>
<p><strong>servicegroups.cfg</strong></p>
<pre># servicegroup 'mysql'
 define servicegroup{
 servicegroup_name              mysql
 alias                          MySQL
 }</pre>
<pre>I use the default thresholds in my servicedefinitions, but use check_mysql_health_thresholds instead if thresholds are required.<strong>
services.cfg</strong></pre>
<pre># service 'MySQL connection-time'
 define service{
 use                            default-service
 host_name                      lala
 service_description            MySQL connection-time
 check_command                  check_mysql_health!nagios!XXXX!connection-time
 servicegroups                  mysql
 contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
 }</pre>
<pre># service 'MySQL keycache-hitrate'
 define service{
 use                            default-service
 host_name                      lala
 service_description            MySQL keycache-hitrate
 check_command                  check_mysql_health!XXXX!keycache-hitrate
 servicegroups                  mysql
 contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
 }</pre>
<pre># service 'MySQL qcache-hitrate'
 define service{
 use                            default-service
 host_name                      lala
 service_description            MySQL qcache-hitrate
 check_command                  check_mysql_health!nagios!XXXX!qcache-hitrate
 servicegroups                  mysql
 contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
 }</pre>
<pre># service 'MySQL tablecache-hitrate'
 define service{
 use                            default-service
 host_name                      lala
 service_description            MySQL tablecache-hitrate
 check_command                  check_mysql_health!nagios!XXXX!tablecache-hitrate
 servicegroups                  mysql
 contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
 }</pre>
<pre># service 'MySQL threadcache-hitrate'
 define service{
 use                            default-service
 host_name                      lala
 service_description            MySQL threadcache-hitrate
 check_command                  check_mysql_health!nagios!XXXX!threadcache-hitrate
 servicegroups                  mysql
 contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
 }</pre>
<pre># service 'MySQL tmp-disk-tables'
 define service{
 use                            default-service
 host_name                      lala
 service_description            MySQL tmp-disk-tables
 check_command                  check_mysql_health!nagios!XXXX!tmp-disk-tables
 servicegroups                  mysql
 contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
 }</pre>
<h2>The result</h2>
<h2><img class="aligncenter size-full wp-image-941" title="mysql" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/04/mysql.png" alt="mysql" width="803" height="162" /></h2>
<p><br class="spacer_" /></p>
<h2>Conclusions and wrap-up</h2>
<p>The default values are in many cases not sufficent, I have no database that do not get WARNING or CRITICAL when the default thresholds are used. If that is because the thresholds are not realistic or if it my applications that are badly implemented I do not know. So the databases needs tuning and the thresholds must be changed to get rid of constant errormessages.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h2>Links</h2>
<ul>
<li><a href="http://www.op5.com/op5/products/monitor" target="_blank">op5 Monitor </a></li>
<li><a href="http://www.nagios.org" target="_blank">Nagios</a></li>
<li><a href="http://www.it-slav.net/blogs/?p=819" target="_blank">Tuning MySQL</a></li>
<li>The plugin used in this article <a href="http://www.consol.de/opensource/nagios/check-mysql-health" target="_blank">check_mysql_health</a></li>
</ul>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/04/06/mysql-performance-monitoring-with-nagios-or-op5-monitor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wordpress monitoring with Nagios or op5 Monitor using Webinject</title>
		<link>http://www.it-slav.net/blogs/2009/03/16/wordpress-monitoring-with-nagios-or-op5-monitor-using-webinject/</link>
		<comments>http://www.it-slav.net/blogs/2009/03/16/wordpress-monitoring-with-nagios-or-op5-monitor-using-webinject/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 19:18:39 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Nagios]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[webinject]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=862</guid>
		<description><![CDATA[There are several ways of monitor a wordpress blog by using Nagios or op5 Monitor.
Wordpress uses the following parts to work:

Webserver frontend
PHP scripts
MySQL database backend
At least one system to run it on

I found one article describing howto monitor the Webserver and the MySQL database and even that a certain webpage contain a certain phrase. But [...]]]></description>
			<content:encoded><![CDATA[<p>There are several ways of monitor a wordpress blog by using Nagios or op5 Monitor.</p>
<p>Wordpress uses the following parts to work:</p>
<ul>
<li>Webserver frontend</li>
<li>PHP scripts</li>
<li>MySQL database backend</li>
<li>At least one system to run it on</li>
</ul>
<p>I found one <a href="http://www.linickx.com/archives/271/how-to-monitor-wordpress-with-nagios" target="_blank">article</a> describing howto monitor the Webserver and the MySQL database and even that a certain webpage contain a certain phrase. But I would like to emulate a user that clicks on some pages and graph the performance.</p>
<p>The tool I like for in-depth web monitoring is <a href="http://www.webinject.org/" target="_blank">webinject</a>. It allows scripting a simulated web user with alot of features.</p>
<p>I recommend to read the excellent <a href="http://www.op5.com/support/documentation/how-to/38-monitoring-websites-with-webinject" target="_blank">how-to</a> written by op5 support team and of cource use webinjects <a href="http://www.webinject.org/manual.html" target="_blank">reference manual</a>.</p>
<p><span id="more-862"></span></p>
<p>The testcase I&#8217;ve created looks like this:</p>
<pre>&lt;testcases repeat="1"&gt;
&lt;case
    id="1"
    description1="Startsidan www.it-slav.net/blogs"
    method="get"
    url="http://www.it-slav.net/blogs/"
    verifypositive="An It-Slave in the digital saltmine"
/&gt;
&lt;case
    id="2"
    description1="Nagios or op5 Monitor plugin for 1-wire humidity measurement"
    method="get"
    url="http://www.it-slav.net/blogs/?p=802"
    verifypositive="1-wire humidity probe"
/&gt;
&lt;case
    id="3"
    description1="op5 Monitor or Nagios plugin for 1-wire temperature measurement"
    method="get"
    url="http://www.it-slav.net/blogs/?p=115"
    verifypositive="check_1-wiretemp"
/&gt;
&lt;case
    id="4"
    description1="Wp-Admin"
    method="get"
    url="http://www.it-slav.net/blogs/wp-admin"
    verifyresponsecode="301"
/&gt;
&lt;/testcases&gt;
</pre>
<p>And when run in Nagios mode:</p>
<pre>[root@op5 webinject]# ./webinject.pl -c config.xml testcases/wordpressblog.xml
WebInject OK - All tests passed successfully in 4.143 seconds |time=4.143;10;;0
</pre>
<p>In checkcommands.cfg:</p>
<pre># command 'check_webinject'
define command{
    command_name                   check_webinject
    command_line                   $USER1$/webinject/webinject.pl testcases/$ARG1$
    }

In services.cfg:</pre>
<pre># service 'Webinject Blog'
define service{
    use                            default-service
    host_name                      dull
    service_description            Webinject Blog
    check_command                  check_webinject!wordpressblog.xml
    contact_groups                 it-slav_sms,it-slav_mail,call_it-slav
    }
</pre>
<p><br class="spacer_" /></p>
<p>This is a nice pnp graph of my Webinject check:</p>
<p><img class="aligncenter size-full wp-image-896" title="dull_webinject_blog" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/03/dull_webinject_blog.png" alt="dull_webinject_blog" width="620" height="264" /></p>
<h2>Links:</h2>
<ul>
<li><a href="http://www.webinject.org/" target="_blank">Webinject</a></li>
<li>op5 Webinject <a href="http://www.op5.com/support/documentation/how-to/38-monitoring-websites-with-webinject" target="_blank">Howto</a></li>
<li><a href="http://www.nagios.org" target="_blank">Nagios</a></li>
<li><a href="http://www.op5.com/op5/products/monitor" target="_blank">op5 Monitor</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/03/16/wordpress-monitoring-with-nagios-or-op5-monitor-using-webinject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Tuning</title>
		<link>http://www.it-slav.net/blogs/2009/03/03/mysql-tuning/</link>
		<comments>http://www.it-slav.net/blogs/2009/03/03/mysql-tuning/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 20:03:12 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[tuning]]></category>
		<category><![CDATA[wordpress tuning]]></category>

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

My blog that uses MySQL as the database backend suddenly got real performance issues. The symptoms where:

All my Nagios test failed from time to time with NRPE timeout
The performence of my dynamic webpages was terrible slow.
The load on the system showed very heavy load, more then 10 for  1, 5, and 15 minutes. 
When using [...]]]></description>
			<content:encoded><![CDATA[<h2>Background<br />
</h2>
<p>My blog that uses MySQL as the database backend suddenly got real performance issues. The symptoms where:</p>
<ul>
<li>All my Nagios test failed from time to time with NRPE timeout</li>
<li>The performence of my dynamic webpages was terrible slow.</li>
<li>The load on the system showed very heavy load, more then 10 for  1, 5, and 15 minutes. </li>
<li>When using &#8220;top&#8221; the CPU load on both CPUs was almost 100% and it was almost only httpd processes.</li>
<li>According to Firefox plugin Firebug it took about 12 seconds to load the startpage with me as the only user.</li>
</ul>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2009/03/dull_load.png"><img class="alignnone size-full wp-image-838" title="dull_load" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/03/dull_load.png" alt="" width="647" height="267" /></a></p>
<address>A graph of the systemload<br />
 </address>
<p><br class="spacer_" /></p>
<p>This bad behavior did not show up when I pointed my webbrowser to static http pages so my conclusion was that I had som problem with MySQL.</p>
<p>The numbers of unique visitors are about 100 / day and 250 page views /day and the machine is:</p>
<ul>
<li>Dual PIII 1Ghz </li>
<li>4 Gb ram </li>
<li>SCA 10k RPM disk. </li>
</ul>
<p>So the hardware should be able to handle the load without any problems.</p>
<p><span id="more-819"></span></p>
<h2>Solution<br class="spacer_" /></h2>
<p>The natural way of finding a solution to this was to Google and see if anybody else has run into this problem. The easiest way seemed to be to turn of Wordpress plugins I use to collect statistics. I found a couple of webpages describing howto tune MySQL, but they where assuming deeper knowledge in MySQL then I have. I also tried the MySQL manuals and I came to the conclusion that I probably must spend quite much time to understand the behavior and how to tune MySQL.</p>
<p>In my opinion my MySQL implementation is quite simple and the need to tune it seemed overhelming, until I find a very neat script that helped my to set MySQL parameters:</p>
<p><a href="http://www.day32.com/MySQL/tuning-primer.sh" target="_blank">http://www.day32.com/MySQL/tuning-primer.sh</a></p>
<p><br class="spacer_" /></p>
<p>After tuning MySQL with the hints I got from the script the system started to behave totally differently:</p>
<ul>
<li>The load changed to load average to less then 0.15 </li>
<li>&#8220;top&#8221; shows more or less 100% idle</li>
<li>Load a blog webpage changed from 12 seconds down to 1,2 seconds</li>
<li>No more NRPE timeout problems from Nagios</li>
</ul>
<p><br class="spacer_" /></p>
<p>A run of the script looks like this AFTER tuning:</p>
<pre>[root@dull mysql-tuning]# ./tuning-primer.sh
mysqld is alive

	-- MYSQL PERFORMANCE TUNING PRIMER --
	     - By: Matthew Montgomery -

MySQL Version 5.0.45 i686

Uptime = 0 days 0 hrs 14 min 28 sec
Avg. qps = 6
Total Questions = 5926
Threads Connected = 9

Warning: Server has not been running for at least 48hrs.
It may not be safe to use these recommendations

To find out more information on how each of these
runtime variables effects performance visit:

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

Visit http://www.mysql.com/products/enterprise/advisors.html
for info about MySQL's Enterprise Monitoring and Advisory Service

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 3 sec.
You have 0 out of 5947 that take longer than 3 sec. to complete
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery
See http://dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery.html

WORKER THREADS
Current thread_cache_size = 10
Current threads_cached = 2
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 60
Current threads_connected = 9
Historic max_used_connections = 11
The number of used connections is 18% of the configured maximum.
Your max_connections variable seems to be fine.

MEMORY USAGE
Max Memory Ever Allocated : 103 M
Configured Max Per-thread Buffers : 161 M
Configured Max Global Buffers : 74 M
Configured Max Memory Limit : 235 M
Physical Memory : 3.39 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 4 M
Current key_buffer_size = 32 M
Key cache miss rate is 1 : 101
Key buffer fill ratio = 1.00 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 32 M
Current query_cache_used = 288 K
Current query_cache_limit = 32 M
Current Query cache Memory fill ratio = .87 %
Current query_cache_min_res_unit = 4 K
Your query_cache_size seems to be too high.
Perhaps you can use these resources elsewhere
MySQL won't cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 2 M
Current read_rnd_buffer_size = 256 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 132.00 K
You have had 0 queries where a join could not use an index properly
Your joins seem to be using indexes properly

OPEN FILES LIMIT
Current open_files_limit = 2470 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_cache value = 1200 tables
You have a total of 115 tables
You have 122 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current max_heap_table_size = 128 M
Current tmp_table_size = 128 M
Of 518 temp tables, 24% were created on disk
Created disk tmp tables ratio seems fine

TABLE SCANS
Current read_buffer_size = 128 K
Current table scan ratio = 78 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 3415
You may benefit from selective use of InnoDB.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/03/03/mysql-tuning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nagios or op5 Monitor plugin for 1-wire humidity measurement</title>
		<link>http://www.it-slav.net/blogs/2009/02/25/nagios-or-op5-monitor-plugin-for-1-wire-humidity-measurement/</link>
		<comments>http://www.it-slav.net/blogs/2009/02/25/nagios-or-op5-monitor-plugin-for-1-wire-humidity-measurement/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 18:46:35 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[1-wire]]></category>
		<category><![CDATA[Cool things]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[op5 Monitor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Nagios lugin humidity]]></category>

		<guid isPermaLink="false">http://www.it-slav.net/blogs/?p=802</guid>
		<description><![CDATA[
This article describe howto get a 1-wire humidity probe to work with Nagios or op5 Monitor.
In an earlier article I have described a 1-wire temperature plugin.


Pre requriments
To get it working you need:

1-wire humidity probe i.e. this, it is based on  DS2438 &#38; HIH-4000
A working owfs installation, instructions can be found here 
Nagios or op5 [...]]]></description>
			<content:encoded><![CDATA[<p><br class="spacer_" /></p>
<p>This article describe howto get a 1-wire humidity probe to work with Nagios or op5 Monitor.</p>
<p>In an earlier article I have described a <a href="http://www.it-slav.net/blogs/?p=115" target="_blank">1-wire temperature plugin</a>.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h2>Pre requriments</h2>
<p>To get it working you need:</p>
<ul>
<li>1-wire humidity probe i.e. <a href="https://shop.temperatur.nu/luftfuktighetsmatare-for-1wire-p-72.html?osCsid=cb8ce34ce11b4856fb5fc8134ba52cc4" target="_blank">this</a>, it is based on  DS2438 &amp; HIH-4000</li>
<li>A working <a href="http://www.owfs.org/" target="_blank">owfs</a> installation, instructions can be found <a href="http://www.it-slav.net/blogs/?p=67" target="_blank">here</a> </li>
<li><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></li>
</ul>
<p><span id="more-802"></span></p>
<p><br class="spacer_" /></p>
<h2>check_1-wirehumid</h2>
<p>The plugin is written in perl and version 1.0 can be downloaded <a href="http://www.it-slav.net/~peter/check_1-wirehumid/version-1.0/" target="_blank">here</a></p>
<pre>#!/usr/bin/perl -w
#
# Check humidity of 1Wire device
# Requires use of Fuse and owfs
#
#
# By Peter Andersson
# peter@it-slav.net
# http://www.it-slav.net/blogs/?p=802
# Licence GPLv2
# Version 1.0

use strict;
use Getopt::Std;
use OW;

my $owserver = "127.0.0.1:3001";
my(%ERRORS) = ( OK=&gt;0, WARNING=&gt;1, CRITICAL=&gt;2, UNKNOWN=&gt;3 );

my $humidity;
my $status=$ERRORS{OK};;
my $message;

my $debug_flag=0;

our($opt_c, $opt_w, $opt_W, $opt_C, $opt_h, $opt_o, $opt_i);

getopts("w:W:c:C:ho:i:");

sub printhelp () {
	print "Usage: check_1-wirehumid [-h] -c lowhumidcritical -w lowhumidwarning -W highhumidwarning -C highhumidcritical -i id [-o owserver:port]\n";
	print "-h Help, this text\n-c num Critical threshold for low humidity\n-w num Warning threshold for low humidity\n";
	print "-W num Warning threshold for high humidity\n-C num Critical threshold for high humidity\n";
	print "-o &lt;name|ip&gt;:port, Servername of 1-wire server and portnumber the owserver use, default 127.0.0.1:3001\n";
	print "-i 1-wire ID, i.e. 10.DEF05F01080015\n";
	print "\n\t\tby Peter Andersson\n\t\tpeter\@it-slav.net\n\t\thttp://www.it-slav.net/blogs/?p=802\n";
	exit $status;
}

#sanity check
if (!$opt_c||!$opt_w||!$opt_W||!$opt_C||$opt_h) {
	$status= $ERRORS{UNKNOWN};
	&amp;printhelp;
} elsif ($opt_c &gt; $opt_w) {
	print "Critical low threshold must be higher or equal to warning low threshold\n";
	$status= $ERRORS{UNKNOWN};
	&amp;printhelp;
} elsif ($opt_w &gt; $opt_W || $opt_c &gt; $opt_C) {
	print "Lower tresholds must be lower then higher thresholds\n";
	$status= $ERRORS{UNKNOWN};
	&amp;printhelp;
} elsif ($opt_C &lt; $opt_W) {
	print "Higher critical threshold must be higher or equal to higher warning threshold\n";
	$status= $ERRORS{UNKNOWN};
	&amp;printhelp;
}

if ($opt_o) {
	$owserver = $opt_o;
}

unless(OW::init($owserver)) {
	$status = $ERRORS{CRIT};
	$message = "OWServer not running at $owserver\n";
	exit $status;
}
$humidity = OW::get("$opt_i/humidity");
$humidity =~ s/^\s*(.*?)\s*$/$1/; #remove whitespaces
unless (($humidity =~ /^-?(?:\d+(?:\.\d*)?|\.\d+)$/) || ($humidity =~ /^[+-]?\d+$/)) #check that it is an integer or decimal returned
{
	$message="Did not got an integer or a decimal from humidity probe";
        $status=$ERRORS{CRITICAL};
}
$humidity = sprintf("%.0f", $humidity);

if ($debug_flag) {
	print "opt_c:$opt_c opt_w:$opt_w opt_W:$opt_W opt_C:$opt_C opt_h:$opt_h owserver:$owserver opt_i:$opt_i Humidity:$humidity\n";
}

if ($humidity &lt;= $opt_c) {
	$status=$ERRORS{CRITICAL};
	$message="CRITICAL";
} elsif ($humidity &gt; $opt_c &amp;&amp; $humidity &lt;= $opt_w) {
	$status=$ERRORS{WARNING};
	$message="WARNING";
} elsif ($humidity &gt;  $opt_w &amp;&amp; $humidity &lt;  $opt_W) {
	$status=$ERRORS{OK};
	$message="OK";
} elsif ($humidity &gt;= $opt_W &amp;&amp; $humidity &lt; $opt_C) {
	$status=$ERRORS{WARNING};
	$message="WARNING";
} elsif ($humidity &gt;= $opt_C) {
	$status=$ERRORS{CRITICAL};
	$message="CRITICAL";
} else { #This should never happend
	$status=$ERRORS{UNKNOWN};
	$message="UNKNOW";
}

print "$message: $humidity \%\|humidity=$humidity\%\;$opt_c;$opt_w;$opt_W;$opt_C\n";
exit $status;
</pre>
<p><br class="spacer_" /></p>
<p>Test the plugin by run:</p>
<pre>[root@op5 custom]# ./check_1-wirehumid -c 10 -w 20 -W 90 -C 95 -i 26.D7EABC000000
OK: 31 %|humidity=31%;10;20;90;95
</pre>
<p>So I have 31 % humidity.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h2>Nagios config files</h2>
<p>In checkcommands.cfg, define check_1-wirehumid</p>
<pre># command 'check_1-wirehumid'
define command{
    command_name                   check_1-wirehumid
    command_line                   $USER1$/custom/check_1-wirehumid -c $ARG1$ -w $ARG2$ -W$ARG3$ -C$ARG4$ -i $ARG5$ -o $ARG6$
    }
</pre>
<p>In serviced.cfg, define the check. I have a service group called Environemnt where all my Environments probes are.</p>
<pre># service 'Washroom Humidity'
define service{
    use                            default-service
    host_name                      monitor
    service_description            Washroom Humidity
    check_command                  check_1-wirehumid!10!20!80!90!26.D7EABC000000!127.0.0.1:3001
    servicegroups                  Environment
    contact_groups                 it-slav_msn,it-slav_mail,call_it-slav
    }
</pre>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h2>Screenshots</h2>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2009/02/environmentservicegroup.png"><img class="alignnone size-full wp-image-808" title="environmentservicegroup" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/02/environmentservicegroup.png" alt="" width="777" height="147" /></a></p>
<p>This is a screen shoot from op5 Monitor showing my Servicegroup Environment.</p>
<p><br class="spacer_" /></p>
<p><a href="http://www.it-slav.net/blogs/wp-content/uploads/2009/02/humidity.png"><img class="alignnone size-full wp-image-809" title="humidity" src="http://www.it-slav.net/blogs/wp-content/uploads/2009/02/humidity.png" alt="" width="583" height="531" /></a></p>
<p>If you have op5 Monitor or PNP for Nagios, graphs like this will automatically be created. Note that I had a shower 6.20 and the humidity went from approx 25% to 95% in a couple of minutes.<br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-slav.net/blogs/2009/02/25/nagios-or-op5-monitor-plugin-for-1-wire-humidity-measurement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
