sentry连接mysql不稳定_sentry的安装和使用以及各种问题处理

需要先安装docker 1.10版本以上

假设你已经安装完docker,那么接下来

安装docker-compose

sudo yum install epel-release

sudo yum install-y python-pip

sudo pip install docker-compose

安装git

sudo yum install git

制作本地数据库和sentry的目录配置,用来绑定挂载

sudo mkdir -p data/{sentry,postgres}

克隆sentry项目

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

以下是根据官网给的步骤

docker volume create --name=sentry-data && docker volume create --name=sentry-postgres

创建配置文件

cp -n .env.example .env

执行

docker-compose build

生成key

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

添加到.env的SENTRY_SECRET_KEY里面

创建数据库并且根据提示创建账号

docker-compose run --rm web upgrade

启动

docker-compose up -d

启动成功后可以访问http://localhost:9001

如果创建账号失败:

(1)使用docker命令进入postgres数据库

# docker exec -it onpremise_postgres_1 bash

(2)进入postgres数据库

# psql -h 127.0.0.1 -d postgres -U postgres

(3)查看这两个表是否有数据sentry_project,sentry_organization

postgres=# select * fromsentry_project;

postgres=# select * from sentry_organization ;

如果没有数据,进行创建

(4)新开一个终端,进入sentry的web的shell里面,其实就是一个python端

# docker-compose run --rm web shell

(5)输入以下命令进行初始化数据

fromsentry.models import Projectfromsentry.receivers.core import create_default_projects

create_default_projects([Project])

(6)退出第五步的shell,创建自己的用户

# docker-compose run --rm web createuser

根据提示输入邮箱和密码

如果是发送成功,但是sentry里面看不到日志:

从docker日志查询

docker stop onpremise_worker

docker logs-f --tail 100 onpremise_worker

如果发现是类似这样的错误

1.运行命令进入postgres docker

docker exec -it onpremise_postgres_1 bash

2.进入postgre数据库

psql -h 127.0.0.1 -d postgres -U postgres

3.执行:

create or replace function sentry_increment_project_counter( project bigint, delta int) returns int as $$ declare new_val int; begin loop update sentry_projectcounter set value = value + delta where project_id = project returning value into new_val; if found then return new_val; end if; begin insert into sentry_projectcounter(project_id, value) values (project, delta) returning value into new_val; return new_val; exception when unique_violation then end; end loop; end $$ language plpgsql;

4.ctrl + D退出数据库,exit退出bash

5.重新运行onpremise_worker

安装好以后我们可以用python的raven进行测试:

安装

pip install raven

我们假设DSN是http://2b104bab64a447dab5ade5fbd8cac7b8:bad2a34018ce48ea9437f204384ffd54@192.168.187.134:9000/5

raven test http://2b104bab64a447dab5ade5fbd8cac7b8:bad2a34018ce48ea9437f204384ffd54@192.168.187.134:9000/5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Sentry是一个用于数据访问权限控制的Java库,它基于Apache Sentry项目,可以在Hadoop、Hive等大数据组件中实现细粒度的数据权限控制。以下是Java Sentry使用教程: 1. 安装Sentry服务器:首先需要安装Sentry服务器,可以参考官方文档进行安装。 2. 配置Sentry权限:在Sentry服务器上设置角色和权限,以控制数据的访问。 3. 集成Java Sentry:将Java Sentry库添加到项目中,并在代码中引入Java Sentry相关类和方法。 4. 配置Java Sentry:在代码中设置Java Sentry相关配置,如Sentry服务器地址、用户名、密码等。 5. 实现数据访问控制:在代码中使用Java Sentry提供的API来实现数据的访问控制,如检查用户是否具有数据访问权限、添加用户到指定角色等。 以下是一个示例代码: ```java // 设置Java Sentry配置 SentryConfig sentryConfig = new SentryConfig(); sentryConfig.setSentryServer("sentry-server:8080"); sentryConfig.setUsername("user1"); sentryConfig.setPassword("pwd1"); // 创建Java Sentry客户端 SentryClient sentryClient = SentryClientFactory.create(sentryConfig); // 检查用户是否有访问数据的权限 if (sentryClient.hasAccess("user1", "database1.table1", ActionType.SELECT)) { // 用户有访问权限,执行数据访问操作 Connection conn = DriverManager.getConnection("jdbc:hive2://hive-server:10000/default"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM database1.table1"); // 处理查询结果 } else { // 用户无访问权限,返回错误信息 throw new Exception("User does not have access to database1.table1"); } ``` 通过以上步骤,就可以使用Java Sentry实现数据访问权限控制了。需要注意的是,Java Sentry的具体使用方法和API可能会因版本而异,可以参考官方文档或示例代码进行使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值