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
這些規則根據自己需要來配置,我做個記錄

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM