Convert Dropbox’s Ubuntu package for Squeeze

The Dropbox Ubuntu package almost works on Debian Squeeze … except for one dependency with a numbering scheme that differs between Ubuntu and Debian.  Here is a quick script that extracts the package, corrects the one dependency in DEBIAN/control, and repackages, leaving a new .deb suitable for Squeeze.

convertDropbox4Squeeze:

#!/bin/sh
if [ $# -ne 1 ]; then
	echo "Usage: $0" 'nautilus-dropbox_$version_$arch.deb'
	exit 1
fi
DIR=`mktemp --directory`
mkdir -p $DIR/DEBIAN
dpkg-deb -x $1 $DIR/
dpkg-deb -e $1 $DIR/DEBIAN/
sed -i s/'libnautilus-extension1 (>= 1:2.22.2)'/'libnautilus-extension1 (>= 2.22.2)'/ ${DIR}/DEBIAN/control
dpkg-deb -b $DIR  ${1%.*}_squeeze.deb
rm -rf $DIR

Just download the .deb from the Dropbox site, then run

./convertDropbox4Squeeze nautilus_dropbox.......deb

And then just install the newly created nautilus_dropbx….squeeze.deb .

Linux Management and Monitoring: Zabbix + Puppet ?!?

I’ve spent a good part of this week evaluating various solutions for monitoring and managing Linux servers.  There are many solutions that meet some of the needs, but I have not found a single product that does everything I need.  Without going into significant detail, here are my needs:

  • Simple service up/down monitoring and alerting
  • Detailed metrics for disk, CPU, memory, network, etc
  • Storage and graphing of historical data
  • Flexible creation of custom monitors, triggers, etc.
  • Significant pre-configured monitors, triggers, etc.
  • Deployment/upgrade/removal of packages
  • Configuration management
  • Inventory of hardware/software
  • Rich access control to satisfy various distributed administration and audit requirements
  • *ALL* functionality exposed by web interface
  • Inexpensive, preferably open source
  • Able to scale to several hundred, maybe thousands of Linux servers – and possibly even Windows servers.
  • Should be developed in a language I know so I can modify myself – (C, Perl, Python, Java)
  • Should run on Debian, though it does not need to be in the repo.

Candidate solutions:

  • Nagios
  • OCS-Inventory
  • Hyperic
  • Puppet
  • Zabbix

Conclusion:

Nothing definitive yet, but I’m narrowing in on a combination of Zabbix and Puppet.  I am still looking for something to automate the collection of inventory data, but I think this could be done using the Zabbix API to populate the Zabbix inventory (which is otherwise a manual process).

LazyWeb – any opinions?