安装sentry环境
看了很多安装的文档,有从源码安装的,有直接下载docker image的,但是官网都找不到明显的文档,只能找到self-hosted sentry相关信息,就是从下面这个git工程安装的。
根据readme文件操作,需要注意的是,建议在安装过程中就创建一个账号,我这里的情况是在进入站点后没有注册功能,只有个请求加入,然后输入邮箱,试了几种邮箱,都收不到邮件,可能要先配置邮件服务,见下。
然后执行docker compose up -d来启动容器,启动之后,就可以进入localhost:9000看看是否成功,否则自行查看docker logs和百度。
端口设置
在仓库主目录下,.env文件
其中,sentry_bind是绑定端口,直接修改然后docker compose up -d。
邮件服务设置
修改文件,仓库主目录/sentry/config.yml
我这里是用的飞书的邮件服务,其他公司的邮件服务地址需要自行查找。
mail.username和mail.password是发出邮件的账号和密码,mail.from和mail.username一样,就是发出者。
然后重启容器可以到下面这个页面测试配置是否成功,主要就是看邮件服务主机地址,端口,账号,tsl与ssl的值等信息是否正确。
然后飞书就会收到一封邮件。
集成ldap认证
这里也看了很多的博客这些,感觉都没啥用,有些有用,但是不够详细,有些则是老版本的配置。
现在新版的插件是sentry-auth-ldap,有两点需要注意:
- 容器中需要安装这个插件,
- 需要修改sentry目录下的配置文件,官方文档描述详细。
sentry-auth-ldap官方文档:sentry-auth-ldap · PyPI
因为需要在容器中安装插件,但是移除容器之后安装的环境就不在了,所以就需要在原有镜像上构建新的镜像。
-
进入到self-hosted目录
-
新建Dockerfile文件,输入以下内容
FROM getsentry/sentry:nightly # 复制 sources.list 文件到镜像的根目录下 COPY sources.list . # 备份 RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \ # 替换sources.list mv sources.list /etc/apt/ && \ apt-get update && \ apt-get install -y --no-install-recommends build-essential libldap2-dev libsasl2-dev && \ pip install sentry-auth-ldap && \ apt-get purge -y --auto-remove build-essential && \ rm -r /var/lib/apt/lists/* && \ mkdir -p /etc/ldap && echo "TLS_CACERT /etc/ssl/certs/ca-certificates.crt" > /etc/ldap/ldap.conf -
在当前目录新建sources.list,填入下列阿里云的镜像源
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib deb https://mirrors.aliyun.com/debian-security/ bullseye-security main deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib -
然后执行docker build命令执行构建,如果有错,自行百度解决
-
然后修改docker-compose.yml文件中x-sentry-defaults:image值为上步build出来的镜像名
当然,网上很多文档说的修改.env文件中SENTRY_IMAGE字段的值,但是我验证无效,所以直接改的docker-compose.yml文件里面的值。
-
最后需要修改sentry/sentry.conf.py文件,在文件最后加入下面内容,但是注意需要修改的地方
import ldap from django_auth_ldap.config import LDAPSearch, GroupOfUniqueNamesType AUTH_LDAP_SERVER_URI = '{your_ldap_url}' // 需要修改 AUTH_LDAP_BIND_DN = 'cn={your_cn},dc={your_first_dc},dc={your_sencond_dc}' // 需要修改,第一个dc与第二个dc要区分开 AUTH_LDAP_BIND_PASSWORD = '{your_password}' // 需要修改 AUTH_LDAP_USER_SEARCH = LDAPSearch( 'ou=people,dc={your_first_dc},dc={your_sencond_dc}', // 需要修改 ldap.SCOPE_SUBTREE, '(cn=%(user)s)', ) AUTH_LDAP_GROUP_SEARCH = LDAPSearch( '', ldap.SCOPE_SUBTREE, '(objectClass=groupOfUniqueNames)' ) AUTH_LDAP_GROUP_TYPE = GroupOfUniqueNamesType() AUTH_LDAP_REQUIRE_GROUP = None AUTH_LDAP_DENY_GROUP = None AUTH_LDAP_USER_ATTR_MAP = { 'username': 'cn', 'email': 'cn' } AUTH_LDAP_FIND_GROUP_PERMS = True AUTH_LDAP_CACHE_GROUPS = True AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600 AUTH_LDAP_DEFAULT_SENTRY_ORGANIZATION = u'Sentry' AUTH_LDAP_SENTRY_ORGANIZATION_ROLE_TYPE = 'admin' AUTH_LDAP_SENTRY_SUBSCRIBE_BY_DEFAULT = True #AUTH_LDAP_ALWAYS_UPDATE_USER = False AUTH_LDAP_SENTRY_GROUP_ROLE_MAPPING = { 'owner': ['sysadmins'], 'admin': ['devleads'], 'member': [] } AUTH_LDAP_SENTRY_ORGANIZATION_GLOBAL_ACCESS = True AUTH_LDAP_SENTRY_USERNAME_FIELD = 'cn' AUTHENTICATION_BACKENDS = AUTHENTICATION_BACKENDS + ( 'sentry_auth_ldap.backend.SentryLdapBackend', ) import logging logger = logging.getLogger('django_auth_ldap') logger.addHandler(logging.StreamHandler()) logger.setLevel('DEBUG') -
重启web-1容器, 验证是否可以登陆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)