Alibaba Sentinel 配置项总结,鉴权配置,配置使用说明

10 篇文章 0 订阅
3 篇文章 0 订阅

 

从 Sentinel 1.5.0 开始,控制台提供通用的鉴权接口 AuthService,用户可根据需求自行实现。

从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel

用户可以通过如下参数进行配置:

  • -Dsentinel.dashboard.auth.username=sentinel 用于指定控制台的登录用户名为 sentinel
  • -Dsentinel.dashboard.auth.password=123456 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel
  • -Dserver.servlet.session.timeout=7200 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;

同样也可以直接在 Spring properties 文件中进行配置。

注意:部署多台控制台时,session 默认不会在各实例之间共享,这一块需要自行改造。

控制台配置项

控制台的一些特性可以通过配置项来进行配置,配置项主要有两个来源:System.getProperty() 和 System.getenv(),同时存在时后者可以覆盖前者。

通过环境变量进行配置时,因为不支持 . 所以需要将其更换为 _

配置项类型默认值最小值描述
auth.enabledbooleantrue-是否开启登录鉴权,仅用于日常测试,生产上不建议关闭
sentinel.dashboard.auth.usernameStringsentinel-登录控制台的用户名,默认为 sentinel
sentinel.dashboard.auth.passwordStringsentinel-登录控制台的密码,默认为 sentinel
sentinel.dashboard.app.hideAppNoMachineMillisInteger060000是否隐藏无健康节点的应用,距离最近一次主机心跳时间的毫秒数,默认关闭
sentinel.dashboard.removeAppNoMachineMillisInteger0120000是否自动删除无健康节点的应用,距离最近一次其下节点的心跳时间毫秒数,默认关闭
sentinel.dashboard.unhealthyMachineMillisInteger6000030000主机失联判定,不可关闭
sentinel.dashboard.autoRemoveMachineMillisInteger0300000距离最近心跳时间超过指定时间是否自动删除失联节点,默认关闭
sentinel.dashboard.unhealthyMachineMillisInteger6000030000主机失联判定,不可关闭
server.servlet.session.cookie.nameStringsentinel_dashboard_cookie-控制台应用的 cookie 名称,可单独设置避免同一域名下 cookie 名冲突

配置示例:

  • 命令行方式:
java -Dsentinel.dashboard.app.hideAppNoMachineMillis=60000
  • Java 方式:
System.setProperty("sentinel.dashboard.app.hideAppNoMachineMillis", "60000");
  • 环境变量方式:
sentinel_dashboard_app_hideAppNoMachineMillis=60000

 

TIPS

本文基于Sentinel 1.6.2编写,未来Sentinel发布新版本后,各位看官可按照本文中的“参考文档”,自行查阅新版本的配置项目。

Spring Cloud Alibaba Sentienl相关配置项

TIPS

参考文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/sentinel.adoc

配置项含义默认值
spring.cloud.sentinel.enabledSentinel自动化配置是否生效true
spring.cloud.sentinel.eager取消Sentinel控制台懒加载false
spring.cloud.sentinel.transport.port应用与Sentinel控制台交互的端口,应用本地会起一个该端口占用的HttpServer8719
spring.cloud.sentinel.transport.dashboardSentinel 控制台地址 
spring.cloud.sentinel.transport.heartbeat-interval-ms应用与Sentinel控制台的心跳间隔时间 
spring.cloud.sentinel.transport.client-ip客户端IP 
spring.cloud.sentinel.filter.orderServlet Filter的加载顺序。Starter内部会构造这个filterInteger.MIN_VALUE
spring.cloud.sentinel.filter.url-patterns数据类型是数组。表示Servlet Filter的url pattern集合/*
spring.cloud.sentinel.filter.enabledEnable to instance CommonFiltertrue
spring.cloud.sentinel.metric.charsetmetric文件字符集UTF-8
spring.cloud.sentinel.metric.file-single-sizeSentinel metric 单个文件的大小 
spring.cloud.sentinel.metric.file-total-countSentinel metric 总文件数量 
spring.cloud.sentinel.log.dirSentinel 日志文件所在的目录 
spring.cloud.sentinel.log.switch-pidSentinel 日志文件名是否需要带上pidfalse
spring.cloud.sentinel.servlet.block-page自定义的跳转 URL,当请求被限流时会自动跳转至设定好的 URL 
spring.cloud.sentinel.flow.cold-factor冷启动因子3

配置说明如下:
System.setProperty("project.name", "sentinel-demo");
System.setProperty("csp.sentinel.dashboard.server", "localhost:8080");

相当于:应用中配置 JVM 启动参数
-Dproject.name=sentinel-demo -Dcsp.sentinel.dashboard.server=localhost:8080

后有之前缓存应用项目时,要控制台中的机器列表去移除无效的 机器。

 

Alibaba Sentinel启动配置项

TIPS

参考文档:https://github.com/alibaba/Sentinel/wiki/启动配置项

sentinel-core 配置项

名称含义类型默认值是否必需备注
project.name指定程序的名称Stringnull 
csp.sentinel.app.type指定程序的类型int0 (APP_TYPE_COMMON)1.6.0 引入
csp.sentinel.metric.file.single.size单个监控文件的大小long52428800 
csp.sentinel.metric.file.total.count监控文件的总数上限int6 
csp.sentinel.log.dirSentinel 日志文件目录String${user.home}/logs/csp/1.3.0 引入
csp.sentinel.log.use.pid日志文件名中是否加入进程号,用于单机部署多个应用的情况booleanfalse1.3.0 引入
csp.sentinel.statistic.max.rt最大的有效响应时长(ms),超出此值则按照此值记录int4900ms1.4.1 引入

其中 project.name 项用于指定应用名(appName)。若未指定,则默认从 sun.java.command 中解析出对应的类名作为应用名。实际项目使用中建议指定应用名

注意:若需要在单台机器上运行相同服务的多个实例,则需要加入 -Dcsp.sentinel.log.use.pid=true 来保证不同实例日志的独立性。

sentinel-transport-common 配置项

名称含义类型默认值是否必需
csp.sentinel.dashboard.server控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:portStringnull
csp.sentinel.heartbeat.interval.ms心跳包发送周期,单位毫秒longnull非必需,若不进行配置,则会从相应的 HeartbeatSender中提取默认值
csp.sentinel.api.port本地启动 HTTP API Server 的端口号intnull是,且不可冲突

使用说明

所有参数均可通过 JVM -D 参数指定。除 project.name 以及日志的配置项(如 csp.sentinel.log.dir)之外,其余参数还可通过 properties 文件指定,路径为 ${user_home}/logs/csp/${project.name}.properties

优先级顺序:JVM -D 参数的优先级最高,若 properties 和 JVM 参数中有相同项的配置,以 JVM -D 参数配置的为准。

 

========================

附上:启动配置项 原文

配置方式

Sentinel 提供如下的配置方式:

  • JVM -D 参数方式
  • properties 文件方式(1.7.0 版本开始支持)

其中,project.name 参数只能通过 JVM -D 参数方式配置(since 1.8.0 取消该限制),其它参数支持所有的配置方式。

优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。

用户可以通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:sentinel.properties)。默认 Sentinel 会尝试从 classpath:sentinel.properties 文件读取配置,读取编码默认为 UTF-8。

注:1.7.0 以下版本可以通过旧的 ${user_home}/logs/csp/${project.name}.properties 配置文件进行配置(除 project.name 和日志相关配置项)。

注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以使用 Spring Cloud Alibaba,通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档

配置项列表

sentinel-core 的配置项

基础配置项

名称含义类型默认值是否必需备注
project.name指定应用的名称Stringnull 
csp.sentinel.app.type指定应用的类型int0 (APP_TYPE_COMMON)1.6.0 引入
csp.sentinel.metric.file.single.size单个监控日志文件的大小long52428800 (50MB) 
csp.sentinel.metric.file.total.count监控日志文件的总数上限int6 
csp.sentinel.statistic.max.rt最大的有效响应时长(ms),超出此值则按照此值记录int49001.4.1 引入
csp.sentinel.spi.classloaderSPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoaderStringdefault若配置 context 则使用 thread context ClassLoader。1.7.0 引入

其中 project.name 项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。实际项目使用中建议手动指定应用名

日志相关配置项

名称含义类型默认值是否必需备注
csp.sentinel.log.dirSentinel 日志文件目录String${user.home}/logs/csp/1.3.0 引入
csp.sentinel.log.use.pid日志文件名中是否加入进程号,用于单机部署多个应用的情况booleanfalse1.3.0 引入
csp.sentinel.log.output.typeRecord 日志输出的类型,file 代表输出至文件,console 代表输出至终端Stringfile1.6.2 引入

注意:若需要在单台机器上运行相同服务的多个实例,则需要加入 -Dcsp.sentinel.log.use.pid=true 来保证不同实例日志的独立性。

sentinel-transport-common 的配置项

名称含义类型默认值是否必需
csp.sentinel.dashboard.server控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:portStringnull
csp.sentinel.heartbeat.interval.ms心跳包发送周期,单位毫秒longnull非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值
csp.sentinel.api.port本地启动 HTTP API Server 的端口号int8719
csp.sentinel.heartbeat.client.ip指定心跳包中本机的 IPString-若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境

注:csp.sentinel.api.port 可不提供,默认为 8719,若端口冲突会自动向下探测可用的端口。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Alibaba Sentinel是一种开放源代码的应用流量控制和防护系统,旨在保护分布式应用免受各种类型的网络攻击和异常流量的影响。它基于规则引擎和实时监控功能,可以识别和阻止恶意请求,确保应用程序的稳定性和安全性。 为了使用Alibaba Sentinel,我们首先需要在控制台上注册并配置。注册过程相对简单,我们需要提供一些基本信息,如邮箱、用户名和密码等。注册后,我们将获得一个独特的Access Key和Secret Key,这对密钥将用于与控制台进行通信。 接下来,我们需要在控制台上配置我们的应用程序。首先,我们需要创建一个应用,为其指定一个唯一的名称和类型。然后,我们可以为这个应用程序定义一系列规则,以识别和控制不同类型的流量。这些规则可以基于流量的来源、目标、协议以及其他各种参数进行定义。 除了自定义规则外,Alibaba Sentinel还提供了一些预置规则,可以帮助我们更快速地保护应用程序。例如,我们可以启用预置的流量限制规则,以限制应用程序的总请求数、并发请求数以及其他相关指标。 在配置完成后,我们可以监控应用程序的流量和性能数据。通过控制台,我们可以实时查看应用程序的流量、响应时间和错误率等指标。此外,我们还可以查看应用程序的实时警报,并根据需要进行调整或处理。 总之,通过Alibaba Sentinel和控制台的注册配置,我们可以实现对应用程序的流量控制和保护。这使得我们能够快速响应各种网络攻击和异常流量,确保应用程序的稳定性和安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值