Home > Glovebox, Perl, Server Management > Glovebox: My Solution to Managing Servers

Glovebox: My Solution to Managing Servers

When I started in the “Technology” department at my current employer, I found myself apart of a team that was tasked with taking care of hundreds of IBM blade servers, and tens of other IBM system x servers.  For the most part we could keep up with our servers by where they were in our monitoring software, but if we needed to know exactly where they were in either a blade center, by remote console name, or what Domain-0 they lived on for our Xen based virtual machines – we had to relate back to a usually out of date spreadsheet that showed where to go.

After a year of this mess I decided to go a different route – a dynamic web application that would update it self based on data pulled from the blade centers via SNMP.  Glovebox was born.  Well, actually it was called “the dashboard” in the beginning – unfortunately for me my co-workers have no issue pointing out when things aren’t named quite right, a sarcastic “well it ain’t a dashboard… how about Glovebox!” decided the name fate of it.   The product took almost a year to get to its current self, but manages to keep track of all our blades, IBM RSA II consoles and our Xen virtual machines without the input from anyone on staff.

For the IBM blades and RSA II cards it uses a set of OIDs I gathered from sifting through their respective snmp output.  In the case of the blades, those OIDs are:

|    | bladecenters | serial          |
|       | bladecenters | error           |
|    | bladecenters | family          |
|    | bladecenters | model           |
| | switches     | error           |
|  | switches     | address         |
|  | servers      | bios            |
|  | servers      | serial          |
|  | servers      | model           |
|  | servers      | hostname        |
|  | servers      | bsmp            |
|   | servers      | error           |
|   | servers      | power           |
| | servers      | storage         |
| | servers      | family          |
|  | switches     | serial          |
|     | bladecenters | eventlog        |
|         | bladecenters | name            |
|    | bladecenters | watts           |
|    | bladecenters | btus            |
|     | bladecenters | hostname        |
|       | bladecenters | infoled         |
|       | bladecenters | templed         |
|       | bladecenters | identled        |
|       | bladecenters | installedblades |
|  | mm           | firmware        |
|       | bladecenters | installedmms    |
|  | mm           | serial          |
|  | mm           | firmware_date   |
|  | mm           | name            |
|    | mm           | address         |
|    | mm           | error           |
|    | mm           | primary         |

From the list you can see I monitor not just the blades but also the management modules, the chassis, and the blade switches.  The snmp output on the IBM Advanced Management Modules is quite complete and they provide good MIBs to be able to decipher the information.

I have a similar list for the RSA II cards which was added after a re-write of the initial version of Glovebox mid last year, the re-write was to make the software be able to use “modules” for each device, this was so adding future additions was easy.   The Xen virtual machines are added via libvirt and its associated Perl module, I have setup keys between the server that this application runs on and each Domain-0, allowing it connection and figure out whats running on there.   Since it based off modules you very well could add anything you wanted – it even has a shared development libary that allows for easy additions without re-inventing the wheel.

So whats it look like?  Well it looks like any application written with ExtJS as the front end – quite good.  I’m not a designer, I can’t do graphics, but with the help of ExtJS it came out quite nicely.  How about a peak:

Sorry for blocking out some of the data, but some of the info needs to stay in house. The back end is entirely Perl and all data is kept in a MySQL database.  It ended up being a rather larger application in the end, but really makes life quite a bit easier.

  1. No comments yet.
  1. No trackbacks yet.