Sentinel 安装(打包镜像)

1、概述

Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。
Sentinel 控制台包含如下功能:

  • 查看机器列表以及健康情况收集 Sentinel 客户端发送的心跳包,用于判断机器是否在线。
  • 监控 (单机和集群聚合)通过 Sentinel 客户端暴露的监控 API,定期拉取并且聚合应用监控信息,最终可以实现秒级的实时监控。
  • 规则管理和推送统一管理推送规则。
  • 鉴权生产环境中鉴权非常重要。这里每个开发者需要根据自己的实际情况进行定制。

2、制作镜像

sentinel-dashboard就是一个SpringBoot项目,直接使用命令启动即可,所有自定义配置docker启动。

如果没有特殊需要可以直接下载jar,需要修改源码则下载源码包即可,下载地址:https://github.com/alibaba/Sentinel/releases,下载相应版本的jar包,比如sentinel-dashboard-1.8.1.jar

2.1、创建工作目录:

mkdir /root/docker/sentinel -p

2.1、拷贝文件:

将从官网下载的或者是自定义编译好的jar包,拷贝到/root/docker/sentinel目录下

2.3 、Dockerfile:

vim /root/docker/sentinel/Dockerfile

内容如下:

#java 版本
FROM java:8
##挂载的docker卷
VOLUME /tmp
#前者是要操作的jar包  后者自定义jar包名
ADD *.jar sentinel-dashboard.jar
#定义时区参数
ENV TZ=Asia/Shanghai
#设置时区(安装sentinel的服务器时区要与服务的时区保持一致,不然实时监控数据不展示)
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
#配置启动命令,-D表示设置JVM参数
ENTRYPOINT ["java","-jar","-Dserver.port=8080","-Dcsp.sentinel.dashboard.server=162.14.118.19.175:8080","-Dproject.name=sentinel-dashboard","/sentinel-dashboard.jar"]

2.4、制作镜像:

保证jar和Dockerfile在同一个目录下
在这里插入图片描述
执行命令:

# sentinel-server表示镜像名称
docker build -t sentinel-server .

Sentinel 安装(打包镜像)_第1张图片

3、启动测试

docker run \
--name sentinel-server \
-p 8090:8090 \
--restart=always \
--privileged=true \
-d sentinel-server

访问:
地址:http://ip:8080 ;默认账户密码:sentinel/sentinel

Sentinel 安装(打包镜像)_第2张图片
鉴权:
从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel。该鉴权能力非常基础,生产环境使用建议根据安全需要自行改造。
可以在Dockerfile文件中,通过如下JVM参数进行配置:

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

除了修改JVM启动参数的形式,还是源码中通过application.properties文件进行配置.

4、配置项目说明

控制台的一些特性可以通过配置项来进行配置
Sentinel 安装(打包镜像)_第3张图片
通过JVM方式为:在配置DockerfielENTRYPOINT中加入相应配置就行。
比如:ENTRYPOINT [ "java" ,"-jar","-Dsentinel.dashboard.app.hideAppNoMachineMillis=60000"

5、镜像保存与加载

# 保存iamge到home目录下 iamgeName:需要达成镜像的名称自定义
docker save -o /home/sentinel-server.tar iamgeName(镜像名称自定义,必须小写)

# 仓home目录下导入image
docker load --input /home/sentinel-server.tar

# 测试:
# 1、save成功以后,删除原有images中的sentinel-server
# 2、导入成功后,重新启动容器,并且成功访问

6、遇到的问题

6.1、云服务器搭建sentinel服务端,一直提示连接超时。

机器列表可以检测到客户端信息,但是实时监控簇点链路不显示数据,期间服务器查看sentinel的日志,发现一直报连接失败的错误。

解决方案:
	通过ping客户端的接口,发现客户端所在的服务器不能ping通,导致服务端接收不到客户端的信息。
	至于机器列表可以检测到服务器,说明客户端向服务端是可以正常请求的。
	将sentinel的客户端与服务端存放在一台服务器上,可以正常监控到数据。

6.2、实时监控不展示数据,但是簇点链路显示

可能是客户端服务器与服务端服务器时间不一致,导致数据不展示。可以使用date命令查看当前服务器的时间,进行排查

附:主要内容来源参考ltgsoldier1

你可能感兴趣的:(docker常用安装组件,sentinel,java)