Linux安装Sentinel Dashboard核心是下载校验jar包、配置必要JVM参数(含端口、鉴权、内存限制)、用nohup后台稳定运行,缺一不可;生产环境必须对接Nacos等持久化组件,否则重启丢失规则。

Linux上安装Sentinel Dashboard,核心就三件事:下载jar包、配好JVM参数、后台稳定运行。别直接java -jar完事——生产环境这么干,第二天准会收到告警。
怎么下载并校验sentinel-dashboard.jar
直接用wget从GitHub下载容易因网络中断或版本跳转失败,建议指定完整URL并加-O重命名,避免文件名带特殊字符:
wget -O sentinel-dashboard-1.8.6.jar https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar
下载后务必校验SHA256(官方Release页有哈希值),防止中间篡改:
sha256sum sentinel-dashboard-1.8.6.jar
常见坑:
- 误下错分支(如把
sentinel-core当sentinel-dashboard) - 用
curl没加-L导致302跳转失败,返回HTML而非jar - 没检查磁盘空间,
/tmp目录满导致解压失败(虽然jar可直接运行,但Spring Boot启动时仍需临时解压)
为什么必须用nohup + JVM参数启动
裸跑java -jar在SSH断开后进程立即退出;而nohup只是基础,真正关键的是这几个JVM参数:
-
-Dserver.port=8720:显式指定端口,避免和Nginx、其他Java服务冲突 -
-Dcsp.sentinel.dashboard.server=localhost:8720:客户端上报心跳时依赖该地址,多网卡机器不设这个会连不上 -
-Dsentinel.dashboard.auth.username=admin和-Dsentinel.dashboard.auth.password=Sec@2026:禁用默认弱口令sentinel/sentinel,否则扫描器一扫一个准 -
-Xms512m -Xmx512m:限制堆内存,防止OOM拖垮整台机器
完整命令示例:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
nohup java -Xms512m -Xmx512m -Dserver.port=8720 -Dcsp.sentinel.dashboard.server=localhost:8720 -Dsentinel.dashboard.auth.username=admin -Dsentinel.dashboard.auth.password=Sec@2026 -jar sentinel-dashboard-1.8.6.jar > sentinel.out 2>&1 &
如何验证服务真正在跑,不是假死
光看ps -ef | grep sentinel有进程不够,得确认三点:
- 端口监听:
ss -tlnp | grep :8720,必须看到LISTEN且PID匹配 - 日志无致命错误:
tail -n 20 sentinel.out | grep -i "error\|exception\|failed",重点盯Failed to bind to(端口被占)、Connection refused(csp.sentinel.dashboard.server配错) - HTTP响应正常:
curl -I http://localhost:8720应返回HTTP/1.1 302(重定向到登录页),不是Connection refused或超时
云服务器额外注意:安全组必须放行你设的端口(比如8720),否则浏览器打不开不是程序问题,是网络策略挡的。
怎么写一个靠谱的启停脚本
手动敲命令易错、难维护。一个最小可用脚本要包含:
- 根据jar名自动识别PID(避免
grep java误杀其他进程) - 启动前检查端口是否空闲
- 日志轮转(用
logrotate或脚本内判断文件大小) - 支持
./sentinel.sh start/stop/status语义
关键逻辑片段(非完整脚本):
PID=$(pgrep -f "sentinel-dashboard-1.8.6.jar" | head -n1) if [ -n "$PID" ]; then kill -15 $PID sleep 2 if kill -0 $PID 2>/dev/null; then kill -9 $PID; fi fi
别用killall java——这等于给所有Java进程发“死刑通知单”。
最常被忽略的一点:Sentinel Dashboard本身不存规则,所有流控/熔断配置都存在内存里。重启即丢失。生产环境必须接持久化扩展(如Nacos或Apollo),或者提前导出规则JSON用脚本自动重载——这点文档里轻描淡写,但线上出过太多次“改完规则,运维重启服务,全站限流”的事故。

















