Friday, November 2, 2012

Automatic server audit for RackTables project

First I'd like to introduce one very nice project called RackTables. It's management system for DataCenters or rack rooms. I test many project like this but this one fits best for our needs. With this system you can document your network and infrastructure. Datacenters, rooms, rack rows, servers and their attributes, ipv4/ipv6 ranges, virtual resources, etc.

I work as System Specialist, many times it's too much work and I forgot to document some changes which I made on server or infrastructure. When number of servers grows to hundreds this is a really big problem you must handle. Important is also to know, what was the change, not only actual state. So you must create log of changes.

I have created one small script which discover physical or virtual server and insert or update information into racktables database and ! it create LOG in RackTables. You see what was the previous state and when this change was made.

Script can handle various system and HW infromation and what is perfect, it do it automatically without any interaction.



I show you some examples what this system can do for you.

Create new object based on hostname and Service-TAG


This is one of core features. When you run this application on server, it first check hostname and Service-TAG (ST) and compare with database. If this combination not exist, it create new server object.

It recognize physical and virtual servers, virtual servers have automatically generated ST as "VPS-hostname". It also recognize if server is hypervisor or not and build your virtual resources in database.



On the next picture you should see information collected from server like

  • hostname

  • service_tag , filled as asset_tag

  • support type

  • Server model

  • support ends

  • Operating System

  • Interfaces and connections with switches

  • IP addresse, networks and VLANs


All of these information ware collected automaticly.



On the next example is server which was recognized as XEN Hypervisor, it detects virtual servers and linked them with virtual objects.


Virtual resources overview



Warranty and support expiration report



Changes are written into log to specific object


Finally look on detail of core switch and it's details




Application was released under GPLv2 license.

UPDATE

System supports transport of racktables comments to server message of the day file.

When connect to server some useful comment is there for you. It's possible edit this comment directly from server by using comment-edit.py utility.




Links

5 comments:

  1. Awesome work! Any plans on adding the ability to pull from vCenter and update RackTables?

    ReplyDelete
  2. Unfortunately not now. I'm focused on optimizing code and make it work on FreeBSD systems.

    ReplyDelete
  3. I get a python error :(
    This is on CentOS 6

    [root@racktables rt-server-client]# ./system-info.py
    File "./system-info.py", line 212
    elif line.find('lldp.'+interface+'.port.descr') > -1:
    ^
    SyntaxError: invalid syntax

    [root@racktables rt-server-client]# uname -a
    Linux racktables 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    [root@racktables rt-server-client]# yum list installed | grep py
    newt-python.x86_64 0.52.11-3.el6 @anaconda-CentOS-201207061011.x86_64/6.3
    pygpgme.x86_64 0.1-18.20090824bzr68.el6 @anaconda-CentOS-201207061011.x86_64/6.3
    python.x86_64 2.6.6-37.el6_4 @updates
    python-iniparse.noarch 0.3.1-2.1.el6 @anaconda-CentOS-201207061011.x86_64/6.3
    python-libs.x86_64 2.6.6-37.el6_4 @updates
    python-pycurl.x86_64 7.19.0-8.el6 @anaconda-CentOS-201207061011.x86_64/6.3
    python-urlgrabber.noarch 3.9.1-8.el6 @anaconda-CentOS-201207061011.x86_64/6.3
    rpm-python.x86_64 4.8.0-32.el6 @base

    ReplyDelete
  4. Hi,

    thank for your reply. Could you please create ISSUE on github page ? https://github.com/rvojcik/rt-server-client

    Thanks !

    ReplyDelete
  5. Hi Robert,

    Excellent scripts. I have tried it but only getting update for the localhost itself. All other servers that are reachable from the localhost are not being updated accordingly? Any idea where the problem might be? Thanks Prakash

    ReplyDelete

ESP8266 + InfluxDB + OLED DIsplay and DHT22

Basicly just put together from Examples. Sending data tu InfluxDB was little bit tricky using HTTPClient and POST method for InfluxDB.