前言
最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。
本篇博客介绍SpringCloud相关组件------nacos和sentinel的安装和配置,并分析了运行内存情况,此外,还有服务器被非法登陆尝试的解决。
其他相关的华为云云耀云服务器L实例评测文章列表如下:
引出
1.SpringCloud相关组件------nacos和sentinel的安装和配置;
2.运行内存情况;
3.服务器被非法登陆尝试的解决;
nacos的安装和配置
什么是nacos?
https://nacos.io/zh-cn/docs/quick-start.html
Nacos(全称为"Naming and Configuration Service")是一个开源的动态服务发现、配置管理和服务管理平台。它由阿里巴巴集团开发并开源,旨在帮助开发者更好地构建和管理微服务架构。
Nacos提供了以下主要功能:
- 服务发现与注册:Nacos充当服务注册中心,微服务可以将自己注册到Nacos,并通过Nacos进行服务发现。Nacos支持多种服务发现方式,包括基于DNS的服务发现、基于HTTP和RPC的服务发现等。
- 配置管理:Nacos提供了统一的配置管理功能,可以将配置信息存储在Nacos中,并动态地获取和更新配置。Nacos支持多种配置格式,包括Properties、YAML、JSON等。
- 动态路由:Nacos可以作为服务网关的动态路由规则的配置中心,可以根据配置的路由规则将请求转发到不同的微服务实例。
- 服务健康监测:Nacos可以对微服务进行健康检查,并提供实时的健康状态信息。当微服务出现故障或不可用时,Nacos可以自动将其从服务注册中心中剔除。
- 集群和高可用:Nacos支持集群部署,可以通过多个Nacos节点实现高可用性和负载均衡。
Nacos提供了丰富的API和控制台界面,使得开发者可以方便地进行服务注册、配置管理和服务发现等操作。它与Spring Cloud、Dubbo等主流的微服务框架集成良好,可以作为微服务架构中的核心组件之一。
Nacos是 Dynamic Naming and Configuration Service首字母简写。一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的"服务"的发现、配置和管理
nacos的安装配置
1.下载上传解压
下载nacos
访问网址: https://github.com/alibaba/nacos/releases?page=2
上传压缩包到云服务器,解压
2.配置nacos的mysql
下载配置文件,数据放到MySQL中
运行sql文件,nacos相关的表格
修改配置文件,配置MySQL的相关数据,application.properties文件。
连接sql数据库的信息
3.修改启动配置
启动方式,设置成单体模式
修改启动模式,mode
4.启动+端口开放+关闭
启动nacos,此时就不需要加命令单例启动了,直接启动即可
启动命令(standalone代表着单机模式运行,非集群模式):sh startup.sh -m standalone
云服务器控制台开放端口
输入设置好的用户名和密码,进行登陆
登陆成功
关闭nacos的命令
java
sh shutdown.sh
sentinel的安装和配置
什么是sentinel?
https://github.com/alibaba/Sentinel/wiki/主页
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。
只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
sentinel的安装配置
1.下载和上传
https://github.com/alibaba/Sentinel/releases
创建文件夹,上传sentinel到云服务器
2.运行命令解释
从 1.6.0 起,sentinel-dashboard 引入基本的登录功能,默认用户名和密码都是 sentinel 。当然也可以通过 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 分钟;
-
-Dserver.port=8840
用于指定 Sentinel 控制台端口为 8840。默认是 8080 。
-
-Dproject.name=sentinel-dashboard
指定 Sentinel 控制台程序的名称。
如果你有多张网卡的话,你还需要指定使用哪张网卡(IP)来接受各个微服务上报的信息:
- -Dcsp.sentinel.heartbeat.client.ip=192.168.xxx.xxx
3.启动+端口开发+关闭
运行命令
java
java -Dserver.port=7777 \
-Dcsp.sentinel.dashboard.server=192.168.111.130:7777 \
-Dproject.name=sentinel-dashboard \
-Dsentinel.dashboard.auth.username=sentinel \
-Dsentinel.dashboard.auth.password=123456 \
-jar sentinel-dashboard-1.8.6.jar
服务器控制台开放端口
输入设置好的用户名和密码进行登陆
登陆成功
关闭sentinel,两种方式
(1)直接在运行页面输入,Ctrl + c;
(2)kill进程,查询进程,kill掉
java
ps -ef | grep sentinel
java
kill -9 19215
内存情况和插曲
内存情况
在运行了mysql容器,以及redis容器后,内存占用了45%
同时启动nacos,sentinel,mysql,redis后,内存吃紧
插曲:当服务器遭遇非法登陆尝试
There were 18 failed login attempts since the last successful login.
又来了
查看尝试非法登陆的ip
java
grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr
禁止这些非法ip进行ssh登陆
java
cat /var/log/secure | grep "Failed password for invalid user" | awk '{print $13}' | sort | uniq -c | sort -n | tail -10 |awk '{print "sshd:"$2":deny"}' >> /etc/hosts.allow
cat /etc/hosts.allow
参考博客:
https://blog.csdn.net/qq_38617531/article/details/125875195
总结
1.SpringCloud相关组件------nacos和sentinel的安装和配置;
2.运行内存情况;
3.服务器被非法登陆尝试的解决;