Установка Sentry + Apache + Mysql

Материал из Wiki МИАЦ ВО
Версия от 16:03, 14 апреля 2014; Misha (обсуждение | вклад) (Инициализация конфигурации)
Перейти к навигации Перейти к поиску

Итак начнем. За основу взята статья.

Установка пакетов

Для работы Sentry нужно

  1. Python 2.5, 2.6, or 2.7
  2. python-setuptools, python-dev
  3. База данных (PostgreSQL предпочтительнее, MySQL - тоже работает)
  4. A UNIX-based operating system

Считаем,что mysql уже установлен. Если нет, то читаем и устанавливаем LAMP.
Устанавливаем недостающие пакеты для Python.

sudo apt-get install python-mysqldb python-dev build-essential libmysqlclient-dev python-setuptools

Настройка среды

В первую очередь нам надо поставить пакет Python virtualenv. Если Вы его устанавливали, то пропускаем этот шаг, если нет то устанавливаем:

sudo easy_install -UZ virtualenv

После его установки выбираем место, куда будем устанавливать Sentry с помощью команды virtualenv. Например в папку /var/www/html/sentry/:

sudo virtualenv /var/www/html/sentry/

И активируем virtualenv:

sudo source /var/www/html/sentry/bin/activate

Примечание: Активация среды устанавливает путь для установки с помощью easy_install по умолчанию.

Установка Sentry

Как только вы установили окружение, вы можете установить Sentry и все его зависимости той же командой, который вы указывали установить virtualenv:

easy_install -UZ sentry

Не беспокойтесь за зависимости, которые имеет Sentry. Наша философия - использовать правильные инструменты для работы, а не изобретать их, если они уже существуют.

Использование MySQL or Postgres

Мы очень рекомендуем использовать PostgreSQL Для Вашей базы данных, или MySQL, если у Вас нет другого выбора. По умолчанию используется sqlite. Если Вы используете MySQL, Вы должны использовать InnoDB таблицы.

Базы данных требуют дополнительные пакеты, но Sentry создала мега пакеты, для более простой установки:

# install sentry and its postgresql dependencies
easy_install -UZ sentry[postgres]
# or if you choose, mysql
easy_install -UZ sentry[mysql]

Но Мы будем иcиспользовать Mysql, поэтому дальше все о нем.

Инициализация конфигурации

Создаем конфигурацию по умолчанию. Для этого используем команду init. По умолчанию используется файл ~/.sentry/sentry.conf.py. Мы же будем использовать /etc/sentry.conf.py

# the path is optional
sentry init /etc/sentry.conf.py

Конфигурация для сервера базируется на файле sentry.conf.server, который включает базовую конфигурацию проекта Django. Он включает в себя SQLite, который не полностью поддерживается Sentry и его нельзя использовать на рабочем сервере.
Редактируем файл /etc/sentry.conf.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'sentry',
        'USER': 'sentry_user',
        'PASSWORD': 'passwd_db',
        'HOST': 'localhost',
        'PORT': '',

    }
}

# You MUST configure the absolute URI root for Sentry:
SENTRY_URL_PREFIX = ''  # Оставте пустым.

ALLOWED_HOSTS = ['localhost:9000']

SECRET_KEY = '1234567890asdfghjklnbvc'


SENTRY_WEB_HOST = '0.0.0.0'
SENTRY_WEB_PORT = 9000
SENTRY_WEB_OPTIONS = {
    'workers': 3,  # the number of gunicorn workers
    'limit_request_line': 0,  # required for raven-js
    'secure_scheme_headers': {'X-FORWARDED-PROTO': 'https'},
}

Подключаемся к консоли MySQL под рутом.

$ mysql -u root -p

Создаем базу данных sentry.

mysql> CREATE DATABASE sentry;

Добавляем пользователя sentry_user для новой базы данных. Назначаем ему пароль passwd_db и даем доступ к базе только с самого сервера (localhost).

mysql> GRANT ALL PRIVILEGES ON sentry.* TO sentry_user@localhost IDENTIFIED BY 'passwd_db';