Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

tCell.io Agent

Project description

tCell Python Agent

A tCell.io security agent that instruments your Python web applications.

Installation

Installing latest agent via pip:

$ pip install tcell_agent

Install a particular version:

$ pip install tcell_agent==1.0.1

Install from source:

$ pip install ~/Downloads/tcellagent_src

Install from a compressed file:

$ pip install ~/Downloads/pythonagent-tcell-master.zip

Run application from source

Switch to your project

$ cd ~/projects/mydjangoapp/

Obtain a tcell_agent.config file from the tCell dashboard and place it at the root of your web app, for this example ~/projects/mydjango/.

NOTE! By default the agent looks for the tcell_agent.config in the current working directory as well as $TCELL_AGENT_HOME/tcell_agent.config.

There are two ways you can load the tcell_agent:

1. Use the tcell_agent binary to run your app

If you previously started your web app like this:

$ python manage.py runserver 0.0.0.0:8000

you now start it like this:

$ tcell_agent run python manage.py runserver 0.0.0.0:8000

2. Load the tcell_agent via a wsgi.py file

Assuming your wsgi.py (Django) file looks something like this:

import os
from django.core.wsgi import get_wsgi_application
from django_waitlist.settings import PROJECT_ROOT

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_waitlist.settings")
application = get_wsgi_application()

modify it accordingly:

import os
from django.core.wsgi import get_wsgi_application
from django_waitlist.settings import PROJECT_ROOT

# optional: change default settings via ENV
# os.environ['TCELL_AGENT_CONFIG'] = '/var/www/html/tcell/tcell_agent.config'
# os.environ['TCELL_AGENT_HOME'] = '/var/www/html/tcell'
import tcell_agent
tcell_agent.init()

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_waitlist.settings")
application = get_wsgi_application()

Run application from service script

Assuming your service script (/etc/init.d/myapp.conf) that looks something like this:

script
    set -a
    source /etc/environment
    exec /path/to/bin/uwsgi --ini uwsgi.ini
end script

load the tcell_agent by modifying it accordingly:

script
    set -a
    source /etc/environment
    export TCELL_AGENT_CONFIG='/path/to/tcell-home/tcell_agent.config'
    export TCELL_AGENT_HOME='/path/to/tcell-home/tcell'
    exec /path/to/bin/tcell_agent /path/to/bin/uwsgi --ini uwsgi.ini
end script

If you don't want to modify your service script, modifying wsgi.py to load the agent should also work.

Common pitfalls

  • If you're using tcell_agent binary, ensure it exists in your path.
  • If you're using virtualenv make sure to load the environment before installing tcell_agent
  • When specifying TCELL_AGENT_HOME ensure the app's user has correct read/write permissions to that directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tcell-agent, version 1.7.0
Filename, size File type Python version Upload date Hashes
Filename, size tcell_agent-1.7.0.tar.gz (15.7 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page