Helpdesk system and datacenter inventory Semantic MediaWiki prototypes added to my prototype wiki

I’ve added a couple prototypes to my prototype wiki. All of the templates, properties, and forms are protected from editing; however, you can still add/modify data. You can modify the functionality of the prototypes on my sandbox wiki, if you’d like to test things out. The two prototypes are a helpdesk system, and a datacenter inventory tracking system.

[toc title=”Table of Contents”]

Helpdesk system prototype

I’ve made a fully functional helpdesk application using Semantic MediaWiki (SMW), Semantic Forms (SF), Semantic Tasks (ST), Semantic Result Formats (SRF), Parser Functions, and Dynamic Sidebar. As an anonymous user, you can search, and view tickets; as a logged-in user, you can create tickets, and act as a supporter. The helpdesk also supports supporter groups, which are used for email notification, and for getting lists of tickets pertaining to your group.

Test it out in the prototype (OpenID is supported). Instructions for making yourself a supporter, and adding yourself to a supporter group are on the main page. The get emails, set your email address and confirm it via preferences. Notice that mail from my server may end up in your spam folder.

If you’d like to modify the helpdesk, you can in the sandbox. I wipe out the sandbox weekly, and re-sync it with the prototype.

In a future blog post I’ll explain how to create a system like this.

Datacenter inventory system prototype

I’ve added a form and template to track server information like IPs, MACs, OS type, OS version, Hardware information, etc. This information can then be queried and displayed. Here’s a few examples of how this can be really useful:

  1. You have a virtual infrastructure, with a shared storage backend. You are doing thin disk provisioning to save storage space. As you are adding virtual machines, you are allocating OS space to them that isn’t necessarily being used on the storage space. It is possible to overallocate your storage; if you overallocate the storage too much, it is possible your VMs will start to fill up their allocated space, and eventually exhaust all available shared storage, killing all your VMs. With this inventory system, you can track how much space is allocated to each VM, then write a query to sum the total allocated storage space for all of your VMs. Doing so can give you an immediate view of how much storage you have allocated versus how much you have available. See the servers category for an example of this.
  2. You need to keep track of who is assigned to admin which systems, to ensure that all systems are covered and all systems have backup admins. With this inventory system, you can assign wiki users as admins to systems. This information can be queried, so if you have an employee leaving, you know which systems need to be reassigned.
  3. You have contractors who need to have a list of systems they manage. Since you can assign admins to systems, you can put a query on that admin’s user page that shows the admin’s list of systems. See my user page for an example.
  4. You use static IP addresses on your network, and want to keep an IP database. Notice in this situation, you’d also need more forms, which I’ll be adding later, for things like KVMs, switches, etc.
  5. You want to keep a MAC address database. Similar issues with the IP address database apply here.
  6. You want to keep track of server types, and number of types of servers on your network. This can be useful for server consolidation efforts.
  7. You want to keep track of which systems are in which racks, in which slots, which type of power they are using, and how many power supplies they have. Later I’ll be adding a rack form to keep track of information about racks in a datacenter. On rack pages you could use a query to display all systems in the rack, and which slots they are in. You can order the query to show systems from top to bottom order. If you integrate this with the Plotters extension, you could draw an interactive physical representation of the rack using Javascript and canvas.
  8. You want to keep track of what type of hardware you are using in your datacenter. This can be useful for consolidating and standardizing hardware.
  9. You want to keep track of which and how many operating systems are being used in your datacenter. This can be useful for consolidating and standardizing OS types.

Linking the two prototypes

These systems become even more useful when you start linking them. I will start adding some links soon for things like:

  1. Per system and aggregated changelogs. A simple query can give you the changelog from all servers, if changelog entries are per system.
  2. Per system and aggregated task lists. Since admins are linked with servers, you can even get per admin task lists.
  3. Patch tracking.
  4. Per system and aggregated change requests.
  5. Maintenance scheduling. Thanks to SMW, and SRF output formats, you can have a maintenance calendar, a timeline view of maintenance, and export iCals so that users can add the maintenance schedules to their own calendars.

Future prototypes will likely integrate further into these prototypes. An end goal of these prototypes may be an enterprise architecture management system.

As an anonymous user, you can search, and view tickets; as a logged-in user, you can create tickets, and act as a supporter.
  • This looks like it’ll be a very useful system. And in all honesty, much more useful then something like Bugzilla would be. I’m very interested in getting this setup for my projects.

    • I’ll try to get the blog post out on how to create it. There are a few gotchas about a system like this due to some quirks in SMW, and SF. All of that will be addressed in the post.

      • Great, I’m looking forward to it. I’m very anxious to deploy it for Bios Interactive. It’d be great to get things more organized.

  • Pingback: Semantic Mediawiki « ?????? ???????()

  • Pingback: Dear Diary for May 24th - Young David()

  • enterprise_user

    Echoing the interest in seeing your take on a hardware inventory system integrated with the helpdesk system.

    • I was thinking patch and vulnerability tracking, trouble ticket tracking, work order tracking (to serve as a todo for sys admins). Being able to associate ticket actions with systems over a period of time can give you insight into common problems on those systems, and can hopefully help you avoid similar problems in the future.

      I should have more time to try to integrate these things soon.

  • enterprise_user

    Any chance of a guide for the inventory system similar to the one for the ticket system?

    • Yeah, I guess so. I’ve been really short on free time lately, but will hopefully have more coming soon. I’ll try to put one out.

  • Pingback: Notes from Wikimania 2011 – The WikiWorks Blog()

  • Any chance you have backups or further notes on how to set this up? Your demo wiki is offline and we’re looking to do the same at our hackerspace.

    Dwight S. CTO,

    • Nope. This has been an abandoned project for ages. Sorry about that.

    • Owen Mann

      Did the system work well in practice? Why was it abandoned? Any advice for someone setting up their own inventory using Semantic MediaWiki?


      • It worked ok, but realistically it’s a bad idea to create your own ticketing system.