侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Sentry容器化部署

2023-11-22 星期三 / 0 评论 / 0 点赞 / 65 阅读 / 5281 字

软件版本docker-1.12.3sentry-8.14.1postgresql-9.2.18redis-3.2启动一个新的容器用于部署sentrydocker run -it a7109a665e7

软件版本

  • docker-1.12.3
  • sentry-8.14.1
  • postgresql-9.2.18
  • redis-3.2

启动一个新的容器用于部署sentry

docker run -it a7109a665e79 /bin/bash

sentry部署

.

下面关于sentry的安装和配置都是在刚刚开启的容器中进行

.

基础软件安装

yum -y install gcc gcc-c++ autoconf make openssl-devel python-devel libjpeg-turbo-devel

yum -y install postgresql-devel

pip2.7 install sentry #可能出现错误,根据提示逐步安装缺少的库

sentry --version #查看版本

[root@ca3e0e35a0a7 ~]# sentry --versionsentry, version 8.14.1

sentry配置

  • 初始化sentry配置

    [root@ca3e0e35a0a7 /]# sentry init /etc/sentry

    [root@ca3e0e35a0a7 ~]# ll /etc/sentry/

total 8-rw-r--r--. 1 root root 1971 Mar 15 05:16 config.yml-rw-r--r--. 1 root root 3828 Mar 15 05:16 sentry.conf.py

sentry.conf.py文件中修改数据库的配置项和BROKER_URL的配置项数据库配置

DATABASES = {    'default': {        'ENGINE': 'sentry.db.postgres',        'NAME': 'sentry',        'USER': 'sentry',        'PASSWORD': 'pass',        'HOST': '169.24.1.111',        'PORT': '5432',        'AUTOCOMMIT': True,        'ATOMIC_REQUESTS': False,    }}

代理(BROKER_URL)配置

BROKER_URL = 'amqp://sentry:sentry@ip:5672/sentry' #这里使用`rabbitmq`作为消息中间件,也可以使用`redis`ORBROKER_URL = 'redis://ip:6379'

如果redis不是运行在本机的话需要同时修改/etc/sentry/config.yaml文件中的redis的配置

  • 初始化sentry数据库

    sentry --config /etc/sentry upgrade

记住supersuer的用户和密码

  • 设置开机启动和数据定期数据清理
.

这里使用supervisor来进行sentry相关进程的管理,supervisor的安装可以参见网上的文档,supervisor的配置文档如下

.
[supervisord]logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)logfile_backups=10           ; (num of main logfile rotation backups;default 10)loglevel=info                ; (log level;default info; others: debug,warn,trace)pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)nodaemon=true    ;非常重要,因本次是在docker里运行,所以supervisor进程放在前台运行...;新增的3个sentry启动任务[program:sentry_web] command=sentry --config /etc/sentry run web             ; the program (relative uses PATH, can take args)user=sentry                  ; setuid to this UNIX account to run the program[program:sentry_worker]command=sentry --config /etc/sentry run worker             ; the program (relative uses PATH, can take args)user=sentry                  ; setuid to this UNIX account to run the program[program:sentry_cron]command=sentry --config /etc/sentry run cron             ; the program (relative uses PATH, can take args)user=sentry                  ; setuid to this UNIX account to run the program
  • 测试

运行supervisord进程,查看sentry的各个进程是否正常运行

/usr/bin/supervisord -c /etc/supervisor.conf &  #在后台运行

netstat -tunlp|grep 9000 # 如果9000端口在监听表示启动正常

Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      -                                                            [root@ca3e0e35a0a7 /]# 

开启应用

.

经过以上的工作已经完成一个能够运行的sentry的容器,但是因为容器没有将端口暴露在宿主机上,只能在容器内访问sentry的站点,下面的工作是将做好的容器提交为一个镜像后再创建可被外部访问的容器.

.
  • 将容器提交为镜像

    docker commit -m 'sentry image' -a 12860 6efcfd33c0c6 mvn.source.org:9990/sentry:8.14.1

6efcfd33c0c6:对应的容器ID

  • 运行新的容器

    docker run -it -p 9000:9000 -name sentry-8.14.1 58f0f918a119 /usr/bin/supervisord -c /etc/supervisor.conf

97c9fdd90602:对应sentry:8.14.1的镜像ID

  • 查看容器运行状态

    root@docker-center:~ # docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES5c30e214812f        58f0f918a119        "/usr/bin/supervisord"   20 hours ago        Up 20 hours         0.0.0.0:9000->9000/tcp     sentry-8.14.1

广告 广告

评论区