How To Install & Configure OTRS Help Desk Ticketing System On Linux (Centos 7, RedHat)

Every company maintains the ticketing system to track user request. Ticketing tool is one of the essential application in the IT industry.

You can find a lot of ticketing tools in the market and each one has their own unique features. Wide range of options are available to choose ticketing system, so you have to pick suitable one for you as per your requirement.

Every company (small level to top level) has manage ticketing systems as per their needs.

Are you looking for good ticketing systems with Free of cost? If yes, then otrs is the best choice for you.

Today we are going to discuss about otrs ticketing system which comes completely free of cost. Also you can find so many free ticketing tools in the market.

What Is OTRS?

OTRS stands for Open-source Ticket Request System is one of the most flexible web-based ticketing systems used for Customer Service, Help Desk, IT Service Management.

OTRS Free package offers wide range of configuration (more than 1,000) possibilities, endless customization and integration possibilities which turning it into a powerful IT service management tool. It supports 38 languages.

Every ticket has the history which shows detailed information about the ticket. It supports multiple agents that allows user to work simultaneously on the tickets. There is no limitation for agents creation and agent can handle “N” of tickets per day.

It allow agent to manage incoming inquiries, complaints, support requests, defect reports, and other communications. Also user can able to merge more than one requests which generated for the same issue.

OTRS was written in Perl programming language and web interface is made more user-friendly by using JavaScript. The web interface itself uses its own templating mechanism called DTL (Dynamic Template Language) to facilitate the display of the systems output data.

Prerequisites for OTRS

Make sure your system should have LAMP setup. If no, don’t worry and refer the following tutorials to install it.

Suggested Read : Install LAMP Stack On CentOS 7 & RHEL 7

# yum install httpd httpd-devel gcc mariadb-server

Also enable EPEL Repository which will install some additional perl modules for OTRS.

# yum install epel-release

Update your system

It’s a good practice to make your system packages up to date. Run the following command as root user.

# yum update

Setup the database for OTRS

OTRS supports different database back-end like MySQL or MariaDB, PostgreSQL or Oracle. MariaDB is the most popular database to deploy OTRS that was suggested by OTRS team.

No need to create a database manually and we can create this later using OTRS web interface. Just configure the following settings.

Modify the following parameter in order to make it suitable for OTRS.

# vi /etc/my.cnf

max_allowed_packet   = 64M
query_cache_size     = 32M
innodb_log_file_size = 256M

Restart MariaDB service to take this change effect.

# systemctl restart mariadb

Disable SELinux

SELinux stands for Security-Enhanced Linux is a Linux kernel security module which allows users and administrators more control over access control. It gives that extra layer of security to the resources in the system.

Check whether SELinux enabled or disabled using following command.

# sestatus
SELinux status:                 enabled


# getenforce

If it’s enabled, edit /etc/sysconfig/selinux file and change SELINUX=enabled to SELINUX=disabled and save the file then exit.

# nano /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enabled - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enabled.
#     enabled - No SELinux policy is loaded.
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.

Reboot the system for the changes to take effect.

# shutdown -r now

Download and Install OTRS

Download OTRS rpm file from the OTRS website and install it.

# yum -y install

Restart Apache web server to load the configuration changes for OTRS.

# systemctl restart httpd

Configure firewall

By default CentOS/RHEL 7 will block all http and https traffic. We need to allow this traffic using following commands.

# firewall-cmd --add-service=http --permanent 

# firewall-cmd --add-service=https --permanent

# firewall-cmd --reload

# systemctl restart firewalld

Check and install additional Perl Modules

Since OTRS written in perl and you may need to install additonal perl modules manually. Run the following command to check what modules you are missing.

# /opt/otrs/bin/

Run the following YUM command to install missing perl modules.

# yum install -y "perl(Crypt::Eksblowfish::Bcrypt)" "perl(DBD::Pg)" "perl(Encode::HanExtra)" "perl(JSON::XS)" "perl(Mail::IMAPClient)" "perl(Authen::NTLM)" "perl(ModPerl::Util)" "perl(Text::CSV_XS)" "perl(YAML::XS)"  

Run the file once again to confirm all the perl modules installed successfully.

# /opt/otrs/bin/
  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v1.92)
  o Archive::Zip.....................ok (v1.30)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
  o Crypt::SSLeay....................ok (v0.64)
  o Date::Format.....................ok (v2.24)
  o DateTime.........................ok (v1.04)
  o DBI..............................ok (v1.627)
  o DBD::mysql.......................ok (v4.023)
  o DBD::ODBC........................Not installed! (optional - Required to connect to a MS-SQL database.)
  o DBD::Oracle......................Not installed! (optional - Required to connect to a Oracle database.)
  o DBD::Pg..........................ok (v2.19.3)
  o Digest::SHA......................ok (v5.85)
  o Encode::HanExtra.................ok (v0.23)
  o IO::Socket::SSL..................ok (v1.94)
  o JSON::XS.........................ok (v3.01)
  o List::Util::XS...................ok (v1.27)
  o LWP::UserAgent...................ok (v6.26)
  o Mail::IMAPClient.................ok (v3.37)
    o IO::Socket::SSL................ok (v1.94)
    o Authen::SASL...................ok (v2.15)
    o Authen::NTLM...................ok (v1.09)
  o ModPerl::Util....................ok (v2.000010)
  o Net::DNS.........................ok (v0.72)
  o Net::LDAP........................ok (v0.56)
  o Template.........................ok (v2.24)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV_XS.....................ok (v1.00)
  o Time::HiRes......................ok (v1.9725)
  o XML::LibXML......................ok (v2.0018)
  o XML::LibXSLT.....................ok (v1.80)
  o XML::Parser......................ok (v2.41)
  o YAML::XS.........................ok (v0.54)

Configure OTRS using the web installer

Navigate your browser to http://localhost/otrs/ to Configure OTRS using the web installer.

Follow the instruction and input the required information.

1) Welcome Page : This is welcome screen which will shows about the OTRS offices and click on Next to continue.
2) : Hit Accept License and Continue button to move forward to next step.

3) Database Selection : Choose the database that you want to use with OTRS. I’m going to choose MySQL which is advised by OTRS team. Then click the Next button to continue.

4) Validate Database Credentials : Input the Database Credentials and click Check Database settings to validate the given information. If it’s correct information then you should able to see the message stating that Database check successful otherwise you will get error message.

5) Configure Database : If you are able to connect your database in the above steps. Now, it’s time to create a database, database user and password then click on Next to continue.

6) Database Creation: When you click the Next button in the above steps. Instantly it will create a database and grant privileges then shows Database setup successful.

7) System Settings : Enter all the required information on this page and click on Next to continue.

8) Mail Configuration : Enter the Inbound, Outbound and mail server information on this page and click on Next to continue.

9) Setup Completed: Congratulations! you have completed the OTRS installation. It’s time to play on it.

10) Access OTRS : Navigate your browser to http://localhost/otrs/ to access OTRS.

To login as OTRS administrator, use the root@localhost as username and the generated password by OTRS in the above step.

You can start configure the OTRS system to meet your needs.

11) Kick Start OTRS daemon and watchdog : Make sure you have to kick start OTRS daemon and watchdog by the otrs user.

# su - otrs
$ /opt/otrs/bin/ start

Manage the OTRS daemon process.

Daemon started

$ /opt/otrs/bin/ start
(using /opt/otrs) done

After enabled OTRS daemon & watchdog, your output similar to below.



Monitoring tools (Free, commercial, Linux, Windows)



The alerta monitoring system is a tool used to consolidate and de-duplicate alerts from multiple sources for quick ‘at-a-glance’ visualisation. With just one system you can monitor alerts from many other monitoring tools on a single screen.


Get alerted when services go down or metrics go crazy.


Monit is a small Open Source utility for managing and monitoring Unix systems. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.

Performance Monitoring


collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files.


Cacti is a complete frontend to RRDTool, it stores all of the necessary information to create graphs and populate them with data in a MySQL database. The frontend is completely PHP driven. Along with being able to maintain Graphs, Data Sources, and Round Robin Archives in a database, cacti handles the data gathering. There is also SNMP support for those used to creating traffic graphs with MRTG.


Time series data visualization and graphing software.


Ridiculously simple dashboards for your devices.


Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids.


The leading graph and dashboard builder for visualizing time series metrics. Grafana provides a powerful and elegant way to create, explore, and share dashboards and data with your team and the world. Grafana is most commonly used for visualizing time series data for Internet infrastructure and application analytics but many use it in other domains including industrial sensors, home automation, weather, and process control.


A simple, low-overhead web dashboard for Linux.


Observium is a low-maintenance auto-discovering network monitoring platform supporting a wide range of device types, platforms and operating systems including Cisco, Windows, Linux, HP, Juniper, Dell, FreeBSD, Brocade, Netscaler, NetApp and many more. Observium focuses on providing a beautiful and powerful yet simple and intuitive interface to the health and status of your network.


Riemann aggregates events from your servers and applications with a powerful stream processing language. Send an email for every exception in your app. Track the latency distribution of your web app. See the top processes on any host, by memory and CPU. Combine statistics from every Riak node in your cluster and forward to Graphite. Track user activity from second to second.



Safest way to clean up boot partition – Ubuntu 14.04.5 LTS (Trusty Tahr), Ubuntu 16.04.4 LTS (Xenial Xerus) and 18.04 LTS (Bionic Beaver)

Command line method:

First check your kernel version, so you won’t delete the in-use kernel image, running:

uname -r

Now run this command for a list of installed kernels:

dpkg --list 'linux-image*' | grep ^ii

and delete the kernels you don’t want/need anymore by running this:

sudo apt-get remove linux-image-VERSION

Replace VERSION with the version of the kernel you want to remove.

When you’re done removing the older kernels, you can run this to remove ever packages you won’t need anymore:

sudo apt-get autoremove

And finally you can run this to update grub kernel list:

sudo update-grub

How to Manage Docker Containers using Portainer on Ubuntu 16.04 LTS

Portainer is an open-source management UI for Docker, including Docker Swarm environment. Portainer makes it easier for you to manage your Docker containers, it allows you to manage containers, images, networks, and volumes from the web-based Portainer dashboard.

In this tutorial, I will show you step-by-step how to install and configure Portainer on Ubuntu 16.04 LTS. We will install and configure Portainer, deploy the Apps Container, Manage Container, images, network, and volumes for our Docker environment.


  • Ubuntu Server 16.04
  • Root privileges

What we will do

  1. Install Docker on Ubuntu 16.04
  2. Install and Configure Portainer
  3. Deploy Ghost Blog App Container
  4. Docker Environment Management

Step 1 – Install Docker on Ubuntu 16.04 LTS

Before installing docker packages, please update the repository on your system and upgrade packages.

sudo apt update
sudo apt upgrade

Now install docker using the apt command below.

sudo apt install -y

After the installation is complete, start docker service and enable it to launch everytime at system boot.

systemctl start docker
systemctl enable docker

Docker installed on ubuntu 16.04 server, check it using the command below.

docker version

And you will get the docker version 1.x installed on the system.

Install Docker on Ubuntu

Step 2 – Install and Configure Portainer

Portainer can be installed as a docker container and standalone without docker container.

In this tutorial, we will install Portainer as a Docker container. It’s really simple to install and run on any system because we just need to ensure the system support for Docker.

Before installing Portainer, download the Portainer image from the DockerHub using the docker pull command below.

docker pull portainer/portainer

Install Portainer

Now run Portainer using the simple docker command below.

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Portainer is now running as a container, check it using the docker ps command.

docker ps

And you will get the result as below.

Docker ps result

Portainer is now running as a Docker container with the name ‘elatted_hopper’, and it’s running under port 9000.

Next, we will configure the Admin password for the Portainer.

Open your web browser and type the server IP address with port 9000.

You will get the page about the admin user and password configuration.

Portainer UI

Type your strong admin password and click the ‘Create user’ button.

Now we need to define which environment Portainer will connect. Portainer offers support for standalone Docker environment, Docker Swarm, and Swarm mode.

For this guide, we will configure Portainer to connect to the local Docker environment.

Connect Portainer to Docker

Choose the ‘Local’ environment and click ‘Connect’ button.

And now you will see the Portainer Admin Dashboard.

Portainer Admin dashboard

Portainer has been installed as a Docker Container on Ubuntu 16.04.

Step 3 – Deploy New App Container

After the Portianer installation, we will run the Application Container using Portainer.

Click the ‘App Template’ menu.

Now choose the application that you want to install. For this guide, we will install the ‘Ghost’ blog as a Docker Container.

Deploy app container

Click ‘Ghost’.

Type the container name ‘ghost-blog’ and click the ‘Show advanced options’. On the ‘Port mapping’ configuration, type port 80 on the ‘host’.

Create container for Ghost Blog

Now click ‘Deploy the container’ button.

And when it’s complete, you will get the container page as below.

Container details

Ghost is now installed as a Docker Container and it’s using port 80 on the host.

Open your web browser and type the server IP address.

And you will get the ‘Ghost’ blog homepage as below.

Container deployed successfully

Step 4 – Manage Docker Environment Using Portainer

In this step, we will configure Docker Environments such as Docker images, Container, Volumes, and Networks.

Manage Containers

Portainer provides a simple and easy way to use management for Docker Containers.

Click the ‘Containers’ menu on the left and you will get the page as below.

Manage containers with Portainer

We can start, stop, restart, create a new container, access the shell of the container, see the container log, and stats of the container from this Portainer container management.

Shell of the Ghost container:

Access shell of the container

Ghost container logs:

Log files of the container

The container stats:

Statistics of the Docker container

Manage Docker Images

Click the ‘Images’ menu and you will get the page as below.

Manage Docker images

Now we can see the list of docker images on our system, and we can create manually a new docker image, or pull/download new images from the DockerHub repository.

Manage Networks

From this menu, we create new custom networks for our Docker environment. Click the ‘Networks’ menu.

Manage network settings for Docker Containers

Manage Volumes

This menu provides an easy way to create new custom volumes for our container.

We just need to create new custom volumes, and when we want to create new container the application, just attach it to the container through the ‘Advanced options’ menu.

Manage Docker Volumes

Installation and configuration of the Portainer Docker Management UI on Ubuntu 16.04 has been completed successfully.



Top Things To Do After Installing Ubuntu 18.04 Bionic Beaver

The Ubuntu 18.04 LTS (Bionic Beaver) release is just around the corner, so we’ve prepared a list of top things to do after installing it.

Whether you’re new to Ubuntu or a long-time user, there are things you may forget to do after installing a new Ubuntu version. This list tries to cover all users, to help get most things set up so you can enjoy your new Ubuntu 18.04 LTS desktop and customize it to accommodate your needs.

Configure and enhance the Gnome desktop in Ubuntu 18.04 Bionic Beaver

To install all the applications listed in this 2nd step, minus the ones that are not available to install via APT or Snap (like extensions which are available on the Gnome Shell extensions site), use this:

sudo apt install gnome-tweaks gnome-shell-extensions dconf-editor gnome-weather kupfer
snap install communitheme

Ubuntu 18.04 comes with Gnome Shell customized to somewhat mimic the Unity desktop interface. But there are quite a few things you can configure for your own taste, as well as extensions you can install to enhance your Gnome Shell experience.

1. Gnome Tweaks (ex. Gnome Tweak Tool)

Gnome Tweaks

This is a tool for Gnome that gives access to extra settings, like window title bar buttons position, change the mouse acceleration profile, tweak the fonts, change the theme for various parts of the desktop, and manage installed Gnome Shell extensions.To be able to change the Gnome Shell theme, you’ll need the User themes extension, available in the gnome-shell-extensions package (which includes the default Gnome Shell extensions), which you can install by clicking on the button below:After installing it, restart Gnome Shell by pressing Alt + F2, typing r and pressing the Enterkey, and enable the User themes extension using the Gnome Tweaks application.

2. Customize the dock

Ubuntu dock settings

The panel displaying running application icons as well as pinned apps on the left-hand side of the screen, or Ubuntu Dock, can be configured from System Settings > Dock. You’ll find options for enabling or disabling auto hide, setting the icon size, position of the dock on the screen (left, right or bottom), as well as the displays on which the dock should run.

Ubuntu Dconf Dash To Dock settings

For more customization options, like changing the running indicator style, change the hide delay, transparency mode, click actions, and much more, you’ll have to use Dconf Editor (where you’ll have to navigate to org > gnome > shell > extensions > dash-to-dock).

Related: How To Enable Minimize On Click For Ubuntu Dock

3. Install the Ubuntu Communitheme

Ubuntu Communitheme gtk3 widget factory

Ubuntu 18.04 has a new default desktop interface, so probably changing the default theme wasn’t the best idea, as that would be too much for users coming from the previous LTS release (Ubuntu 16.04), but if you want to give your new Ubuntu 18.04 desktop a shiny new look, try the new Communitheme. The theme wasn’t ready in time for the Ubuntu 18.04 Bionic Beaver LTS user interface freeze, so it’s not set as the default theme, but is available to install as a snap.

Communitheme is a new community-crafted theme, especially designed for Ubuntu with Gnome Shell. It includes GTK, Gnome Shell, sound and icon themes, and is available as a separate session.

Ubuntu Communitheme login screen session

You can switch to the new Communitheme theme pack by selecting “Communitheme” from the login screen. A system restart is required for the new Communitheme session to show up in the login screen.

4. A must-have for Android users: GSConnect

GSConnect Ubuntu

If you use an Android device, you can integrate it with your Gnome desktop by using GSConnect. This Gnome Shell extension can sync the clipboard between your desktop and Android device, synchronize notifications, send SMS messages from your desktop, easily transfer files between your desktop and Android device, and much more.

While GSConnect uses the KDE Connect protocol, it doesn’t have any KDE dependencies, so there won’t be any extra packages or startup services to clutter Gnome experience in Ubuntu 18.04.

More about GSConnect here.

Install KDE Connect on Android: Google Play | F-Droid.

5. Get the current weather in the date / time indicator menu

Gnome Weather app time date indicator Ubuntu

Gnome Weather application lets you get a weather forecast, add multiple cities and more, while also displaying the current weather in the date / time Gnome Shell indicator (on the top panel).

You may need to restart your session for the weather to show up in the date / time menu.

To display the current weather on the top panel next to the clock, you can use this extension.

6. Quick app launcher

Before relying on a quick launcher, you should give the Gnome Shell Activities a try.

I for one prefer to use a quick launcher to launch applications because it’s snappier than using the Gnome Shell Activities overview. This is especially the case for those running an older computer.

A quick launcher is useful not only because it’s… quick, but also because it’s extended through plugins, so you can perform various actions directly from its interface.

Kupfer quick launcher

There are quite a few quick launchers out there, and in the Ubuntu Software app you’ll find Synapse and Kupfer. I wanted to use Synapse on my Ubuntu 18.04 desktop but it won’t find any applications, so I used Kupfer instead.

See more about Kupfer here.

After you’ve finished installing it, launch Kupfer and set it to start automatically when you log in to your Ubuntu 18.04 desktop. You can now press Ctrl + Space (configurable in Kupfer’s settings) to activate it, and start typing the name of the application you want to launch, the file you want to find, and so on.

7. Get more Gnome Shell extensions

Gnome Shell can be extended through a multitude of addons which are available on so go check out the official Gnome Extensions website if you haven’t already, and install the extensions you need for your everyday Gnome.

Install your most used applications

Extra Ubuntu apps

Applications below that are available in the Ubuntu Software application (in the repositories or as a snap) have a button or link that you can click to install them on your Ubuntu 18.04 Bionic Beaver Desktop. For those available externally, a download buttons is available instead.

To install all the application listed in this section (you can copy the command and remove those that you won’t want to install), minus the ones that are available to download externally, use these commands:

sudo apt install gnome-tweaks chromium-browser nautilus-dropbox vlc chromium-bcodecs-ffmpeg-extra chromium-chromedriver steam-installer telegram-desktop gimp mypaint pidgin audacious smplayer mpv
snap install skype spotify discord 
snap install atom --classic
snap install slack --classic
snap install sublime-text --classic

1. Choose your browser

Firefox comes installed by default in Ubuntu 18.04 LTS (Bionic Beaver), but it’s not your only choice. If you prefer a Chromium-based (or Chromium itself – click here), download it from their website:


2. Cloud Storage client

Almost everybody uses some cloud service nowadays, with Google Drive, Dropbox and Mega being among the most popular.

  • Google Drive users:

All you need to do is add your Google / Gmail account to Ubuntu’s Online Accounts (Settings > Online Accounts > Google) and you’ll be able to access your Google Drive files directly from the default file manager (Nautilus/Files). As a bonus, by adding your Google account to Online Accounts, you’ll also get integration of various Google services with some Gnome applications, like Calendar, Contacts, Documents, and more.

After adding your Google Account, you’ll be able to access your Google Drive files from the Files application (Nautilus):

Google Drive Nautilus
  • Dropbox users:
  • Mega users: 

MegaSync has an optional Nautilus extension too.

Other popular services include (click to download or install them):

3. Skype or Telegram?

Both Skype and Telegram Desktop are available in Ubuntu Software. Telegram has both deb and snap packages available in Ubuntu Software, while Skype only snap.


4. VLC Media Player

VLC Media Player remains a must-have application, being one of the best video players for any platform, and not just for Linux. Ubuntu 18.04 lets you install VLC 3.0.1 from its repositories:

5. Steam

For your gaming needs, Steam is surely a must. To be able to install Steam, make sure you enable the Canonical Partners repository (in Software & Sources, on the Other Software tab).

6. Spotify

The popular music application, which is available in more than 60 countries, is directly available in Ubuntu Software as a snap package.

Being available as a snap, you can easily change the Spotify version (stable, candidate, beta or edge) by using the Ubuntu Software application.

7. Basic packages

There are a few things that you’re probably going to need sooner or later. These include OpenJRE, support for rar archives, Ubuntu Restricted Extras (which includes MP3 and other audio codecs, Microsoft Web fonts, etc.), and encrypted DVD playback.

To enable encrypted DVD playback, you’ll also need to run this command:

sudo dpkg-reconfigure libdvd-pkg



Other popular applications you might want to install (click to install or download them) in your new Ubuntu 18.04 (Bionic Beaver):

If you haven’t upgraded to Ubuntu 18.04 LTS yet, here’s how to upgrade.

Miss the Nautilus new empty document option? Here’s how to get it back.


Free DNS providers

Google Private and unfiltered. Most popular option.
CloudFlare Private and unfiltered. New player.
Quad9 Private and security aware. New player that blocks access to malicious domains.
OpenDNS Old player that blocks malicious domains and offers the option to block adult content.
Norton DNS Old player that blocks malicious domains and is integrated with their Antivirus.
CleanBrowsing Private and security aware. New player that blocks access to adult content.
Yandex DNS Old player that blocks malicious domains. Very popular in Russia.
Comodo DNS Old player that blocks malicious domains.