3ware_temp plugin for munin
After having my Nagios installation mostly set-up (I still want it to sms though) I figured I also wanted some performance graphs. Performance graphs are useful to predict problems, you can see the performance of your server (d0h), figure out strange problems and the most important thing: they look cool to people who don't understand them. :-)
At first I figured because I use Nagios, I should also use Nagios to provide me with the performance data. Nagios does all the checks and I could use the output of the checks to feed it to rrd and let it make the graphs.
After searching the internet and looking at NagiosExchange I decided to use n2rrd. This tool uses the performance output from the nagios plugins and makes the graphs from there.
I have to say, it really is a great tool. I would recommend looking at it. But still, after some testing, I didn't use it. The problem I had was that most of the plugins I'm using do not give the right performance output or it was pretty much unclear what the output meant. This was a bad thing because now I had to modify the plugins which is something I definitely do not want because I'm using prepackaged plugins and it takes a lot of work.
So I got munin up and running. Munin is packaged for debian and comes with a *lot* of ready to use plugins. After configuring everything I needed I looked at the hdd_temp plugin. The hdd_temp plugin takes some configuration on 3ware controllers. You have to specify all the drives you want monitored and provide some mapping between drive names and 3ware controller possitions. In my case this is totally useless. I want to monitor all drives in my server. Do configuring every single drive is just too much work.
So, I wrote my own munin plugin which uses the tw_cli utility to detect the available drives and smartctl to query the drive temperatures accordingly. The plugin is available here. And here's some example output:

(This is actually a nice example of why you should do these kind of graphs. Above you can see the difference when the doors of the 19" racks are open and when they are closed. There seems to be a bit of an airflow problem. Nothing problematic though.)
check_3ware.sh update
I actually forgot to post this. The check_3ware.sh script has been updated. Right now it will also monitor any BBU it detects. Currently it will not tell you what exactly is wrong with your BBU, but it will return 'critical' when something is wrong. It's more than nothing huh?
Well, you can get it here.
Unix suprise
Note to self: If a file has read only rights, and you are the owner, you can still delete it. It cought me by suprise...
More 3ware and Nagios
I've extended the check_3ware.sh script a bit more.
Now the script returns OK if all your units are okay, WARNING when a unit is rebuilding, CRITICAL when an array has failed and UNKNOWN when tw_cli returns something I didn't catch. I don't know all states tw_cli can return so right now the solution is to return unknown. I'll probably extend it in the future.
You can still look at the script here.
Check 3ware controllers using Nagios
When implementing Nagios to monitor my servers I also wanted to check the RAID arrays. Our servers have 3ware controllers so I searched for a script that would do this for me. I found some perl scripts but somehow they just didn't do the trick.
Luckily 3ware provides a (closed source) admin tool called tw_cli. So, I decided to write my own check_3ware.sh script using the tw_cli tool. It's a very dumb script which outputs CRITICAL whenever one of your arrays does not return OK as state. You can get it here
Feisty Fawn
My girlfriend is running Ubuntu on her computer. Because Ubuntu 7.04 Feisty Fawn was released yesterday I decided to upgrade to it right away.
The upgrade itself is actualy quite easy. You just make sure that your current installation (6.10) is up-to-date and after that you just tell the 'update-manager' to upgrade to the latest release. Very, very easy. The updater manages (almost) everything for you. I got 3 or 4 questions about config files which would be modified during the upgrade, but that was about it. After the upgrade I just had to reboot into the new kernel and everything seems to work fine. All in all, great work by the Ubuntu developers.
There was just one thing that annoyed me bigtime. During the upgrade you get this nice `Time Remaining` counter. I don't mind those. But, when you implement something like that you must be damn fucking sure it's working correctly. I hate nothing more than seeing `28 minutes remaining`for 15 minutes or so. And `1 minute remaining` for 10 minutes. It just reminds of those old microsoft installers in which 1-99% took 5 minutes and the last percent just took 30 minutes to complete. So please, remove it, or make it work.
My distro of choice still is Debian GNU/Linux. But for desktop usage with no hassle and not so experienced users, Ubuntu is the way to go.
Kernel Traffic
27 november 2005 was the last issue of Kernel Traffic. Today it's 13 march 2007 and I still seem to miss it. Kernel Traffic always was a nice read-up to what was going on with Linux kernel development. I am still hoping that Zack Brown will someday start releasing new Kernel Traffic's because I've still found no substitute forĀ it.
Playing around
I noticed syscp actualy made an 1.2.16 release which includes my translation and fixes the security bug. Upgrading was as easy as replacing the script :-)
Today I've been playing with Beryl. It does all kinds of neat 3d effects. I have been using Compiz for a while (probably an old version) but this version of Beryl realy rocks. No screenshots yet, but if I have the time I will make some.
While looking at the site I noticed there were Ubuntu packages but no Debian packages... and I'm a Debian user... The ubuntu packages are available at ubuntu.beryl-project.org. Pure because I was in an experimental mood I tried debian.beryl-project.org and to my suprise it worked.
I found out how to use it myself... but while writing this post I found out that I could have made it myself a lot easier because there are doc's on how to do it at osrevolution.wordpress.com/beryl-debian/. So I'm not gonna tell it here :-)
Wise lesson learned: Don't forget to google...
Free Linux Driver Development
Yesterday the following was posted on the lkml. Just to spread it around, it's here too :-)
From: Greg KH [email blocked] To: linux-kernel Subject: Free Linux Driver Development! Date: Mon, 29 Jan 2007 17:29:04 -0800 Free Linux Driver Development! Yes, that's right, the Linux kernel community is offering all companies free Linux driver development. No longer do you have to suffer through all of the different examples in the Linux Device Driver Kit, or pick through the thousands of example drivers in the Linux kernel source tree trying to determine which one is the closest to what you need to do. All that is needed is some kind of specification that describes how your device works, or the email address of an engineer that is willing to answer questions every once in a while. A few sample devices might be good to have so that debugging doesn't have to be done by email, but if necessary, that can be done. In return, you will receive a complete and working Linux driver that is added to the main Linux kernel source tree. The driver will be written by some of the members of the Linux kernel developer community (over 1500 strong and growing). This driver will then be automatically included in all Linux distributions, including the "enterprise" ones. It will be automatically kept up to date and working through all Linux kernel API changes. This driver will work with all[1] of the different CPU types supported by Linux, the largest number of CPU types supported by any operating system ever before in the history of computing. As for support, the driver will be supported through email by the original developers, when they can help out, and by the "enterprise" Linux distributors as part of their service agreements with their customers. If your company is worried about NDA issues surrounding your device's specifications, we have arranged a program with OSDL/TLF's Tech Board to provide the legal framework where a company can interact with a member of the kernel community in order to properly assure that all needed NDA requirements are fulfilled. Now your developers will have more time to work on drivers for all of the other operating systems out there, and you can add "supported on Linux" to your product's marketing material. This offer is in affect for all different types of devices, from USB toys to PCI video devices to high-speed networking cards. If you build it, we can get Linux drivers working for it. For any questions about this program, please feel free to respond to this email, or contact me directly at greg@kroah.com. I will also be available at FreedomHEC 2007 <http://freedomhec.pbwiki.com/> held adjacent to WinHEC, if anyone wants to bring devices and work face-to-face. thanks, greg k-h [1] for the CPUs that support the bus types that your device works on.
Wireless Freedom
Since I've discovered OpenWRT at What The Hack, I've been running it on my Asus WL-500g Deluxe. The first versions had some quirks but the latest version runs like a charm. While browsing I learned about the X-WRT project. This project is developing a new web interface for OpenWRT. They provide their own images which already have the Webif2 installed already. Today I tried one of the images and it just plain ROCKS. This just shows the power of opensource. Just look at the screenshots and I encourage everyone to try it themselves.


