Deploy Sentinel(CentOS)

CentOS 部署 Sentinel

1)官方有提供下载地址,根据需要下载需要的版本,可参考 官方 Wiki

$ mkdir /usr/local/sentinel/{bin,log}
$ wget https://github.com/alibaba/Sentinel/releases/download/1.8.1/sentinel-dashboard-1.8.1.jar

2)启动 Jar 包测试

1
2
3
4
$ java -jar sentinel-dashboard-1.8.1.jar

# 指定参数启动
$ java -Dserver.port=8282 -Dcsp.sentinel.dashboard.server=localhost:8282 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar

控制台启动配置项:

  • -Dserver.port=8080:指定 Sentinel 控制台端口为 8080,可使用 -Dserver.port=新端口 进行设置
  • -Dcsp.sentinel.dashboard.server=localhost:8080:指定控制台地址和端口,会自动向该地址发送心跳包。
  • -Dproject.name=sentinel-dashboard:指定 Sentinel 控制台程序显示的名称
  • -Dcsp.sentinel.log.dir:指定 Sentinel 日志文件目录,默认是:${user.home}/logs/csp/
  • -Dcsp.sentinel.api.port=xxxx:本地的 Sentinel 客户端端口(可选,默认是 8719,有冲突会尝试向后探测) 若启动多个应用,则需要通过 -Dcsp.sentinel.api.port=xxxx 指定客户端监控 API 的端口(默认是 8719)

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

  • -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 分钟;

3)配置开机自启

$ vim /usr/local/sentinel/bin/startup.sh
#!/bin/bash

nohup java -Dserver.port=8282 -Dcsp.sentinel.dashboard.server=localhost:8282 -Dproject.name=sentinel-dashboard -Dcsp.sentinel.log.dir=/usr/local/sentinel/log -jar /usr/local/sentinel/sentinel-dashboard-1.8.1.jar > /usr/local/sentinel/log/sentinel.log 2>&1 &
echo $! > /var/run/sentinel.pid

$ vim /usr/local/sentinel/bin/shutdown.sh
#!/bin/bash

kill -9 `cat /var/run/sentinel.pid`

$ chmod +x startup.sh shutdown.sh
$ vim /usr/lib/systemd/system/sentinel.service
[Unit]
Description=service for sentinel
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java"
ExecStart=/usr/local/sentinel/bin/startup.sh
ExecStop=/usr/local/sentinel/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

$ systemctl daemon-reload && systemctl enable --now sentinel
$ systemctl status sentinel
$ systemctl list-units --type=service