Создайте частную службу внешнего мониторинга: sentry

внешний интерфейс GitHub Docker Nginx
Создайте частную службу внешнего мониторинга: sentry

Я написал статью в конце прошлого годаПростой и полный опыт работы с сервисом sourcemap от sentry, полностью зависит от уровня использования.Поскольку есть необходимость построить часовой самостоятельно, разберитесь в процессе строительства

Версия

8.22.0 Обратитесь к выпуску github

Как построить

Официально рекомендуемый метод — использовать Docker, здесь мы используем Docker в качестве примера.

Предварительная подготовка

На daocloud есть туториалы, проверьте сами

$ docker --version
Docker version 18.05.0-ce, build f150324
$ docker-compose --version
docker-compose version 1.21.2, build a133471

Строительные шаги

Вытащитьonpremise

onpremise — это официальная программа начальной загрузки, которая содержит все зависимости, необходимые для построения сентри.

$ git clone https://github.com/getsentry/onpremise.git

Перейдите в локальную среду и создайте новую локальную базу данных и каталог конфигурации sentry.

$ cd onpremise
$ mkdir -p data/{sentry,postgres}

Это нужно объяснить, я не выполнил этот шаг в начале, хотя программа создаст эти каталоги для нас в процессе сборки, однако произошел ряд последующих проблем с вылетом, таких какThere was an error loading data, также будет связано с этим.

генерироватьsecret key

$ docker-compose run --rm web config generate-secret-key

Это выведет в терминал

Starting onpremise_redis_1     ... done
Starting onpremise_postgres_1  ... done
Starting onpremise_memcached_1 ... done
xxx+5%xxxxxxx!!xxxxxxxx&6(xxxxxxx%xoml)xxxxxxxxxx

Скопируйте ключ (т.е. последнюю строку) в docker-compose.ymlSENTRY_SECRET_KEYсоответствующее значение

Обновите конфигурацию и создайте Super User

$ docker-compose run --rm web upgrade

Нормально, появится терминал

...
Would you like to create a user account now...
...

Просто печатай нормально

При развёртывании на linux-машину была ситуация, когда этот шаг вообще не выполнялся, поэтому я решил начать всё заново, к счастью, на этом проблема остановилась.

Конфигурация почты

В отличии от Китая, многие приложения поддерживают способ регистрации с выбором одной почты и мобильного телефона, а sentry, без функции почты, как бы кастрирован и бесполезен.

В локальном корневом каталоге находится файл конфигурации config.yml, который определяет некоторые общие настройки, включая метод настройки почты.

# Use dummy if you want to disable email entirely
mail.backend: 'smtp'
mail.host: 'smtp.qq.com'
mail.port: 587
mail.username: '123@qq.com'
# 邮箱授权码, 非邮箱密码
mail.password: '123'
mail.use-tls: true
# The email address to send on behalf of
mail.from: '123@qq.com'
# 请保持与域名严格一致
mail.list-namespace: 'sentry.yourdomain.com'

Кроме вышеперечисленных примечаний, есть:

  • Сначала я попробовал почтовый ящик 163, но я не мог отправлять электронные письма, и он показывал тайм-аут, поэтому я переключился на QQ, но не знаю почему.
  • Максимально используйте номер порта при использовании почтового ящика QQ.587, При использовании 465 будут какие-то странные проблемы. Sentry поддерживает только tls вместо ssh, поэтому попробуйте изменить порт на 587

запустить службу

$ docker-compose up -d

Если не случайно, то все нормально, порт по умолчанию9000, локальные слова можно открывать напрямуюlocalhost:9000доступ

Настройте http(s) с помощью nginx

Также на официальном сайтеСвязанные инструкции

Настройте https, чтобы не игнорировать модификацию конца документаsentry.conf.py

import os
import os.path

# 添加变量
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

Опубликуйте мою конфигурацию nginx для https

sentry.conf

server {
    listen 80;
    server_name sentry.yourdomain.com www.sentry.yourdomain.com;
    location / {
        if ($request_method = GET) {
            rewrite  ^ https://$host$request_uri? permanent;
        }
        return 405;
    }
    access_log /home/wwwlogs/sentry_yourdomain.log main;
}
server {
    listen 443;
    ssl on;
    ssl_certificate      /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key  /etc/nginx/ssl/yourdomain.key;

    proxy_set_header   Host                 $http_host;
    proxy_set_header   X-Forwarded-Proto    $scheme;
    proxy_set_header   X-Forwarded-For      $remote_addr;
    proxy_redirect     off;

    # keepalive + raven.js is a disaster
    keepalive_timeout 0;

    location / {
	proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://localhost:9000;
        add_header Strict-Transport-Security "max-age=31536000";
    }


    access_log /home/wwwlogs/sentry_yourdomain.log main;
}

Доступ и настройка

Войти с учетной записью суперпользователя

В первый раз вам необходимо настроить корневой URL-адрес и другую информацию, где корневой URL-адрес заполненhttps://sentry.yourdomain.comХорошо, не заполняйте что-то вродеhttps://sentry.yourdomain.com/Это кажется недружественным для таких операций, как переходы по щелчку мыши из электронной почты.

Подтвердить электронную почту

Для внутреннего использования внутри команды можно использовать механизм приглашения по электронной почте!!!!

В сочетании со статьями стали вводитьПростой и полный опыт работы с сервисом sourcemap от sentry, вы можете испытать острые ощущения от сборки и использования часового самостоятельно !!!!