We use ZABBIX to monitor 10 servers and 100 clients.
ZABBIX is an enterprise-class open source distributed monitoring solution.
ZABBIX is software for monitoring of your applications, network and servers.
You can monitor things like bandwidth, cpu usage, total memory, free memory, number of processes, free space on the hdd, uptime, etc. It has some very good templates for monitoring Exchange, SQL, Linux.
I don't do much manual system administration anymore. I view my infrastructure as a programmable entity, and treat it as such, by configuring systems with tools that automate configuration management, EC2 node maintenance, etc. Tools in my toolbox:
- Ruby (my favorite scripting/tool language)
- Git (version control)
- Opscode's Chef (written in Ruby) (1)
- Capistrano (ad hoc mass-maintenance)
- Amazon's EC2 API tools for instance and image maintenance.
- Rightscale's AWS gem (Ruby bindings for EC2)
(1) - Disclosure, I work for Opscode. Other tools fill this space like Reductive Lab's Puppet.
I do bundle up an AMI when I've got a node built the way I need for a specific function. For example, if I'm building a Rails app server, I'll get all the prerequisite packages installed to save time on build.
When all else fails, I log into systems with SSH. I did manual system administration for many many years, this is old hat.
Are you using some form of Windowing
system and remote-desktop equivalent
to access the box, or is it all
command line?
I don't install any GUI on servers unless a package has a dependency and one gets auto-installed.
Is there an equivalent to this in the
Linux world? (transferring files)
I normally do two types of file transfer/file maintenance.
- Package installation
- Configuration files
For packages native to the platform, I use the standard package management tool like APT or YUM. For source installs (something.tar.gz) I generally download via wget.
Configuration files are typically ERB templates managed by Chef.
I use SSH and SCP/SFTP to transfer files manually.
Are you doing your config
changes/script tweaks directly on the
machine? Or do you have something set
up on your local box to edit these
files remotely? Or are you simply
editing them remotely then
transferring them at each save?
I keep everything related to managing systems in a software control repository. Here's my typical workflow when updating configuration on one or more systems. I start from my local workstation.
- Pull from master Git repository for others' changes.
- Edit file(s) locally (like, update a configuration file).
- Commit the change, push to master.
- On Chef server (logged in via SSH), pull the latest change I just committed.
- Deploy the configuration to the appropriate place on the Chef server (I use Rake for this).
- Chef clients run on an interval, so they will pick up changes every 30 minutes. If I need something immediately, I run chef-client manually.
- Verify the change!
How are you moving files back and
forth between EC2 and your local
environment? FTP? Some sort of Mapped
Drive via VPN?
There's a few locations where files I use on EC2 nodes might be stored.
- Chef server. Configuration templates mainly, some small packages too.
- GitHub. We store our code (open source projects) on GitHub. EC2 nodes can get to this easily (such as for a checkout of the latest version of something).
- Amazon S3 buckets. Some things get stored in a bucket.
I do a lot of work in EC2, primarily testing environments and changes. As a result of my tools and workflow, I spend more time working on things I actually care about and less on dealing with individual files and thinking about specific configurations.
Best Answer
First off, this has been done. Seriously, the City of Largo in Florida has been running on Linux servers for over 6+ years, supporting hundreds of city employees. You can read about their challenges (and successes!) at the City of Largo work blog anytime. This is hardly a new topic, either. You can even buy a book on this subject and read up on what to expect (keep in mind that the book is several years old, and many references are probably out-of-date). It can also be used in a small business environment, as witnessed by the Ernie Ball Co., which switched to linux years ago and hasn't looked back since.
Addressing each question:
More often than not, there is some specific package that has been "grandfathered" into the system in some pseudo-critical role. At my own work, I can think of at least 2 Microsoft Access databases that would require a complete re-write in a different language with a different set of conditions.
As for "lack thereof", that's a function of how deep a niche role some software package will play...read my responses below...
Never underestimate this. You would not believe the number of end-users that will throw a fit to actually keep the environment they have, no matter how crufty, old, poorly designed, frustrating, or labor-intensive it is. Seriously. In fact, the longer the end-user becomes accustomed to the interface, the more resistance they will have to learning a new one, because there is a substantial existing investment of their own time in the interface they already know.
I don't think this is an issue. The environment has been around for so long, and so many admins have tried this on their own time, that there is little (if any) lack of qualified applicants for both junior and senior sysadmin positions. Saying there is a lack of support tools for Linux is roughly akin to saying "I can't Google an answer". There were - and still are - tools from years ago.
This is probably a function of the size of an organization and the amount of software that they purchase. In those cases where there are few users, per-license or small batches of licenses are purchased on an as-needed basis. In much larger organizations, it's very tempting to sign a "faustian bargain" to get a 3-year contract covering thousands of desktops at a steeply discounted rate.
There are many synergies involved (please do not stone me to death for using that overhyped buzzword...)
If you were to migrate an organization - of any size - to a pure-play Linux/BSD/OS X platform, I think you would have to cover the following aspects to make a successful transition:
External Cultural Inertia (Management). Management has been signing over thousands of dollars each year to "buy" something that has tangible value. Convincing them that they are getting the same value with something that comes free is a hard pitch. There is a definite psychological link between the sense you've purchased something, and that it has some intrinsic value. This of course has been fully exploited by the industry for decades and as anyone who shops around knows, "buyer beware".
External Cultural Inertia (End-Users). Users are a big bundle of mystery waiting to become an explosive backlash of "where's my files", "I can't click the link", "this used to work", "my printer settings didn't come back" (true OpenOffice story from the 1.x days), and my all-time favorite, "but the button in the toolbar used to be over there, now it's here? I can never find anything!" So many of them have settled into a culture of "don't know, don't care, don't want to go there" that explaining that the summation button in OpenOffice is the same Excel symbol in a different location is just not enough. They are doing things by muscle-memory and single-step handwritten checklists, and moving something just one pixel too far is asking them to change their world. If your organization is "young", or you have fluid staffing requirements, you can probably get away from this headache. If it's established, with employees that have been around for years (or decades!) then you're going to encounter fierce resistance.
Internal Cultural Inertia. Your existing Windows sysadmins have been weened on multiple-inheritance access control lists, multiple GUI paths leading to the same result, and a habituation to working with "opaque" software that consists of "black box" lumps of code. Moving them into a culture where the permissions hierarchy is significantly flattened, there are multiple ways to arrive at a result from a (GASP! the horror!) command line, and the software is so transparent that they themselves are tempted to modify it, will be a huge culture shock. Some old-timers may actually be in disbelief that it is legal to actually copy the same software they are installing on their servers and take it home (yes, it's true, you can really do that, no really, it's ok, the BSA won't care...)
Exchange. Getting off of Exchange is roughly akin to getting off of crack cocaine. There are so many organizations that are so inured, so hopelessly dependent on the system, that they will fight to protect it. I say this with all sincerity. If you can at least replace the calendaring/free-busy/shared contacts portion of this, then you'll have fought only half of your battle. If you are using shared folders, custom forms, or other mucky-muck, you're pretty much in deep. Email, no matter how old it gets, still remains one of the silent killer apps of the internet - why else would you interface just about everything else - including websites - to such an archaic technology? Fuse this with irreplaceable contact information, and a TODO list about a mile long that is critical to keeping your job, and you suddenly realize that Exchange has your organization tightly held by the (censored-to-avoid-offensive-posting-votes).
Microsoft Access. This little nugget will cause no end of heart-ache. Excel, Word, PowerPoint, those are down pat, but Access...Access is the fly trap of file-based database containers. There are a handful of tools to get the data out, but the key value of Access is not so much its use as a (abet crummy) database container, but rather, the forms, code, and reporting that come with it. You'll need to replace it with something that can provide forms, code, and reporting in a coherent package. And there aren't many of those packages around.
ActiveX. This is a ticking time bomb. Any internally-deployed site within a large organization that uses ActiveX has pretty much fused themselves to a Windows platform, for better or worse. By the way, ActiveX often implies that you'll also contend with...
Internet Explorer. For anyone who remembers the bad old days (version 6 and prior), enough said.
Proprietary one-off software packages. If you have one of these, all bets are off. You know these when you see them, those packages that no-one else has, you paid a bundle of money to a niche vendor with no competitors, the software requires specific (outdated) versions of additional libraries, it is typically poorly written, crashes often, and the end-users are delighted that they can now click a button and it makes magic reports...
In the end, it's not about "superior technology" or "return on investment". It's about people and their inability to deal with change.