Sentry is a free and open source Python application for error tracking. It can be used to monitor and fix crashes in real time. Sentry alerts you via email and SMS when errors occur or resurface. It can be integrated with a lot of applications including, Bitbucket, GitHub, GitLab, Jira, Trello, Redmine and more.

In this tutorial, we will learn how to setup Sentry with Python on Ubuntu 18.04. 

Requisitos

  • A server running Ubuntu 18.04.
  • A root password setup on your server.

Update Your Server

Before starting, it is recommended to update your packages with the latest version. You can update all your packages with the following command:

# apt-get update -y
# apt-get upgrade -y

Once the system is updated, restart your server to apply all the configuration changes.

Install Required Packages

Next, you will need to install some packages required by Sentry. You can install all of them with the following command:

# apt-get install python build-essential python-setuptools python-dev libxslt1-dev gcc libffi-dev libjpeg-dev libxml2-dev libxslt-dev libyaml-dev libpq-dev python-pip -y

Once all the packages are installed, Download the latest version of Redis with the following command:

# wget http://download.redis.io/releases/redis-4.0.1.tar.gz

After downloading, unzip the downloaded file with the following command:

# tar -xvf redis-4.0.1.tar.gz

Next, change the directory to redis-4.0.1 and install it with the following command:

# cd redis-4.0.1
# make

Next, run the Redis in the background with the following command:

# src/redis-server --daemonize yes

Next, install the Python virtual environment with the following command:

# pip install -U virtualenv

Install and Configure PostgreSQL

By default, the latest version of PostgreSQL is not available in the Ubuntu 18.04 default repository. So, you will need to add the repository for that.

You can do it with the following command:

# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

Next, update the repository and install PostgreSQL with the following command:

# apt-get update -y
# apt-get install postgresql-9.5 -y

Next, log in with Postgres user and enable the citext extension with the following command:

# su - postgres
# psql -d template1 -U postgres
# template1=# create extension citext;

Next, create the database for sentry with the following command:

# createdb sentrydb
# createuser sentry --pwprompt
# psql -d template1 -U postgres

Next, grant all the privileges to Sentry database with the following command:

# template1=# GRANT ALL PRIVILEGES ON DATABASE sentrydb to sentry;
# template1=# ALTER USER sentry WITH SUPERUSER;

Finally, exit from the Postgres with the following command:

# template1=# \q

Install Sentry

First, create a user for Sentry with the following command:

# adduser sentry

Next, login with Sentry user and create a virtual environment for Sentry with the following command:

# su - sentry
virtualenv ~/sentry_app/

Next, activate the virtual environment with the following command:

source ~/sentry_app/bin/activate

Next, install Sentry with the following command:

pip install -U sentry

Next, initialize Sentry with the following command:

sentry init

The above command will create a Sentry configuration file at ~ / .sentry / sentry.conf.py.

Now, open the configuration file ~/.sentry/sentry.conf.py and update the following lines as per your database:

DATABASES = { 
   'default': { 
    'ENGINE': 'sentry.db.postgres', 
    'NAME': 'sentrydb', 
    'USER': 'sentry', 
    'PASSWORD': 'password', 
    'HOST': 'localhost', 
    'PORT': '5432', 
    'AUTOCOMMIT': True, 
    'ATOMIC_REQUESTS': False, 
    } 
  }

Save the file. Then, initialize the database with the following command:

sentry upgrade

Next, exit from the Sentry user with the following command:

exit

Configure Sentry to Run as a Service

Next, you will need to install and configure the Supervisor to start Sentry automatically after system reboot.

First, install the Supervisor with the following command:

# apt-get install supervisor -y

Next, create the Sentry configuration file with the following command:

# nano /etc/supervisor/conf.d/sentry.conf

Add the following lines:

[program:sentry-web] 
directory=/home/sentry/sentry_app/ 
environment=SENTRY_CONF="/home/sentry/.sentry" 
command=/home/sentry/sentry_app/bin/sentry run web 
autostart=true 
autorestart=true
redirect_stderr=true
user=sentry 
stdout_logfile=syslog 
stderr_logfile=syslog
 
[program:sentry-worker] 
directory=/home/sentry/sentry_app/ 
environment=SENTRY_CONF="/home/sentry/.sentry" 
command=/home/sentry/sentry_app/bin/sentry run worker 
autostart=true 
autorestart=true 
redirect_stderr=true 
user=sentry 
stdout_logfile=syslog 
stderr_logfile=syslog
 
[program:sentry-cron] 
directory=/home/sentry/sentry_app/ 
environment=SENTRY_CONF="/home/sentry/.sentry" 
command=/home/sentry/sentry_app/bin/sentry run cron 
autostart=true 
autorestart=true 
redirect_stderr=true 
stdout_logfile=syslog 
stderr_logfile=syslog

Save and close the file. Then, reload Supervisor with the following command:

# supervisorctl reread
# supervisorctl update
# supervisorctl start all

Sentry is now installed and running on port 9000!

You only have to open your web browser and type the URL http://your-server-ip:9000 and complete the setup.