Take a moment and think about the many ways that your customers interact with you and your support staff: emails, phone calls, in-person meetings, pages, instant messenger conversations, chat-rooms, and the list goes on. How do you currently keep track of all of those interactions? Is it effective? Does it provide reports and metrics that help you find-tune the quality and variety of services you provide?
Used appropriately, a request tracking system can be the cornerstone of your service business and the primary means for customer interaction. Indeed, the quality of your request tracking system directly impacts the quality of your customer service and is yet another tool to manage your relationship with your customers.
So wouldn’t it be great to find a semi-automated, feature-rich platform to consolidate all of your interactions and help you gauge your mean time to repair? Such software exists, available from a number of major vendors. However, you can find also find best-of-breed solutions with that lovable open source price tag.
This month, let’s dive into a very capable and enterprise-ready request tracking system that’s widely used by Fortune 500 and small companies alike. That system is RT.
Getting Acquainted with RT
Created in 1996, RT is one of the oldest, best-maintained, and robust request tracking systems in existence. RT is web-based, is written in object-oriented Perl. and uses MySQL as a data repository.
In RT, tickets can be easily opened via a web and email interface. Additionally, tickets can also be opened and managed via a command-line application programming interface (API), which allows you to integrate the system with other project management and monitoring tools, such as Nagios. [ See the feature story on Nagios in this same issue.] RT allows you to prioritize, assign, resolve, and escalate all customer service and incidents.
While RT handles atomic tasks superbly, it also provides an impressive search interface for trend analysis and historical research. RT also allows you to develop custom fields for task classification and subsequent searching. Customizing RT is also easy, as the developers have abstracted distinct portions of the platform. RT incorporates Mason, a templating system that allows you to alter the look and feel of the front-end, and the Scrips system allows you to alter critical mailing rules without changing core application libraries — a godsend, because your work need not be ported (again) to future versions of the software. RT security is handled by internal access control lists (ACLs) that allow administrators grant user, group, and role-based rights to users.
Installing and Configuring RT
RT is written in object-oriented Perl and made available under the GNU General Public License (GPL), allowing you to run RT for your business, make changes and distribute copies, as long as you maintain the original author’s copyright, ownership statement and a copy of the GPL. The GPL also allows you to charge a fee for distributing and supporting your software, just as long as you follow those aforementioned rules.
Before you start the install, verify that your host meets the following prerequisites: Perl 5.8.3 or later; MySQL 4.0.13 or later (RT also supports Postgres 7.2 or later and Oracle 9iR2 or later); Apache 1.3.x or 2.x with mod_perl. The latter must be built with EVERYTHING=1 and as a static module. Here’s a quick reference on how to do just that:
% tar –xzvf mod_perl-1.29.tar.gz
% tar –xzvf apache_1.3.3.tar.gz
% cd mod_perl-x.xx
% perl Makefile.PL \
% make test
% make install
% cd ../apache_1.3.3
# make install
For production environments, it’s typically a good idea to install and configure mod_ssl, as you may have users accessing it remotely.
Now that Apache and mod_perl are installed properly, you can install and configure RT. Go to the directory where you unpacked the RT tarball and run ./configure ––help to review all configuration options. The command used to build RT for the test machine was ./configure–prefix==/usr/local/rt.
Next, RT includes a CPAN dependency checker to test for missing dependencies, and a script to download and install missing dependencies. To determine if you’re missing any additional Perl modules, run make testdeps. If any modules are missing, run make fixdeps. (You may need to run the former two make commands a number of times to satisfy all of the dependencies.)
The next procedure is to create a new Linux group called rt. Then, as root, run make install, then make initialize-database. (In this demonstration, the database user is root. In a production environment, you should create a separate database user and password to keep the system as secure as possible.)
At this point, the core RT platform is now installed. Before you can use it, however, you must configure Apache and your mail system.
Using your favorite editor, open your httpd.conf file and create a new virtual host section that resembles Listing One, entering your specific host information and RT installation directory where required (prefixed with YOUR_):
To activate email interaction, add the lines shown in Listing Two to /etc/aliases, changing the path and URL where necessary.
rt: “|/usr/local/rt/bin/rt-mailgate ––queue general ––action correspond ––url http://YOUR_HOSTNAME/”
rt–comment: “|/usr/local/rt/bin/rt-mailgate ––queue general ––action comment ––url http://YOUR_HOSTNAME/”
When you’re finished with Apache and /etc/aliases, launch your favorite browser and go to the hostname you created in Apache. If you’re presented with a login form, then you’ve successfully installed RT.
Now it’s time to configure the system. Edit etc/RT_Config.pm in your RT directory. (It’s often easiest to copy the complete sample configuration file etc/RT_Config.pm to etc/RT_SiteConfig.pm and comment out the directives you don’t need.) At the very least you should specify your domain name, database parameters and other mail settings, including $CorrespondAddress and $CommentAddress.
If you installed RT in a path off your DocumentRoot
, you need to create an alias for the path to the RT root, such as Alias /rt /usr/local/rt
, and a rewrite rule for the Location
directive in your Apache virtual host section. The RT Wiki (located at http://wiki.bestpractical.com/index.cgi
provides the example Apache configuration shown in Listing Three.
Alias /rt “/usr/local/rt/share/html”
Options ExecCGI FollowSymLinks
Allow from all
RedirectMatch permanent (.*)/$ $1/index.html
Additionally, you will need to specify your path for the $WebPath variable in etc/RT_SiteConfig.pm. Any time you change RT_SiteConfig.pm, you must “bounce” Apache by stopping and starting the daemon. (A simple restart will not load updated configuration files.)
RT in Action
Browse to your RT web interface and login with the initial username “root” and password “password.” Your first step is to click on “Preferences” in the upper right and change your password.
A good way to get familiar with RT is to begin creating sample tickets, queues, users, and groups.
Before you begin creating tickets, click on Configuration, then Queues, and get familiar with the different options you can set for each queue. For example, click on the Basics menu option to specify default reply address and priority behavior. Click on the Watchers menu option to select certain members to always review all ticket updates assigned to this queue. Click on Scrips then New Scrip to create custom notification actions for specific event types. You can also assign specific group and user permissions for each queue you create. The latter option allows you to setup access controls for an environment consisting of many departments and/or clients, giving each administrator the right to control the behavior of their assigned queues.
To create a new user and add him or her to a queue for creating and watching tickets, first click on Configuration, then Users, then New User, and fill out all of the appropriate information. Next, click on Queues, then select General, then User Rights. You should see the new user’s name on this screen. In the New Rights selection box, click on CreateTicket, OwnTicket, ReplyToTicket, SeeQueue, ShowTicket, and Watch, then hit the Modify User Rights button. The new user now has access to the General queue.
To verify the previous step, logout out as the root user and log back in as the user you just created. You (the user) should be able to create a ticket in the General queue. Go ahead and click the button to create a new ticket.
The new ticket screen allows you to enter in a great amount of detail, including attachments, owner-assignment (if you have been given permission to assign an owner), priority, related ticket IDs and URLs, and even start and due dates. Enter a request description in the large text box and hit the Create button. If you’ve set up everything properly, you should be redirected to the newly created ticket, and the creator should have received an email containing the ticket details. If you’ve setup your mail alias properly, you should be able to reply to the ticket via email, and have the contents automatically appear as a follow-up to the previous entry.
The searching capabilities of RT are extraordinary. Rather than a simple text search, RT has included a full-featured Query Builder. Click on the Tickets menu item on the left column. The Add Criteria box features all of the available fields related to all tickets. As you can see, you can filter tickets by content, subject, queue, user, priority, and time; you can also cross reference different parameters. As you add a criterion, your equation is shown within the Query box on the right. Finally, you are also given the option to add/remove what columns appear on your result within the Display Columns box.
Where To Go From Here
As administrator, you will probably spend most of your time creating and managing users, groups and queues, not to mention training your customers and staff to use the RT system properly. Managing your email systems will also become an area of concentration as you expand into additional queues and integration with other monitoring systems. Because RT works flawlessly with most email systems, you can begin to see the power of sending service alert messages via RT rather than straight to a pager or email address. Or experiment with the freely-available instant messenger CPAN modules and build an RT interface for updating incidents via an IM client. With the advent of mobile IM clients for your cell phone, you can update tickets anywhere you go and keep track of those incidents with high priority.
As your colleagues begin to use the system on a daily basis, you will also experience the power of the query builder first hand. Analyzing trends and calculating your mean time to resolve incidents will become part of your daily and weekly regimen.
Michael Bordash’s company, IP-soft.net, provides managed IT services for Fortune 1000 companies. He is also the founder of InternetDJ.com. You can reach Michael at