zoukankan      html  css  js  c++  java
  • docker 安装sentry

    主页:https://sentry.io/welcome/

    环境安装

    • 请先安装 Docker 1.10+ ,使用 CE 版本;安装文档,写的很清晰,不详述;因为国内网络环境问题,一般建议 docker 使用中科大的仓库镜像,具体操作请查看中科大镜像使用说明
    • 安装 docker-compose,安装文档

    • $ curl -L --fail https://github.com/docker/compose/releases/download/1.14.0/run.sh > /usr/local/bin/docker-compose
      $ sudo chmod +x /usr/local/bin/docker-compose
    • yum install python-pip
    • pip install docker-compose

    sentry 安装/测试

    找到一个安装目录,当前假定为 /data/sentry,并进入此目录。

    首先拉取配置和构建文件仓库:

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

    然后进入目录仓库目录,默认为 onpremise。

    下一步生成秘钥:

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

    这一步会产生一个秘钥,复制它到 docker-compose.yml 文件的 SENTRY_SECRET_KEY 项,并取消 SENTRY_SECRET_KEY 项的注释,例子如下:

    .....
     # Run `docker-compose run web config generate-secret-key`
     # to get the SENTRY_SECRET_KEY value.
     SENTRY_SECRET_KEY: '*********************'
     SENTRY_MEMCACHED_HOST: memcached
    .....

    然后创建相关数据库和账号:

    docker-compose run --rm web upgrade

    这一步会要求你填写一个账号密码,用于安装完成之后登录后台的管理员账号,请填写并记录。

    最后一步,使用 docker-compose 启动所有容器并提供服务:

    docker-compose up -d

    这时候使用 docker-compose ps 命令可以看到类似如下的容器列表:

            Name                       Command               State           Ports          
    ---------------------------------------------------------------------------------------
    onpremise_base_1        /entrypoint.sh run web           Up      9000/tcp               
    onpremise_cron_1        /entrypoint.sh run cron          Up      9000/tcp               
    onpremise_memcached_1   docker-entrypoint.sh memcached   Up      11211/tcp              
    onpremise_postgres_1    docker-entrypoint.sh postgres    Up      5432/tcp               
    onpremise_redis_1       docker-entrypoint.sh redis ...   Up      6379/tcp               
    onpremise_smtp_1        entrypoint.sh tini -- exim ...   Up      25/tcp                 
    onpremise_web_1         /entrypoint.sh run web           Up      0.0.0.0:9000->9000/tcp 
    onpremise_worker_1      /entrypoint.sh run worker        Up      9000/tcp

    并使用浏览器访问 {ip}:9000,使用开始自己填写的管理员账号就可以登录后台。

    其他

    • 如果需要改变主机服务端口,只需要修改 docker-compose.yml 文件的 web 容器配置,如改为本机的 8888 端口提供服务:

        web:
          extends: base
          links:
            - redis
            - postgres
            - memcached
            - smtp
          ports:
            - '8888:9000'
    • 可以按照需求将整个服务在 systemd 管理,docker-compose 的其他相关命令如下:

      docker-compose up     # 创建并启动容器,容器没有创建无法启动,同时最好用 -d 参数在后台启动
      docker-compose stop  # 停止服务
      docker-compose start  # 启动服务,需要用 up 创建容器并停止之后

    修改了配置文件应用到docker镜像中:

    修改sentry.conf.py,比如添加smtp配置:

    SENTRY_OPTIONS['mail.backend'] = 'smtp'
    SENTRY_OPTIONS['mail.host'] = 'smtp.***.com'
    SENTRY_OPTIONS['mail.password'] = '*******'
    SENTRY_OPTIONS['mail.username'] = 'sentry@**.com'
    SENTRY_OPTIONS['mail.port'] = 25
    SENTRY_OPTIONS['mail.use-tls'] = False

    然后

    docker-compose down(关闭删除容器)
    docker-compose build (重新编译镜像)
    make build (拷贝配置文件,可以不需要)
    docker-compose up -d  (运行)

    这样就ok了
    有时候docker-compose down会报错,比如下面的:
    ERROR: for onpremise_worker_1  driver "overlay" failed to remove root filesystem for 7846d51c3f6d1d19707b11bdd4b4d62065dae510c0007474ba585c241e38f37c: remove /var/lib/docker/overlay/65acac6ab4327668839eb7236b18045a48b8ba9c165a133ba851581fbf651177/merged: device or resource busy

    这里可以重启docker 还不行的发直接找到报错的容器id
    find / -name "7846d51c3f6d1d19707b11bdd4b4d62065dae510c0007474ba585c241e38f37c"
    删除相关的目录,重新按照上面步骤就行了

    补充:centos防火墙使用firewalld,直接关闭firewalld docker会启动报错,所以这里配置firewalld规则:
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" port protocol="tcp" port="9000" accept"
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="需要访问的ip" accept"
    firewall-cmd --permanent --zone=trusted --change-interface=docker0
    firewall-cmd --permanent --zone=trusted --add-port=9000/tcp
    firewall-cmd --add-port=9000/tcp --permanent
    这些规则根据自己需要来配置,我做个记录


  • 相关阅读:
    上传并压缩图片
    C#使用一般处理程序(ashx)中session
    cookie记住用户名密码
    操作数组
    鼠标滚轮事件兼容写法
    table嵌套table,jquery获取tr个数
    网站性能调优实战-学相伴KuangStudy
    为什么fdisk分区第一个分区以63或者2048扇区开始?
    oracle分组查询,获取组内所有信息(拼接显式)
    oracle中对象类型搜集(object type)
  • 原文地址:https://www.cnblogs.com/mikeluwen/p/7248936.html
Copyright © 2011-2022 走看看