Docker 远程服务入侵挖矿病毒
登陆服务器的时候,突然发现 cpu 利用率爆表。
查看后台进程信息查看一下进程:
top -c
发现 /tmp/kdevtmpfsi 占据了 170% 的 CPU 资源。
百度一下之后,发现它是一个挖矿病毒。以及它还有一个叫 kinsing 的守护进程:
## 查询病毒的PID及其文件路径
ps -ef | grep kinsing
## 查询病毒的PID及其文件路径
ps -ef | grep kdevtmpfsi
隐藏进程侦查使用 unhide 扫描安装:
yum -y install unhide
暴力扫描隐藏进程:
unhide checkbrute
查看文件权限使用 lsattr 查看文件权限:
lsattr xmrigMiner
修改文件权限使用 chattr 更改文件权限:
chattr xmrigMiner
删除文件:rm -rf xmrigMiner
chattr 权限 格式: charrt [+ - =] [ 选项 ] 文件或目录名
+ 增加权限
- 删除权限
= 赋予权限
i : 对文件设置 i 属性 ...
Mysql8 Linux 安装
Linux 卸载 Mysql首先查询是否安装 Mysql1rpm -qa | grep -i mysql
如果查询出有别的版本的话,使用命令将其删除。
1rpm -e mysql-community-common-8.0.31-1.el7.x86_64.rpm
关闭 Mysql 服务查看 MySQL 服务运行状态:
1systemctl status mysqld
关闭 Mysql 服务:
1systemctl stop mysqld
使用查找命令查看 Mysql 对应文件:
1find / -name mysql
卸载并删除 Mysql 安装的全部组键服务:
1rm -rf /var/lib/mysql/mysql
卸载全部组件,清空 Mysql 相关的的所有目录以及文件。
Linux 安装 Mysql首先下载 Mysql 的 rpm 包官方下载地址:
https://downloads.mysql.com/archives/community/
选择下图中的版本:下载如下图中的四个包:下载完成后你的本地就会拥有下面几个包:
mysql-community-lib ...
Nacos
Nacos 简介nacos 是 spring cloud alibaba 生态中非常重要的一个组件,作用:
注册与发现中心
配置中心
服务管理
基本特性:
服务发现
动态配置
动态 DNS 服务
服务及元数据管理
cap 理论在分布式系统中一致性 (consistency),可用性 (availability),分区容错性 (partition tolerance) 三者不可兼得
C (consistency): 一致性,同一时刻的同一请求的实例返回结果相同,属于强一致性性,也就是说,在集群环境中,对外提供的服务信息是完全一致的,但是在效率上面可能会有一定的损耗;
A (availability): 可用性,所有实例的读写请求在一定的时间内可以得到正确的响应,它是弱一致性,可能在极短的时间内,不同实例获取到的信息是不一致的,但是服务可用并且最终数据是一致的;
P (Partition tolerance): 分区容错性,在网络异常的情况下,仍旧能够提供正常的响应,这是在微服务系统中必须要保证的;
因为 P 是分布式服务中必须要保证的,那么现在就是 CP 和 AP 的组合。
...
Spring Cloud Alibaba
Spring Cloud Alibaba 介绍Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服 务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托 Spring Cloud Alibaba ,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接 入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
Spring Cloud Alibaba 优势:
有中文文档
没有另起炉灶,可以更方便的集成到现有的项目中
阿里本身在高并发、高性能上面的经验,使我们有理由相信这些组件足够的可靠
spring cloud 中的几乎所有的组件都使用 Netflix 公司的产品,然后在其基础上做了一层封装。然而 Netflix 的服务发现组件 Eureka 已经停止更新,在使用过程中也存在着细小的问题;由此他的替代产品,也就是 spring cloud alibaba,目前正处于蓬勃发展的态式。
Spring Cloud Alibaba 主要功能
服务限流 ...
Spring Cloud Stream
Spring Cloud Stream 概念Spring Cloud Stream 作为用来构建消息驱动的微服务。
Spring Cloud Stream 中,提供了一个微服务和消息中间件之间的一个粘合剂,这个粘合剂叫做 Binder,Binder 负责与消息中间件进行交互。而我们开发者则通过 inputs 或者 outputs 这样的消息通道与 Binder 进行交互。
默认消息通道:Hello,stream。
首先创建一个 Spring Cloud Stream 项目,在其中添加三个依赖:web、rabbitmq、cloud stream。
项目创建成功后,添加 RabbitMQ 的基本配置信息。
接下来,创建一个简单的消息接收器 MsgReceiver。
单启动 stream 项目,然后在 rabbitmq 后台管理页面发送一条测试消息。 http://localhost:15672/ Queues -> Queue input.anonymous.cgUOBnM6Qc-Ek7paO3zPKA -> Publish message -> Payloa ...
Spring Cloud Config
分布式配置中心解决方案国内:
360: QConf
淘宝:diamond
百度:disconf
国外:
Apache Commons Configuration
owner
cfg4j
但是都不如 Spring Cloud Config 强大,因为它与 Spring 家族融合最好。
Spring Cloud Config 简介Spring Cloud Config 是一个分布式系统配置管理的解决方案。它包含了 Client 和 Server。配置文件放在 Server 端,通过接口的形式提供给 Client。
Spring Cloud Config 主要功能:
集中管理各个环境、各个微服务的配置文件
提供服务端和客户端的支持
配置文件修改后,可以快速生效
配置文件通过 Git/SVn 进行管理,天然支持版本回退功能
支持高并发查询、同时支持多种开发语言
Spring Cloud Config 学习Spring Cloud Config 准备工作准备工作主要是给 Github 上提交数据。
首先在本地创建好相应的配置文件,我们在本地新建 ...
Spring Cloud Gateway
Spring Cloud Gateway 特点
限流
路径重写
动态路由
集成 Spring Cloud DiscoveryClient
集成 Hystrix 断路器
Spring Cloud Gateway 和 Zuul 对比
Zuul 是 Netflix 公司的开源产品,而 Spring Cloud Gateway 是 Spring 家族中的产品,可以和 Spring 家族中的其他组件更好的融合。
Zuul1 不支持长连接,而 Spring Cloud Gateway 支持。例如 websocket。(Zuul 通常指的是 Zuul1 版本)
Spring Cloud Gateway 支持限流。而 zuul 中没有自带限流。
Zuul1 是基于 servlet 框架构建的,采用阻塞、多线程的方式,一个线程处理一次连接请求,这种请求方式在内部延迟严重,如果在故障较多的情况下,会引起存活的连接增多和线程增加,处理效率会低一些。
而 Spring Cloud Gateway 是基于 Netty 来开发,实现异步和非阻塞,占用资源更小,性能方面更加有优势,强于 zuul ...
Zuul
Zuul 是 Netflix 公司提供的一种网关服务。
zuul 的功能:
权限控制,可以做认证和授权
监控
动态路由
负载均衡
静态资源处理
Zuul 中的功能基本上都是基于过滤器来实现的,它的过滤器有几种不同的类型:
PRE
ROUTING
POST
ERROR
Hello,Zuul
首先创建一个 spring boot 项目,添加 zuul 依赖。
在 application.yml 中配置,注册到 eureka 中。
在启动类上添加启动注解 @EnableZuulProxy // 开启网关代理。
启动 eureka,provider,zuul 服务
请求代理测试访问:localhost:2020/provider/hello,在这个地址中,provider 就是要访问的服务名称,/hello 就是访问的服务接口。
zuul 路由规则自定义123456## 自定义 zuul 路由规则zuul: routes: sihai-a: path: /sihai-a/** ...
分布式全局ID生成策略
Java生成主键ID当数据库进行分库分表的时候, 原有的主键自增就会不方便继续使用了, 这个时候我们就可以用Java代码来处理主键, 然后插入到数据库中
UUID最容易让人想到的就是UUID(Universally Unique Identifier)通用唯一标识符.UUID的标准型式包括了32个16进制的数字, 以连字号分为五段, 形式为8-4-4-4-12的36个字符, 这个是Java自带的, 使用方便简单.UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得).
优点:本地生成, 没有网络消耗
缺点
字符串太长, mysql官方明确建议主键要尽量越短越好
UUID的随机性对于 I/O密集型的应用非常不友好, 它会使得聚簇索引的插入变得完全随机, 使得数据没有任何 ...
Spring Boot整合Thymeleaf
虽然现在慢慢在流行前后端分离开发, 但是也有公司在做前后端不分离的开发, 而在前后端不分离的开发中, 我们就会需要用到后端页面模板, 可实际上, 即使是前后端分离开发, 也会有一些场景下需要使用页面模板, 例如邮件发送模板.现在的SpringBoot页面模板主要支持Thymeleaf和Freemarker.
Thymeleaf简介Thymeleaf是新一代Java模板引擎, 它类似于Velocity、FreeMarker等传统Java模板引擎, 但是与传统Java模板引擎不同的是, Thymeleaf支持Html原型.它既可以让前端在浏览器中直接打开查看样式, 也可以让后端结合真实数据查看显示效果, 同时 Spring Boot提供了 Thymeleaf自动化配置解决方案, 因此在Spring Boot中使用 Thymeleaf非常方便.Thymeleaf除了展示基本的 HTML进行页面渲染之外, 还可以作为一个 HTML片段进行渲染, 例如做邮件发送时, 可以使用 Thymeleaf作为邮件发送模板.另外, Thymeleaf模板后缀为 .html, 可以直接被浏览器打开, 浏览非常 ...