<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://www.claudiokuenzler.com/rss.xml" rel="self" type="application/rss+xml" />
<title>ck - a tech blog for the daily sysadmin</title>
<link>http://www.claudiokuenzler.com</link>
<description>Online portfolio of Claudio Kuenzler</description>
<language>en-en</language>
<image>
<url>http://www.claudiokuenzler.com/graph/content/rss.png</url>
<title>ck - a tech blog for the daily sysadmin</title>
<link>http://www.claudiokuenzler.com</link>
</image>
	<item>
	<title>SmartOS: Why PHP-FPM writes tons of /dev/poll warnings into log</title>
	<link>http://www.claudiokuenzler.com/blog/358/smartos-php-fpm-dev-poll-warning-ioctl-mass-log</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/358/smartos-php-fpm-dev-poll-warning-ioctl-mass-log</guid>
	<description>Over the past few hours I've been trying to find the cause for the following log entries on a SmartOS running PHP-FPM:

tail /var/log/php-fpm.log
  [19-Jun-2013 17:12:07] WARNING:amp;nbsp; /dev/poll: ioctl() returns 22
  [19-Jun-2013 17:12:07] WARNING:amp;nbsp; /dev/poll: ioctl() returns 22
  [19-Jun-2013 17:12:07] WARNING:amp;nbsp; /dev/poll: ioctl() returns 22
  [19-Jun-2013 17:12:07] WARNING:amp;nbsp; /dev/poll: ioctl() returns 22
  [19-Jun-2013 17:12:07] WARNING:amp;nbsp; /dev/poll: ioctl() returns 22
  [19-Jun-2013 17:12:07] WARNING:amp;nbsp; /dev/poll: ioctl() returns 22
  [...]

SmartOS version: 5.11 joyent_20120614T184600Z i86pc i386 i86pc Solaris
  PHP-FPM version: php53-fpm-5.3.10

These entries were written up to 52'000 times per second (!!!!!).
  

At the begin I thought a mal-programmed website was the cause so I started to disable one fpm config after another. And suddenly the entries were gone! I thought I found the responsible web-host and re-activated all php-fpm configs again. As soon as I did that, the log entries appeared again. Over quite some time I tried to manually find which webs (obviously there must be several bad customer hostings... at least that's what I thought) are causing the issue.

...Until a strange idea hit me. What if this depends on the number of php-fpm configs in /opt/local/etc/fpm.d/? I didn't get any errors when I moved most of them to a temporary folder, so that would explain it...

So I re-activated all configs...</description>
	<pubDate>Wed, 19 Jun 2013 17:29:11 +0200</pubDate>
	</item>
	
	<item>
	<title>A dying SDCard (EMMC) causes strange effects on Android</title>
	<link>http://www.claudiokuenzler.com/blog/357/android-galaxy-s2-i9100-corrupt-emmc-sdcard</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/357/android-galaxy-s2-i9100-corrupt-emmc-sdcard</guid>
	<description>My daily schedule for a work-day looks somewhat like this: Get up, catch the train and read the paper, work, catch the train and watch an episode (currently Stargate SG1), get home, work some more, sleep. (In case you haven't noticed I often use sarcasm - my life isn't actually THAT boring).
  

Since Monday my schedule is disturbed - I cannot watch Stargate anymore! It all started Monday evening when I launched the quot;File Explorerquot; app as always and wanted to launch the video with quot;MX Playerquot;. Instead of instant video play, MX Player was just loading.. and loading.. and loading the video. During that time the phone (Samsung Galaxy S2 I9100) got very hot and I had to force a power off.

My first guess was that I didn't correctly finish the transfer of the video file to the phone but when I tried to play another episode, which I knew worked before, the same happened. So I took a look at the Android internal logs (using the app quot;Get Logsquot;) and found some weirdamp;nbsp; entries:

06-17 17:52:08.745 D/VoldCmdListener( 1868): volume mount /mnt/emmc
  06-17 17:52:08.745 D/DirectVolume( 1868): Checking for bad partition major number
  06-17 17:52:08.745 I/Voldamp;nbsp;amp;nbsp;amp;nbsp; ( 1868): /dev/block/vold/179:25 being considered for volume sdcard
  06-17 17:52:08.745 D/Voldamp;nbsp;amp;nbsp;amp;nbsp; ( 1868): Volume sdcard state changing 1 (Idle-Unmounted) -amp;gt; 3 (Checking)
  06-17 17:52:08.750 V/WiredAccessoryObserver( 1992): init()
  06...</description>
	<pubDate>Wed, 19 Jun 2013 15:32:31 +0200</pubDate>
	</item>
	
	<item>
	<title>MySQL (Percona) replication stopped due to corrupt innodb ibd file</title>
	<link>http://www.claudiokuenzler.com/blog/356/mysql-percona-replication-stopped-corrupt-ibd-file</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/356/mysql-percona-replication-stopped-corrupt-ibd-file</guid>
	<description>I had to solve a strange MySQL replication issue today. All of a sudden, theamp;nbsp;Slave_SQL_Running changed to No and showed the following error message:

mysqlamp;gt; show slave status\G;
  *************************** 1. row ***************************
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Slave_IO_State: Waiting for master to send event
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Master_Host: XX.XX.XX.XX
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Master_User: repl
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Master_Port: 3306
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Connect_Retry: 60
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Master_Log_File: bin.000481
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Read_Master_Log_Pos: 344928978
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;n...</description>
	<pubDate>Tue, 18 Jun 2013 16:19:10 +0200</pubDate>
	</item>
	
	<item>
	<title>Solaris: Add a new hard drive to existing zfs pool (with hpacucli)</title>
	<link>http://www.claudiokuenzler.com/blog/355/solaris-add-new-hard-drives-disks-to-existing-zpool-hpacucli</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/355/solaris-add-new-hard-drives-disks-to-existing-zpool-hpacucli</guid>
	<description>In a previous article I explained how a defect hard drive can be replaced in a HP Proliant Server (using a HP Raid Controller) and running on Solaris.

This time I had to add new disks to an existing zfs pool (zpool). There are a lot of howtos on the Internet (a good one is http://docs.oracle.com/cd/E19253-01/819-5461/gazgw/index.html), however almost all howtos don't mention the hpacucli command which must be used when the HP Raid Controller presents the drives to the Operating System.

Once the new disks are physically installed, their presence can be verified in hpacucli:

/opt/HPQacucli/sbin/hpacucli
  HP Array Configuration Utility CLI 8.0-14.0
  Detecting Controllers...Done.
  Type quot;helpquot; for a list of supported commands.
  Type quot;exitquot; to close the console.
  
  =amp;gt; ctrl slot=1 show config
  
  Smart Array P400 in Slot 1amp;nbsp;amp;nbsp;amp;nbsp; (sn: PA2240J9STL1WU)
  
  amp;nbsp;amp;nbsp; array A (SAS, Unused Space: 0 MB)
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; logicaldrive 1 (68.3 GB, RAID 0, OK)
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SAS, 72 GB, OK)
  
  amp;nbsp;amp;nbsp; array B (SAS, Unused Space: 0 MB)
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; logicaldrive 2 (68.3 GB, RAID 0, OK)
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SAS, 72 GB, OK)
  
  amp;nbsp;amp;nbsp; array C (SAS, Unused Space: 0 MB)
  amp;nbs...</description>
	<pubDate>Mon, 17 Jun 2013 14:51:40 +0200</pubDate>
	</item>
	
	<item>
	<title>zypper vs. apt and rpm vs. dpkg command comparison</title>
	<link>http://www.claudiokuenzler.com/blog/354/zypper-apt-rpm-dpkg-command-comparison-suse-debian</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/354/zypper-apt-rpm-dpkg-command-comparison-suse-debian</guid>
	<description>Over the past few years I've settled with two major Linux distros: openSuSE (and SLES) and Debian. While the package management in Debian was using apt for a long time, SuSE's zypper alternative is relatively new but nonetheless very helpful.amp;nbsp;

The following table shows a comparison of the most important and most used commands for package/software management in SuSE and Debian systems.

zypper vs. apt command comparison 
  


  
    
      amp;nbsp;
      amp;nbsp;zypper
      amp;nbsp;apt
    
    
      amp;nbsp;Search package
      
      amp;nbsp;zypper se  amp;lt; pkgname amp;gt;
      
      amp;nbsp;apt-cache search  
      amp;lt; pkgname amp;gt;
    
    
      amp;nbsp;Install package
      
      amp;nbsp;zypper in  
      amp;lt; pkgname amp;gt;
      amp;nbsp;apt-get install amp;lt; pkgname amp;gt;
    
    
      amp;nbsp;Update package list
      
      amp;nbsp;zypper refresh
      
      amp;nbsp;apt-get update
      
    
    
      amp;nbsp;Update all packages
      
      amp;nbsp;zypper update
      
      amp;nbsp;apt-get upgrade
      
    
    
      amp;nbsp;Upgrade all packages to new major version*
      
      amp;nbsp;N/A
      
      amp;nbsp;apt-get dist-upgrade
      
    
    
      amp;nbsp;Update a single package
      
      amp;nbsp;zypper update amp;lt; pkgname amp;gt;
      amp;nbsp;apt-get upgrade amp;lt; pkgname amp;gt;
    
    
      amp;nbsp;Uninstall/remove a packa...</description>
	<pubDate>Wed, 12 Jun 2013 15:07:54 +0200</pubDate>
	</item>
	
	<item>
	<title>Seagate ST3000DM001-9YN166: A catastrophic disk</title>
	<link>http://www.claudiokuenzler.com/blog/353/seagate-ST3000DM001-9YN166-failure-error-defect-problems</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/353/seagate-ST3000DM001-9YN166-failure-error-defect-problems</guid>
	<description>In the past few months I've had a lot of failing hard drives to compensate... While I was writing a summary of all disk replace actions, I got aware that it's always the same model failing: ST3000DM001-9YN166.

November 3rd, 2012 - runtime 4391 hours (182 days + 23 hours):

=== START OF INFORMATION SECTION ===
  Device Model:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; ST3000DM001-9YN166
  Serial Number:amp;nbsp;amp;nbsp;amp;nbsp; XXXXXXXX
  Firmware Version: CC4C
  User Capacity:amp;nbsp;amp;nbsp;amp;nbsp; 3,000,592,982,016 bytes
  Device is:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Not in smartctl database [for details use: -P showall]
  ATA Version is:amp;nbsp;amp;nbsp; 8
  ATA Standard is:amp;nbsp; ATA-8-ACS revision 4
  Local Time is:amp;nbsp;amp;nbsp;amp;nbsp; Sat Novamp;nbsp; 3 11:51:24 2012 CET
  

February 28th, 2013 - runtime 2728 hours (113 days + 16 hours):

=== START OF INFORMATION SECTION ===
  Device Model:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; ST3000DM001-9YN166
  Serial Number:amp;nbsp;amp;nbsp;amp;nbsp; XXXXXXXX
  Firmware Version: CC4B
  User Capacity:amp;nbsp;amp;nbsp;amp;nbsp; 3,000,592,982,016 bytes [3.00 TB]
  Sector Sizes:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; 512 bytes logical, 4096 bytes physical
  Device is:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Not in smartctl database [for details use: -P showall]
  ATA Version is:amp;nbsp;amp;nbsp; 8
  ATA Standard is:amp;nbsp; ATA-8-ACS revision 4
  Lo...</description>
	<pubDate>Tue, 11 Jun 2013 16:16:15 +0200</pubDate>
	</item>
	
	<item>
	<title>Treasure hunt</title>
	<link>http://www.claudiokuenzler.com/blog/352/old-suse-linux-microsoft-version-packages-boxes</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/352/old-suse-linux-microsoft-version-packages-boxes</guid>
	<description>One could be surprised whenamp;nbsp; opening a closet in a data center ...

amp;nbsp;

Yeah, these are some really old packages back from the days when you actually bought software in boxes...
...</description>
	<pubDate>Mon, 03 Jun 2013 11:46:44 +0200</pubDate>
	</item>
	
	<item>
	<title>How to re-format a USB drive to FAT32 in Linux</title>
	<link>http://www.claudiokuenzler.com/blog/351/re-format-usb-drive-disk-to-fat32-in-linux</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/351/re-format-usb-drive-disk-to-fat32-in-linux</guid>
	<description>Many USB drives come by default pre-formatted in either FAT32 (which can be read by, to my knowledge, all operating systems) or NTFS, which is of course the Windows file system.amp;nbsp;

But what if the drive is formatted in another file system type, let's say ext3? You may plug it to a Windows machine and the drive will not be recognized - therefore you cannot re-format the drive from within the Windows machine to re-use it.

 In this case you need to format the drive on your Linux machine with the following commands.

First install the package dosfstools, which contains the program to format a file system in msdos (fat):

apt-get install dosfstools

Then delete existing partitions on the drive (/dev/sdd in my case):

fdisk /dev/sdd
  
  Command (m for help): p
  Disk /dev/sdd: 2004 MB, 2004877312 bytes
  Disk identifier: 0x00090d91
  amp;nbsp;amp;nbsp; Device Bootamp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Startamp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Endamp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Blocksamp;nbsp;amp;nbsp; Idamp;nbsp; System
  /dev/sdd1amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; 1amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; 590amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; 1955840amp;nbsp;amp;nbsp; 83amp;nbsp; Linux
  
  Command (m for help): d
  Selected partition 1
  
  Command (m for help): p
  D...</description>
	<pubDate>Sat, 01 Jun 2013 17:36:59 +0200</pubDate>
	</item>
	
	<item>
	<title>dd copy: How long does it take for a 3TB SATA Disk?</title>
	<link>http://www.claudiokuenzler.com/blog/350/how-long-copy-3tb-hard-drive-disk-with-dd</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/350/how-long-copy-3tb-hard-drive-disk-with-dd</guid>
	<description>If someone wondered, how long it takes to copy a 3TB SATA drive to another identical SATA drive with 'dd', here's your fact:

dd if=/dev/sdb3 of=/dev/sda3 conv=noerror,sync
  5855286143+16 records in
  5855286159+0 records out
  2997906513408 bytes (3.0 TB) copied, 106038 s, 28.3 MB/s

So it took 106038 seconds = 1767.3 minutes = 29.455 hours.

15 sectors of the input drive (/dev/sdb3) were defect, that's why I used quot;conv=noerror,syncquot; which allows to ignore the read errors.
  
...</description>
	<pubDate>Sat, 01 Jun 2013 15:30:22 +0200</pubDate>
	</item>
	
	<item>
	<title>ILO update 1.16 to 1.55 fails - use 1.28 as intermediate version</title>
	<link>http://www.claudiokuenzler.com/blog/349/hp-ilo3-update-fails-was-not-successful-ready-for-next</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/349/hp-ilo3-update-fails-was-not-successful-ready-for-next</guid>
	<description>Just tried to update ILO3 on a HP DL 380 G7 from version 1.16 (Dec 17 2010) to one of the latest version 1.55 (Feb 19 2013) but got the following error message in the browser:

The last firmware update attempt was not successful. Ready for the next update.

A quick look in the readme file of the ILO3 1.55 package reveals:

PART NUMBER:amp;nbsp; 592410-013
  FILE NAME:amp;nbsp;amp;nbsp;amp;nbsp; ilo3_155.bin
  TITLE:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; Integrated Lights-Out 3 Firmware 1.55
  [...]
  PREREQUISITE:amp;nbsp; iLO 3 v1.20
  [...]
  FIRMWARE DEPENDENCY: iLO 3 should be upgraded to v1.20 before upgrading to this version.

But it also works with version 1.28 as intermediate version.
  
...</description>
	<pubDate>Wed, 22 May 2013 08:58:56 +0200</pubDate>
	</item>
	
	<item>
	<title>check_zpools with performance data</title>
	<link>http://www.claudiokuenzler.com/blog/348/check_zpools-nagios-plugin-performance-data</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/348/check_zpools-nagios-plugin-performance-data</guid>
	<description>Just a quick update to inform that performance data has been activated in check_zpools. See https://github.com/Napsty/nagios-plugins/tree/master/check_zpools.

Due to parsing limitations on different operating systems, the only performance data available are the percentage of a single or all datastores.
  
...</description>
	<pubDate>Tue, 21 May 2013 11:25:21 +0200</pubDate>
	</item>
	
	<item>
	<title>Newest Facebook app update (3.2) on Android crashes system</title>
	<link>http://www.claudiokuenzler.com/blog/347/newest-facebook-update-2.3-crashes-android-system-and-apps</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/347/newest-facebook-update-2.3-crashes-android-system-and-apps</guid>
	<description>Google Play notified me yesterday about a new update of the Facebook app on my Android phone (CyanogenMod 9/Android 4.0.4 running on Samsung Galaxy S2 GT-I9100). Because I've had some bad experiences in the past with some app-updates (especially Facebook), I read the comments. Quoting some:

*Updated* Even more diminished quality. After the last update, the app launches with a greyish black screen, then closes. Tried powering down then back up after update, same result. Can we please get this right? You were so close with the last build. Droid Razr Maxx

amp;nbsp;This app is good but takes up alot of memory on my android phone I can only have this app and 1 more. It makes my phone run slow. Can you please fi this. Thanks.

I would be a lot happier if I was able to open the app more than once or twice. I am constantly getting a error saying there was an error in Facebook.katana the app will now forceclose, or some other type of error that gives me the option to forceclose, wait, or report. No matter which option I choose it ALWAYS forcecloses! I have not been happy with this app since it has been installed on every phone I have had, there has always been some sort of issue this one needs fixed ASAP!

amp;nbsp;Closes out of pages and profiles .. etc ..... Fix please. Won't show comments when I post them or show the likes I get on statuses and it won't refresh worth crap !

But because on most comments the Android version or the phone model was not mentioned, I decided...</description>
	<pubDate>Sat, 11 May 2013 16:57:42 +0200</pubDate>
	</item>
	
	<item>
	<title>Presenting check_zpools - a Nagios plugin to monitor zfs pools</title>
	<link>http://www.claudiokuenzler.com/blog/346/check_zpools-nagios-plugin-monitor-zfs-pools-solaris-smartos-freebsd</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/346/check_zpools-nagios-plugin-monitor-zfs-pools-solaris-smartos-freebsd</guid>
	<description>This week I compared several Nagios plugins to monitor zfs pools (see article Monitor zfs pools - which Nagios plugin should be used?).amp;nbsp;After having compared seven plugins found on exchange.nagios.org,amp;nbsp; I finally decided to continue with plugin number 3 (check_zpools), a bash/shell plugin.

Although the plugin already quot;did its jobquot;, I had to make some changes anyway to guarantee compatibility to both Solaris and FreeBSD systems. Besides that I completely revamped the plugin; I added help, options and thresholds for pool usage and changed the quot;designquot; of the plugin.

The modified plugin can be found on my github account:
  http://raw.github.com/Napsty/nagios-plugins/master/check_zpools/check_zpools.sh

I successfully tested it on the following operating systems (no modifications or additional installations are necessary):
  - Solaris 10
  - Open Solaris 11
  - SmartOS
  - FreeBSD 8.3

I asked the author of the last version to merge my modifications, so I think the my adapted version will soon be available on Nagios Exchange.
  
...</description>
	<pubDate>Thu, 09 May 2013 12:05:58 +0200</pubDate>
	</item>
	
	<item>
	<title>Monitor zfs pools - which Nagios plugin should be used?</title>
	<link>http://www.claudiokuenzler.com/blog/345/monitor-zfs-disk-pools-nagios-plugin-comparison</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/345/monitor-zfs-disk-pools-nagios-plugin-comparison</guid>
	<description>At my work there are several machines running with zfs file systems. Some of them also use zfs pools, which can define a raid out of a system without raid controller (a bit like mdraid simply explained - please don't hit me Solaris guys!). To be able to monitor the status of such zfs pools, there are many Nagios plugins around. Alone on exchange.nagios.orgamp;nbsp; I found seven plugins which check zfs file systems and/or pools. But which one should I take, given that we run different operating systems with zfs?

To answer this question I compared all seven plugins if they work, how they're working and what they can do on the following operating systems on physical machines:
  - Solaris 10
  - OpenSolaris 11
  - SmartOS 2012Q2
  - FreeBSD 8.3

The following plugins were compared:


  Check ZFS file systems and data pools (check_zfs.pl)
  Author: Michael Simoni
  http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/Check-ZFS-file-systems-and-data-pools/details
  
  
  check_zfs
  Author: Nathan Butcher
  http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/check_zfs/details
  
  
  Check Solaris ZFS Pools (check_zpools)
  Author: vitaliy@gmail.com
  http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/Check-Solaris-ZFS-Pools/details
  
  
  Solaris Zpools checker (check_zpools)
  Author: Aldo Fabi
  http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/Solaris-Zpools-checker/deta...</description>
	<pubDate>Tue, 07 May 2013 16:04:04 +0200</pubDate>
	</item>
	
	<item>
	<title>PHP 5.4 fails to compile with g++ (use gcc instead)</title>
	<link>http://www.claudiokuenzler.com/blog/344/php-5.4-compile-fail-because-of-g++-compiler</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/344/php-5.4-compile-fail-because-of-g++-compiler</guid>
	<description>Today seems to be the perfect day to solve PHP compiling issues... (see previous articles, also from today).

 So I tried to compile PHP 5.4.14 from source. configure ran through without error (after having solved some issues before, see articles quot;PHP 5.4 compilation error: build with IMAP works... noquot; and quot;Another confusing PHP 5.4 compilation error: This time mcrypt_module_openquot;). But then make always stopped at the same step with an error:

/bin/sh /root/downloads/php-5.4.14/libtool --silent --preserve-dup-deps --mode=compile g++ -I/usr/includeamp;nbsp; -Iext/intl/ -I/root/downloads/php-5.4.14/ext/intl/ -DPHP_ATOM_INC -I/root/downloads/php-5.4.14/include -I/root/downloads/php-5.4.14/main -I/root/downloads/php-5.4.14 -I/root/downloads/php-5.4.14/ext/date/lib -I/root/downloads/php-5.4.14/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/imap -I/root/downloads/php-5.4.14/ext/mbstring/oniguruma -I/root/downloads/php-5.4.14/ext/mbstring/libmbfl -I/root/downloads/php-5.4.14/ext/mbstring/libmbfl/mbfl -I/root/downloads/php-5.4.14/ext/sqlite3/libsqlite -I/root/downloads/php-5.4.14/TSRM -I/root/downloads/php-5.4.14/Zendamp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; -c /root/downloads/php-5.4.14/ext/intl/msgformat/msgformat_helpers.cpp -o ext/intl/msgformat/msgformat_helpers.lo
  env: g++: No such file or directory
  make: *** [ext/intl/msgformat/msgformat_helpers.lo] Error 1

Of course I was googling for a solution, but nothing came...</description>
	<pubDate>Sat, 04 May 2013 14:21:46 +0200</pubDate>
	</item>
	
	<item>
	<title>Another confusing PHP 5.4 compilation error: This time mcrypt_module_open</title>
	<link>http://www.claudiokuenzler.com/blog/343/another-php-5.4-compilation-error-mcrypt_module_open</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/343/another-php-5.4-compilation-error-mcrypt_module_open</guid>
	<description>As just posted a couple of minutes ago (PHP 5.4 compilation error: build with IMAP works... no), the confusing compilation errors continue. This time during the mcrypt checks:

checking for stdarg.h... (cached) yes
  checking for mcrypt support... yes
  checking for libmcrypt version... amp;gt;= 2.5.6
  checking for mcrypt_module_open in -lmcrypt... no
  checking for mcrypt_module_open in -lmcrypt... no
  configure: error: Sorry, I was not able to diagnose which libmcrypt version you have installed.

By common sense, this would be a missing libmcrypt-devel package, but that exists. I took another look in the config.log:

configure:78094: checking for mcrypt_module_open in -lmcrypt
  configure:78129: cc -o conftest -I/usr/include -g -O2 -fvisibility=hiddenamp;nbsp; -L/usr/lib64amp;nbsp; -lltdl conftest.c -lmcryptamp;nbsp; -lstdc++ -lcrypt -lpam -lfreetype -lpng -lz -ljpeg -lcurl -lbz2 -lz -lrt -lm -ldl -lnslamp;nbsp; -lxml2 -lz -lm -lssl -lcrypto -lcurl -lxml2 -lz -lm -lssl -lcrypto -lssl -lcrypto -ldl -lm -licui18n -licuuc -licudata -ldl -lm -licuio amp;gt;amp;amp;5
  /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -lltdl
  /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -lstdc++
  collect2: error: ld returned 1 exit status
  configure:78136: $? = 1

I've tried to look for ltdl packages in the repository, but couldn't find any libltdl*-devel packages. I continued with lstdc++ as th...</description>
	<pubDate>Sat, 04 May 2013 09:57:04 +0200</pubDate>
	</item>
	
	<item>
	<title>PHP 5.4 compilation error: build with IMAP works... no</title>
	<link>http://www.claudiokuenzler.com/blog/342/php-compilation-fails-build-with-imap-works-no-pam-devel-missing</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/342/php-compilation-fails-build-with-imap-works-no-pam-devel-missing</guid>
	<description>Yesterday I tried to compile the newest PHP 5.4.14 on an opensuse 12.2 system but got stuck when configure was at the IMAP check.

checking for IMAP support... yes
  checking for IMAP Kerberos support... no
  checking for IMAP SSL support... yes
  checking for utf8_mime2text signature... new
  checking for U8T_DECOMPOSE...
  checking for pam_start in -lpam... no
  checking for crypt in -lcrypt... yes
  checking whether rfc822_output_address_list function present... no
  checking whether build with IMAP works... no
  configure: error: build test failed. Please check the config.log for details.
  

At the begin I thought, that's easy to solve, as I already had this error before. The IMAP development files have a funny name called libc-client, at least that's what it was in the past. See my post quot;PHP compilation fails on IMAP U8T_DECOMPOSE: The Debian solutionquot; for more information. But the imap dev files (they're now called imap-devel on opensuse) are already installed:

rpm -qa | grep imap-dev
  imap-devel-2007e_suse-12.1.2.x86_64
  # rpm -qa| grep libc-client
  libc-client2007e_suse-2007e_suse-12.1.2.x86_64
  
  ll /usr/lib64/ | grep libc-client
  lrwxrwxrwxamp;nbsp; 1 root rootamp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; 13 Mayamp;nbsp; 3 18:58 c-client.a -amp;gt; libc-client.a
  -rw-r--r--amp;nbsp; 1 root rootamp;nbsp; 4887050 Jul 16amp;nbsp; 2012 libc-client.a
  lrwxrwxrwxamp;nbsp; 1 root rootamp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp...</description>
	<pubDate>Sat, 04 May 2013 09:18:35 +0200</pubDate>
	</item>
	
	<item>
	<title>How to solve knife (chef) error Exception: NoMethodError</title>
	<link>http://www.claudiokuenzler.com/blog/341/chef-knife-command-error-exception-nomethoderror-suse-linux</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/341/chef-knife-command-error-exception-nomethoderror-suse-linux</guid>
	<description>Since a recent update of some installed packages, my chef command 'knife' suddenly didn't work anymore:

knife status
  ERROR: knife encountered an unexpected error
  This may be a bug in the 'status' knife command or plugin
  Please collect the output of this command with the `-VV` option before filing a bug report.
  Exception: NoMethodError: undefined method `name' for #amp;lt;Hash:0x00000002893508amp;gt;
  

So I launched knife again, as mentioned, with the -VV option:

knife status -VV
  DEBUG: Using configuration from /home/ckuenzler/.chef/knife.rb
  DEBUG: Signing the request as xxx
  DEBUG: Sending HTTP Request via GET to chef.exmample.com:443/search/node
  DEBUG: ---- HTTP Status and Header Data: ----
  DEBUG: HTTP 1.1 200 OK
  DEBUG: server: nginx/1.1.19
  DEBUG: date: Fri, 03 May 2013 11:10:53 GMT
  DEBUG: content-type: application/json; charset=utf-8
  DEBUG: transfer-encoding: chunked
  DEBUG: connection: close
  DEBUG: ---- End HTTP Status/Header Data ----
  /usr/lib64/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/knife/status.rb:88:in `block in run': undefined method `name' for #amp;lt;Hash:0x00000001296fe8amp;gt; (NoMethodError)
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; from /usr/lib64/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/knife/status.rb:58:in `each'
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; from /usr/lib64/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/knife/status.rb:58:in `run'
  amp;n...</description>
	<pubDate>Fri, 03 May 2013 13:23:04 +0200</pubDate>
	</item>
	
	<item>
	<title>Another cgi web shell found (webr00t), uploaded through old Joomla</title>
	<link>http://www.claudiokuenzler.com/blog/340/webr00t-cgi-shell-uploaded-through-joomla</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/340/webr00t-cgi-shell-uploaded-through-joomla</guid>
	<description>I just had to solve a spamming issue on a shared hosting server, where a Joomla 1.5 (time to upgrade, eh?!) was hacked and used to upload several files, one of them a cgi web shell:
amp;nbsp;
 The interesting thing is, that this file extension doesn't end in quot;.cgiquot; or quot;.phpquot;, which makes it more difficult to automatic search mechanisms, which for example search for uploaded php files, to discover the file.
  The hacker uploaded a .htaccess file into the cgiweb folder, declaring that the file extension quot;.rootquot; should be used as cgi-script through AddHandler definition.

When the correct password was given, shell commands could be executed in the web shell, for example uname:

amp;nbsp;

How to solve this? Well, a temporary solution is to delete the uploaded files and folders. But as old and end of life Joomla versions are and will stay vulnerable, the only real solution is that this web-customer upgrades his Joomla CMS.
  
...</description>
	<pubDate>Thu, 02 May 2013 09:18:52 +0200</pubDate>
	</item>
	
	<item>
	<title>How to monitor qmail mail queue (check_mailq alternative)</title>
	<link>http://www.claudiokuenzler.com/blog/339/monitor-qmail-mail-queue-size-nagios-plugin</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/339/monitor-qmail-mail-queue-size-nagios-plugin</guid>
	<description>Although the official Nagios plugin check_mailq has a special -M (for MTA) switch where qmail can be used as option, it still cannot really handle the qmail mail queue. I even added the correct location of qmail-qstat into utils.pm, but I still wasn't able to monitor the mail queue on a specific qmail mail server.

To be able to monitor the qmail mail queue, I made the following steps:

 1. Backed up the original check_mailq plugin and created a new check_mailq:

#!/bin/bash
  #########################################
  # special check_mailq for qmail
  # by claudio kuenzler 2013-04-18
  #########################################
  
  # Check for people who need help - aren't we all nice ;-)
  #########################################################################
  if [ quot;${1}quot; = quot;--helpquot; -o quot;${#}quot; = quot;0quot; ];
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; then
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; echo -e quot;Wrong option given. Use -w and -cquot;;
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; exit 1;
  fi
  
  # Get user-given variables
  #########################################################################
  while getopts quot;w:cquot; Input;
  do
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; case ${Input} in
  amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; w)amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; warning=${OPTARG};;
  amp;nbsp;amp;nbsp;amp;nbsp;am...</description>
	<pubDate>Mon, 29 Apr 2013 15:26:13 +0200</pubDate>
	</item>
	
	<item>
	<title>Updated check_mysql_slavestatus plugin and documentation</title>
	<link>http://www.claudiokuenzler.com/blog/338/nagios-plugin-check-mysql-slave-status-updated</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/338/nagios-plugin-check-mysql-slave-status-updated</guid>
	<description>Around 5 years ago, I created my first Nagios plugin check_mysql_slavestatus. I didn't really know back then, that 5 years later, I'd still be using and therefore adapting it. =)

 Well the documentation page has been updated in both design and content. Especially the MySQL Slave Delay has been documented properly (finally...). I also used the opportunity to quot;correctquot; the PATH variable in the plugin itself.

Enjoy.
  
...</description>
	<pubDate>Sun, 28 Apr 2013 13:17:29 +0200</pubDate>
	</item>
	
	<item>
	<title>Another Dell workaround in check_esxi_hardware</title>
	<link>http://www.claudiokuenzler.com/blog/337/check_esxi_hardware-power-edge-r720-lcd-cable-pres-workaround</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/337/check_esxi_hardware-power-edge-r720-lcd-cable-pres-workaround</guid>
	<description>A new version of the Nagios/Monitoring plugin check_esxi_hardware has been released today.amp;nbsp;

It quot;extendsquot; the already existing workaround for Dell systems with another CIM element always reporting quot;not connectedquot; as well.
  To be more specific, the CIM element System Board 1 LCD Cable Pres 0: Connected was exiting with return code 12 on a Dell PowerEdge R720 system.
  

Special thanks to Ricardo Pardini for reporting the issue and making a lot of tests for me.
  
...</description>
	<pubDate>Wed, 24 Apr 2013 15:15:36 +0200</pubDate>
	</item>
	
	<item>
	<title>Contao CMS Updates not working (suhosin patch active)</title>
	<link>http://www.claudiokuenzler.com/blog/336/contao-cms-live-update-not-working-phar-files-suhosin</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/336/contao-cms-live-update-not-working-phar-files-suhosin</guid>
	<description>Just got to know that the Contao CMS system cannot use its Live-Update function, when the suhosin php hardening patch is active on the web server.

The Live-Update needs to unpack and execute so called phar files, which are by default disabled in suhosin. To be able to treat these phar files, an exception must be made in the php.ini configuration file:

; suhosin configuration
  suhosin.executor.include.whitelist=quot;pharquot;
  

With this entry and a PHP reload, the Live-Update of Contao should now work.
  
...</description>
	<pubDate>Mon, 22 Apr 2013 15:06:28 +0200</pubDate>
	</item>
	
	<item>
	<title>Handling qmail queue</title>
	<link>http://www.claudiokuenzler.com/blog/335/qmail-example-command-mail-queue-manage</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/335/qmail-example-command-mail-queue-manage</guid>
	<description>There was a recent spam attack on a very old web server running Qmail as mail server. The mail queue rose up to 25''000 mails and the server got blacklisted. Once the responsible account was blocked, the mails in the queue had to be removed.

After some research, I figured that the qmHandle script is best used for that. Here are some examples:

Show full mail queue (this can take some time when you have several thousand mails...):

/var/qmail/bin/qmHandle -l
  153341 (0, 0/153341)
  amp;nbsp; Return-path: admin@xxx.ru
  amp;nbsp; From: =?utf-8?B?0JzQvtC50JzQuNGA?= amp;lt;admin@xxx.ruamp;gt;
  amp;nbsp; To: amp;lt;xxx@gmal.comamp;gt;
  amp;nbsp; Subject: =?utf-8?B?0JLQsNC8INC/0L7RgNC10LrQvtC80LXQvdC00L7QstCw0LvQuA==?=
  amp;nbsp; Date: Mon, 15 Apr 2013 13:47:14 +0100
  amp;nbsp; Size: 2714 bytes
  
  168695 (13, 13/168695)
  amp;nbsp; Return-path: manager@example.com
  amp;nbsp; From: quot;Example AGquot; amp;lt;manager@example.comamp;gt;
  amp;nbsp; To: amp;lt;user1@example.comamp;gt;,
  amp;nbsp; Subject: =?utf-8?B?RGllIEJlemFobHVuZyBtaXQgSWhyZXIgS3JlZGl0a2FydGUgd3VyZGUgZXJmb2xncmVpY2ggZHVyY2hnZWbDvGhydC4=?=
  amp;nbsp; Date: Thu, 18 Apr 2013 00:29:26 +0200
  amp;nbsp; Size: 322307 bytes
  
  Total messages: 552
  Messages with local recipients: 0
  Messages with remote recipients: 552
  Messages with bounces: 383
  Messages in preprocess: 0


  Show content of message:

/var/qmail/bin/qmHandle -m153341
  
  --------------
  MESSAGE NUMBER ...</description>
	<pubDate>Fri, 19 Apr 2013 09:04:46 +0200</pubDate>
	</item>
	
	<item>
	<title>Follow-up on the Joomla mailing issue with mini_sendmail</title>
	<link>http://www.claudiokuenzler.com/blog/334/joomla-3.1-contains-new-phpmailer-class-fixes-mini_sendmail-issue</link>
	<guid isPermaLink="true">http://www.claudiokuenzler.com/blog/334/joomla-3.1-contains-new-phpmailer-class-fixes-mini_sendmail-issue</guid>
	<description>Back in July 2012 I discovered a Joomla issue where all mails, sent over a form, were not sent. This only happened in chroot environments using mini_sendmail as mail binary (php value sendmail_path). As Joomla uses phpmailer (another open source project) as embedded mailing system, the issue needed to be fixed in phpmailer. The original article can be found here: Joomla forms (PHPMailer) do not work with mini_sendmail.
  

The developer and maintainer of phpmailer, Jim Jagielski, made a pretty fast bugfix after I reported the bug, released as version 5.2.2-beta2. But Joomla never took the newer phpmailer version into its libraries.

Now, several months later, things seem to finally move on the Joomla side. As of today, the latest stable version of Joomla is 3.0.3 - and it still uses version 5.2.1 of phpmailer, therefore still containing a non-working phpmailer class for systems running with mini_sendmail. But I just saw that in the github repository of Joomla, the phpmailer class has been updated a month ago to version 5.2.3!

This change contains the very important new parameter which was called a little bit different in 5.2.2-beta2 (it was called $ReallyIsSendmail back then):

+amp;nbsp;amp;nbsp; * Determine if mail() uses a fully sendmail compatible MTA that
  +amp;nbsp;amp;nbsp; * supports sendmail's quot;-oi -fquot; options
  +amp;nbsp;amp;nbsp; * @var boolean
  +amp;nbsp;amp;nbsp; */
  +amp;nbsp; public $UseSendmailOptionsamp;nbsp; = true;
  +amp;nbsp;
  ...</description>
	<pubDate>Tue, 16 Apr 2013 15:44:32 +0200</pubDate>
	</item>
	
</channel>
</rss>
