华为云用户手册

  • 大Key和热Key的影响 类别 影响 大Key 造成规格变更失败。 Redis集群变更规格过程中会进行数据rebalance(节点间迁移数据),单个Key过大的时候会触发Redis内核对于单Key的迁移限制,造成数据迁移超时失败,Key越大失败的概率越高,大于512MB的Key可能会触发该问题。 造成数据迁移失败。 数据迁移过程中,如果一个大Key的元素过多,则会阻塞后续Key的迁移,后续Key的数据会放到迁移机的内存Buffer中,如果阻塞时间太久,则会导致迁移失败。 容易造成集群分片不均的情况。 各分片内存使用不均。例如某个分片占用内存较高甚至首先使用满,导致该分片Key被逐出,同时也会造成其他分片的资源浪费。 各分片的带宽使用不均。例如某个分片被频繁流控,其他分片则没有这种情况。 客户端执行命令的时延变大。 对大Key进行的慢操作会导致后续的命令被阻塞,从而导致一系列慢查询。 导致实例流控。 对大Key高频率的读会使得实例出方向带宽被打满,导致流控,产生大量命令超时或者慢查询,业务受损。 导致主备倒换。 对大Key执行危险的DEL操作可能会导致主节点长时间阻塞,从而导致主备倒换。 热Key 容易造成集群分片不均的情况。 造成热Key所在的分片有大量业务访问而同时其他的分片压力较低。这样不仅会容易产生单分片性能瓶颈,还会浪费其他分片的计算资源。 使得CPU冲高。 对热Key的大量操作可能会使得CPU冲高,如果表现在集群单分片中就可以明显地看到热Key所在的分片CPU使用率较高。这样会导致其他请求受到影响,产生慢查询,同时影响整体性能。业务量突增场景下甚至会导致主备切换。 易造成缓存击穿。 热Key的请求压力过大,超出Redis的承受能力易造成缓存击穿,即大量请求将被直接指向后端的数据库,导致数据库访问量激增甚至宕机,从而影响其他业务。 对于如何避免产生大Key和热Key,需要在业务设计阶段就考虑。参考Redis使用规范。
  • 大Key和热Key的定义 名词 定义 大Key 大Key可以分为两种情况: Key的Value较大。一般单个String类型的Key大小达到10KB,或者集合类型的Key总大小达到50MB,则定义其为大Key。 Key的元素较多。一般定义集合类型的Key中元素超过5000个,则认为其为大Key。 热Key 通常以一个Key被操作的频率和占用的资源来判定其是否为热Key,例如: 某个集群实例一个分片每秒处理10000次请求,其中有3000次都是操作同一个Key。 某个集群实例一个分片的总带宽使用(入带宽+出带宽)为100Mbits/s,其中80Mbits是由于对某个Hash类型的Key执行HGETALL所占用。 说明:大Key和热Key场景较多,没有非常明确的边界,需要根据实际业务判断。
  • 运行结果 编译并运行以上Demo程序,结果如下: 商品热销排行榜 产品ID: product-b290c0d4-e919-4266-8eb5-7ab84b19862d, 销量: 18433 产品ID: product-e61a0642-d34f-46f4-a720-ee35940a5e7f, 销量: 18334 产品ID: product-ceeab7c3-69a7-4994-afc6-41b7bc463d44, 销量: 18196 产品ID: product-f2bdc549-8b3e-4db1-8cd4-a2ddef4f5d97, 销量: 17870 产品ID: product-f50ca2de-7fa4-45a3-bf32-23d34ac15a41, 销量: 17842 产品ID: product-d0c364e0-66ec-48a8-9ac9-4fb58adfd033, 销量: 17782 产品ID: product-5e406bbf-47c7-44a9-965e-e1e9b62ed1cc, 销量: 17093 产品ID: product-0c4d31ee-bb15-4c88-b319-a69f74e3c493, 销量: 16432 产品ID: product-a986e3a4-4023-4e00-8104-db97e459f958, 销量: 16380 产品ID: product-a3ac9738-bed2-4a9c-b96a-d8511ae7f03a, 销量: 15305 产品ID: product-6b8ad4b7-e134-480f-b3ae-3d35d242cb53, 销量: 14534 产品ID: product-26a9b41b-96b1-4de0-932b-f78d95d55b2d, 销量: 11417 产品ID: product-1f043255-a1f9-40a0-b48b-f40a81d07e0e, 销量: 10875 产品ID: product-c8fee24c-d601-4e0e-9d18-046a65e59835, 销量: 10521 产品ID: product-5869622b-1894-4702-b750-d76ff4b29163, 销量: 10271 产品ID: product-ff0317d2-d7be-4021-9d25-1f997d622768, 销量: 9909 产品ID: product-da254e81-6dec-4c76-928d-9a879a11ed8d, 销量: 9504 产品ID: product-fa976c02-b175-4e82-b53a-8c0df96fe877, 销量: 8630 产品ID: product-0624a180-4914-46b9-84d0-9dfbbdaa0da2, 销量: 8405 产品ID: product-d0079955-eaea-47b2-845f-5ff05a110a70, 销量: 7930 产品ID: product-a53145ef-1db9-4c4d-a029-9324e7f728fe, 销量: 7429 产品ID: product-9b1a1fd1-7c3b-4ae8-9fd3-ab6a0bf71cae, 销量: 5944 产品ID: product-cf894aee-c1cb-425e-a644-87ff06485eb7, 销量: 5252 产品ID: product-8bd78ba8-f2c4-4e5e-b393-60aa738eceae, 销量: 4903 产品ID: product-89b64402-c624-4cf1-8532-ae1b4ec4cabc, 销量: 4527 产品ID: product-98b85168-9226-43d9-b3cf-ef84e1c3d75f, 销量: 3095 产品ID: product-0dda314f-22a7-464b-ab8c-2f8f00823a39, 销量: 2425 产品ID: product-de7eb085-9435-4924-b6fa-9e9fe552d5a7, 销量: 1694 产品ID: product-9beadc07-aab0-438c-ac5e-bcc72b9d9c36, 销量: 1135 产品ID: product-43834316-4aca-4fb2-8d2d-c768513015c5, 销量: 256 商品热销排行榜 前五大热销产品 产品ID: product-b290c0d4-e919-4266-8eb5-7ab84b19862d, 销量: 18433 产品ID: product-e61a0642-d34f-46f4-a720-ee35940a5e7f, 销量: 18334 产品ID: product-ceeab7c3-69a7-4994-afc6-41b7bc463d44, 销量: 18196 产品ID: product-f2bdc549-8b3e-4db1-8cd4-a2ddef4f5d97, 销量: 17870 产品ID: product-f50ca2de-7fa4-45a3-bf32-23d34ac15a41, 销量: 17842
  • 前提条件 准备以下实例资源: 创建VPC和子网,例如vpc-test。创建方式请参考创建虚拟私有云和子网。 (可选)建议创建2个子网,将DCS实例放到一个子网,CCE集群放到另一个子网,方便管理。 创建DCS实例,例如dcs-test。创建方式请参考购买Redis实例。 创建的DCS实例时,“虚拟私有云”请选择所创建的VPC(vpc-test)及其子网1。 创建CCE集群,例如cce-test。创建方式请参考购买CCE集群。 创建CCE集群时,“网络模型”请选择“VPC网络";“虚拟私有云”和“子网”请选择所创建的VPC(vpc-test)及其子网2。 创建CCE节点池,例如cce-test-nodepool。创建方式请参考创建节点池。 创建CCE节点池时,“节点类型”请选择“弹性云服务器-虚拟机”,“容器引擎”请选择“Docker”,“操作系统”请选择“CentOS 7.6”,并需要绑定“弹性公网IP”,选择“使用已有”或“自动创建”。
  • 制作客户端镜像 下载Redis客户端。 登录CCE集群节点。 单击创建完成的CCE节点池名称,进入CCE节点池,单击右上角的“远程登录”。 执行gcc --version检查操作系统是否安装了用于编译Redis程序的GCC编译器。如下图,表示已经安装了GCC编译器。 如未安装GCC编译器,请使用以下命令安装GCC编译器。 yum -y install gcc yum -y install gcc-c++ 执行以下命令,在home目录下创建redis目录,并进入该目录。 cd /home && mkdir redis && cd redis 执行以下命令下载Redis客户端。此处以下载5.0.13版本的客户端为例。 wget https://download.redis.io/releases/redis-5.0.13.tar.gz 解压Redis,进入Redis目录,执行编译命令后返回redis目录。 tar xvzf redis-5.0.13.tar.gz cd redis-5.0.13 && make redis-cli cd .. 创建Dockerfile。 使用vim Dockerfile命令创建Dockerfile,并填写以下信息。 FROM centos:7 RUN useradd -d /home/redis -m redis COPY ./redis-5.0.13 /home/redis/redis-5.0.13 RUN chown redis:redis /home/redis/redis-5.0.13 -R USER redis ENV HW_HOME=/home/redis/redis-5.0.13 ENV PATH=$HW_HOME/src:$PATH WORKDIR /home/redis/ 按下Esc键退出编辑模式,执行:wq!保存配置并退出编辑界面。 构建客户端镜像。 在控制台的服务列表中选择“容器镜像服务 SWR”,进入容器镜像服务总览页。 单击右上角“创建组织”,输入组织名称,新建一个组织。也可以使用已有的组织(单击左侧“组织管理”可查看已有组织。) 在SWR总览页单击右上角“登录指令”获取登录指令,复制登录指令。(登录指令结尾的swr.xxxxxx.com为镜像仓库地址。) 图1 获取登录指令 使用复制的登录指令在CCE节点中执行,登录SWR。 图2 登录SWR 执行以下命令构建镜像。 docker build -t {Image repository address}/{Organization name}/{Image name :version}. 其中Image repository address为镜像仓库地址,即登录指令的结尾部分;Organization name为b步骤创建的组织名称;Image name为需要构建的镜像名称,version为镜像的版本。请根据实际值进行替换。例如:docker build -t swr.xxxxxx.com/study1/redis:v1 . 图3 构建镜像 执行以下命令将客户端镜像上传到SWR。 docker push {Image repository address}/{Organization name}/{Image name :version} 图4 上传镜像 上传镜像后,可在SWR控制台“我的镜像”页面查看到Redis镜像。 图5 查看镜像
  • 测试工作负载 登录CCE集群节点,参考登录CCE集群节点。 参考通过kubectl连接集群,下载和配置kubectl配置文件。 执行以下命令,当返回状态为“Running”时,说明Redis容器处于运行状态。 kubectl get pod -n default 使用以下命令查看Redis容器的日志。 kubectl logs --tail 10 -f redis-xxxxxxxx -n default 其中redis-xxxxxxxx为创建的工作负载实例名称。(单击工作负载名称,进入工作负载,可查看工作负载实例名称。) 从返回信息中,可以看到DCS服务返回的信息为在前面连接Redis时设置的数据值“hello redis!”。 测试完成。
  • 应用场景 游戏业务开合服,指一些大型网络游戏为了吸引新玩家,在运营一段时间后,会开启新服务区,当新服务区开放后,老服务区用户存在流向新服务区的趋势,用户数逐渐减少,为了改善老服务区用户的游戏体验,延长游戏生命周期,游戏开发商通常会进行新老服务区合并,将新开和原有的两个服务器(区)的数据合并到一个服务器(区),使新老玩家就能在同一个区进行游戏。在这个过程中,会遇到如何将不同服务器数据同步的相关问题。
  • 解决方案 使用分布式缓存服务(DCS)的Redis缓存在游戏开合服方面,可以应用到以下场景: 跨服数据同步 游戏合服后,需要将多个游戏服务器的数据进行同步,以保证游戏数据的一致性。可以使用Redis的消息队列pub/sub机制,将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消息,从而实现数据同步。 跨服资源共享 游戏合服后,可以将多个游戏服务器的资源进行共享,例如玩家道具、金币等。可以使用Redis的分布式锁机制,来保证多个游戏服务器对资源的访问互斥,避免资源冲突。 跨服排行榜 游戏合服后,可以将多个游戏服务器的排行榜进行合并,以展示全服的排名情况。可以使用Redis的有序集合机制,来存储排行榜数据,并进行排名计算和查询。 在以上三种应用场景中,“跨服资源共享”的实现方式可以参考使用DCS实现热点资源顺序访问,“跨服排行榜”的实现方式可以参考使用DCS实现排行榜功能。 本篇文档主要介绍如何通过Redis的消息队列pub/sub机制,实现“跨服数据同步”。 在使用Redis进行游戏合服方面的应用时,需要考虑数据一致性、性能和安全等方面的问题,避免出现数据错误、性能瓶颈或者安全漏洞等问题。
  • 实施步骤 使用Redis-py库中的Redis()方法在每个游戏服务器上创建一个Redis客户端连接。 使用pubsub()方法在每个游戏服务器上创建一个Redis订阅者和发布者。用于订阅其他游戏服务器发布的消息,以及发布本地游戏服务器的数据更新消息。当某个游戏服务器需要更新数据时,它会将更新的消息发布到Redis消息队列中。其他游戏服务器会收到更新消息并相应地更新各自的本地数据。 定义一个publish_update()方法发布更新消息,并在listen_updates()方法中使用subscriber.listen()方法来监听更新消息。 当收到更新消息时,通过调用handle_update()方法来处理更新消息并更新本地数据。在游戏服务器中,通过调用publish_update()来发布更新消息,以及调用listen_updates()来监听更新消息。
  • 前提条件 已有MySQL数据库,并在其中创建一张表,作为源端数据库中的数据。 例如,在MySQL数据库中创建一张名为student_info的表格,表中共有4列,迁移后表中的id列的值将成为Redis中的hash的key,其余的列的列名将成为hash的field,而列的值作为field对应的value。 已创建DCS Redis实例,作为迁移的目的数据库。请参考创建DCS Redis缓存实例。 如果您的源端是华为云的MySQL数据库,Redis实例请选择与MySQL数据库实例相同的VPC。 已创建弹性云服务器ECS,且选择与Redis实例相同的VPC,操作系统为Linux。请参考购买并登录Linux弹性云服务器。
  • 解决方案 将Redis作为应用与数据库之间的缓存层可以解决上述问题,通过Redis缓存数据,提高数据读取速度,减轻数据库负载,提高应用性能,保证数据的可靠性。 因此,对于传统的关系型数据库例如MySQL,可以将其数据迁移到Redis中。Redis中的数据是以键值结构进行存储的,在迁移前需要将传统的数据库转换为特定的结构。本文以将MySQL数据库中的一张表迁移到华为云DCS Redis中为例,介绍数据迁移的过程。
  • 通过MobaXterm建立隧道作为跳板机 新建一个到ECS的SSH连接,使用22号端口。 图1 连接ECS SSH连接配置好后,输入登录用户和密码,连接上ECS。登录后输入TMOUT=0,避免连接超时自动关闭。 图2 输入TMOUT=0 在MobaXterm工具中找到MobaSSHtunnal,建立隧道。 图3 创建隧道 配置本地IP为127.0.0.1后,启动隧道。 图4 启动隧道 本地电脑打开Redis客户端,以Redis命令行界面为例。连接DCS缓存实例,命令如下: Redis-cli -h 127.0.0.1 -p 3306 -a {password} 参数说明: -h 主机名:localhost或者127.0.0.1,和隧道建立时配置的本地IP相同。 -p 端口号:3306,和隧道建立时配置的本地侦听端口相同。 -a 密码:DCS缓存实例连接密码。 连接成功,显示如下。 图5 连接实例
  • 通过Nginx访问Redis 登录ECS控制台,确认跳板机的安全组规则是否放开,如果没有,则需要为安全组放开8080和8081两个端口。 单击ECS实例名称,进入ECS详情页面。 选择“安全组”页签,单击“配置规则”,可进入安全组配置页面。 图6 进入ECS安全组 图7 添加安全组入方向规则 在公网环境中打开Redis命令行界面,输入如下命令,登录与查询都正常,大功告成。 公网环境已参考Redis-cli连接中相关步骤,安装Redis-cli客户端。 ./redis-cli -h {myeip} -p {port} -a {mypassword} 其中,命令中的{myeip}为主机连接地址,需要填写ECS的弹性IP,端口需要填写ECS上Nginx的监听端口。 如下图所示,设置的2个监听端口分别为8080和8081,对应后端2个Redis实例。 图8 通过Nginx代理连接第一个Redis实例 图9 通过Nginx代理连接第二个Redis实例 至此,就完成了通过跳板机的搭建,实现公网访问Redis的操作了。
  • 安装Nginx 购买ECS后,需要在ECS上安装Nginx,本文以ECS操作系统为Centos7.x为例进行安装,不同操作系统命令稍有不同。 执行以下命令,添加Nginx到yum源。 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 添加完之后,执行以下命令,查看是否已经添加成功。 yum search nginx 添加成功之后,执行以下命令,安装Nginx。 sudo yum install -y nginx 执行以下命令安装stream模块。 yum install nginx-mod-stream --skip-broken 启动Nginx并设置为开机自动运行。 sudo systemctl start nginx.service sudo systemctl enable nginx.service 在本地浏览器中输入服务器地址(ECS公网IP地址),查看安装是否成功。 如果出现下面页面,则表示安装成功。
  • 配置Nginx Nginx安装后,需要配置请求转发规则,告诉Nginx哪个端口收到的请求,应该转发到后端哪个Redis实例。 打开并修改配置文件。 cd /etc/nginx vi nginx.conf 配置示例如下,如果有多个redis实例需要公网连接,可以配置多个server,在proxy_pass中配置Redis实例连接地址。 stream { server { listen 8080; proxy_pass 192.168.0.5:6379; } server { listen 8081; proxy_pass 192.168.0.6:6379; } } proxy_pass参数配置值为同一vpc下的Redis实例的IP地址,具体可从缓存实例详情页面的“连接信息”区域获取。 图4 Nginx配置信息的输入位置 重启Nginx服务。 service nginx restart 验证启动是否成功。 netstat -an|grep 808 图5 启动Nginx及验证 8080和8081两个端口都在监听状态,Nginx启动成功。
  • (可选)长连接场景 如果用户公网访问时需要使用长连接,那么需要在如上配置Nginx中增加以下配置: Nginx到后端server的超时时间 stream { server { listen 8080; proxy_pass 192.168.0.5:6379; proxy_socket_keepalive on; proxy_timeout 60m; proxy_connect_timeout 60s; } server { listen 8081; proxy_pass 192.168.0.6:6379; proxy_socket_keepalive on; proxy_timeout 60m; proxy_connect_timeout 60s; } } proxy_timeout 默认值是10m,可以根据用户需要设为60m或其他值。Nginx官网 proxy_timeout说明 客户端到Nginx的超时时间 http { keepalive_timeout 3600s; } keepalive_timeout 默认值是75s,可以根据用户需要设为3600s或其他值。Nginx官网 keepalive_timeout 说明
  • 引发Redis操作失败的场景 场景 说明 故障触发了主备倒换 因Redis底层硬件或其他原因导致主节点故障后,会触发主备倒换,保障实例仍可用,主备倒换会有以下影响: 秒级的连接闪断 最多30秒的只读 变更实例规格过程中短暂只读 变更规格过程中可能会出现秒级中断和分钟级只读。 更多变更规格可能产生的影响,请参考变更规格。 慢查询引起了请求堵塞 执行时间复杂度为O(N)的操作,引发慢查询和请求的堵塞,此时,客户端发起的其他请求可能出现暂时性失败。 复杂的网络环境 由于客户端与Redis服务器之间复杂网络环境引起,可能出现偶发的网络抖动、数据重传等问题,此时,客户端发起的请求可能会出现暂时性失败。 复杂的硬件问题 由于客户端所在的硬件偶发性故障引起,例如虚拟机HA,磁盘时延抖动等场景,此时,客户端发起的请求可能会出现暂时性失败。
  • 推荐的重试准则 重试准则 说明 仅重试幂等的操作 由于超时可能发生在下述任一阶段: 该命令由客户端发送成功,但尚未到达Redis。 命令到达Redis,但执行超时。 命令在Redis中执行结束,但结果返回给客户端时发生超时。 执行重试可能导致某个操作在Redis中被重复执行,因此不是所有操作均适合设计重试机制。通常推荐仅重试幂等的操作,例如SET操作,即多次执行SET a b命令,那么a的值只可能是b或执行失败;如果执行LPUSH mylist a则不是幂等的操作,可能导致mylist中包含多个a元素。 适当的重试次数与间隔 根据业务需求和实际场景调整适当的重试次数与间隔,否则可能引发下述问题: 如果重试次数不足或间隔太长,应用程序可能无法完成操作而导致失败。 如果重试次数过大或间隔过短,应用程序可能会占用过多的系统资源,且可能因请求过多而堵塞在服务器上无法恢复。 常见的重试间隔方式包括立即重试、固定时间重试、指数增加时间重试、随机时间重试等。 避免重试嵌套 重试嵌套可能导致重试时间被指数级放大。 记录重试异常并打印失败报告 在重试过程中,建议在WARN级别上打印重试错误日志,同时,仅在重试失败时打印异常信息。
  • 实施步骤 登录ECS。登录方式请参考登录弹性云服务器。 在ECS上安装JDK1.8以上版本和Eclipse开发工具,下载jedis客户端(点此处下载jar包)。 本文档下载的开发工具和客户端仅为示例,您可以选择其它类型的工具和客户端。 在ECS上运行Eclipse,创建一个java工程,并将jedis客户端作为library引用到工程中。 将DCS缓存实例的连接地址、端口以及连接密码配置到视频直播弹幕代码示例或社交网站评论回复代码示例中。 编译并运行得到结果。
  • 解决方案 使用分布式缓存服务(DCS)的Redis缓存,可以从不同的维度,对某个key-value的列表进行降序显示。例如,直播弹幕中的弹幕列表,可以采用zset有序集合结构,以时间戳为score权重参数进行排序,value可以直接存储弹幕内容。社交网站评论回复,同样也可以采用zset结构,但是由于社交网站评论和回复的内容很多,展示结构有一定的层级,同时需要持久化到本地,可以用value存储评论主键ID,评论内容存放到数据库,通过ID查询评论内容。
  • 升级至HSS(新版)的必要性 后续产品演进,HSS(新版)将完全替换HSS(旧版),届时HSS(旧版)将会下线。 在HSS(新版)中,新增了部分功能以及对部分功能的能力做了大幅度提升,升级后可提升服务器的安全防护能力,大致如下: 表1 HSS(新版)主要功能迭代情况 功能名称 功能描述 功能形态 未防护资产的免费体检 针对未购买HSS防护配额的服务器进行定期免费扫描检测,并提供报告预览。 新增 资产指纹管理 深度扫描服务器中的资产,将资产划分为账号、端口、进程、Web目录、软件信息等不同维度进行统计展示和管理。 新增 资产重要性 您可对名下所有服务器按照服务器资产绑定资产重要性等级,绑定后可按照不同等级的资产进行批量管理,包括但不限于部署策略、开启/关闭防护、分配组、安装Agent,操作详情请参见关联资产重要性。 新增 应用漏洞 漏洞扫描新增对应用漏洞的扫描,包括检测Web服务、Web框架、Web站点、中间件、内核模块等资产信息存在的漏洞,操作详情请参见查看漏洞详情。 新增 基线报告导出 您可对基线检查的配置检查和经典弱口令检测的结果进行筛选导出。 新增 应用防护 为运行时的应用提供安全防御,您无需修改应用程序文件,只需将探针注入到应用程序,即可为应用提供强大的安全防护能力。包括但不限于对SQL注入、命令注入、反序列化输入、文件遍历、JSP执行操作系统命令等漏洞的扫描检测,操作详情请参见开启应用防护。 新增 Agent安装 支持一键批量安装Agent,操作详情请参见批量安装Agent。 新增 防护配额管理 支持防护配额版本有低版本直接升级至高版本,操作详情请参见防护配额管理。 新增 基线检查 支持自定义勾选等保合规的基线检测项,生成检测结果,操作详情请参见管理基线检查策略。 新增 告警事件管理 支持对勒索软件、反弹Shell告警的隔离查杀处理。 支持对一般漏洞利用、Redis漏洞利用、Hadoop漏洞利用、MySQL漏洞利用的检测告警。 操作详情请参见告警事件概述。 新增 安全报告 支持自定义报告周期、报告内容、发送时间,操作详情请参见订阅安全报告。 升级 勒索病毒 实时监控全盘新增文件及运行中的进程,动态生成诱饵文件进行主动诱捕,识别勒索软件,同时可自定义策略对服务器进行定期备份,操作详情请参见开启勒索病毒防护。 升级 容器安全防护 将原有的容器安全服务合并至HSS(新版),将服务器负载进行统一管理。 合并
  • 取消告警通知 开启主机安全防护后,如果您不想收到HSS的告警通知,您可以取消设置HSS告警通知。取消告警通知后,无论是否有风险,您都只能登录管理控制台自行查看,无法收到告警短信或邮件。 取消设置HSS告警通知方式,如下所示: 方式一:删除消息通知主题 删除主题后,您配置的告警通知将不会生效。 方式二:删除消息通知主题中的订阅 删除订阅后,您将不会收到告警通知。 方式三:取消或关闭消息通知主题中的订阅 取消订阅后,您将不会收到告警通知。
  • 购买了主机安全服务版本为什么没有生效? 购买了主机安全服务版本后您还需要做以下操作才可为目标主机开启防护: 安装Agent:为目标主机安装Agent,安装后可实现HSS对数据的监测以及告警的上报,如果已安装可忽略此步骤,安装Agent操作详情请参见安装Agent。 绑定配额:将购买的版本配额绑定至需要防护的服务器,绑定后目标服务器才会开启对应版本支持的防护能力,绑定配额开启主机防护操作详情请参见开启主机安全防护,开启容器安全防护操作详情请参见开启器防护。 开启防护后建议开启告警通知确保在发现告警的第一时间收到通知,同时对服务器进行安全配置,进一步提升服务器的安全性。 父主题: 配额问题
  • 升级至企业版/旗舰版操作 主机安全服务的配额版本升级时目标配额版本的“使用状态”必须为“空闲”,因此,升级的操作流程取决于目标配额版本的使用状态。 使用状态为空闲 可直接在防护配额页面直接进行升级操作,操作详情请参见配额版本升级。 使用状态为使用中 需要对目标配额进行解除绑定操作,操作详情请参见解绑配额。 解除绑定后查看目标配额版本的“使用状态”为“空闲”。 执行配额升级操作,操作详情请参见升级至企业版/旗舰版。
  • 设置口令复杂度策略 为了确保系统的安全性,建议设置的口令复杂度策略为:口令最小长度不小于8且必须包含大写字母、小写字母、数字和特殊字符。 以下配置为基础的安全要求,如需其他更多的安全配置,请执行以下命令获取Linux帮助信息。 基于Red Hat 7.0的CentOS、Fedora、EulerOS系统 man pam_pwquality 其他Linux系统 man pam_cracklib CentOS、Fedora、EulerOS操作系统 执行以下命令,编辑文件“/etc/pam.d/system-auth”。 vi /etc/pam.d/system-auth 找到文件中的以下内容。 基于Red Hat 7.0的CentOS、Fedora、EulerOS系统: password requisite pam_pwquality.so try_first_pass retry=3 type= 其他CentOS、Fedora、EulerOS系统: password requisite pam_cracklib.so try_first_pass retry=3 type= 添加参数“minlen”、“dcredit”、“ucredit”、“lcredit”、“ocredit”。如果文件中已有这些参数,直接修改参数值即可,参数说明如表1所示。 示例: password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 type= “dcredit”、“ucredit”、“lcredit”、“ocredit”中均需要配置为负数。 表1 参数说明 参数 说明 示例 minlen 口令最小长度配置项。 如果需要设置最小口令长度为8,则minlen的值应该设置为8。 minlen=8 dcredit 口令数字要求的配置项。 值为负数N时表示至少有N个数字,值为正数时对数字个数没有限制。 dcredit=-1 ucredit 口令大写字母要求的配置项。 值为负数N时表示至少有N个大写字母,值为正数时对大写字母个数没有限制。 ucredit=-1 lcredit 口令小写字母要求的配置项。 值为负数N时表示至少有N个小写字母,值为正数时对小写字母个数没有限制。 lcredit=-1 ocredit 特殊字符要求的配置项。 值为负数N时表示至少有N个特殊字符,值为正数时对特殊字符个数没有限制。 ocredit=-1 Debian、Ubuntu操作系统 执行以下命令,编辑文件“/etc/pam.d/common-password”。 vi /etc/pam.d/common-password 找到文件中的以下内容: password requisite pam_cracklib.so retry=3 minlen=8 difok=3 添加参数“minlen”、“dcredit”、“ucredit”、“lcredit”、“ocredit”。如果文件中已有这些参数,直接修改参数值即可,参数说明如表1所示。 示例: password requisite pam_cracklib.so retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 difok=3
  • 开启双因子认证后收不到验证码? 开启双因子认证功能后,不会立即生效。 需要等大约5分钟才生效。 开启双因子认证需要关闭Selinux防火墙。 请关闭Selinux防火墙后重试。 Linux主机需要使用“密码”登录方式。 请按以下步骤切换密钥登录为密码登录: 使用密钥登录Linux云服务器,设置root密码。 sudo passwd root 如果密钥文件丢失或损坏,请重置root密码。 使用root身份编辑云服务器的ssh登录方式。 su root vi /etc/ssh/sshd_config 修改如下配置项: 把PasswordAuthentication no改为PasswordAuthentication yes 或去掉PasswordAuthentication yes前面的#注释掉。 把PermitRootLogin no改为PermitRootLogin yes 或去掉PermitRootLogin yes前面的#注释掉。 重启sshd使修改生效。 service sshd restart 重启云服务器就可以使用root用户和新设置的密码登录了。 防止非授权用户使用原来的密钥文件访问Linux云服务器,请将/root/.ssh/authorized_keys文件删除或清空authorized_keys文件内容。 父主题: 安全配置问题
  • Windows操作系统 windows操作系统可以使用镜像的方式批量安装Agent,操作步骤如下: 购买华为云弹性云服务器,选定所需使用的Windows系统镜像,详细操作请参见购买华为云弹性云服务器。 在购买的弹性云服务器中安装HSS Agent,详细操作请参见安装Windows版本客户端。 除在主机中安装HSS的Agent外,请勿开启其他服务或执行相关配置操作。 在任务管理器中关闭HostGuard进程。 关闭弹性云服务器,使用该弹性云服务器制作镜像,详细操作请参见创建镜像。 关闭弹性云服务器后,在制作镜像前,请勿重启弹性云服务器,否则您需重新执行步骤3。 使用步骤4制作的镜像为Windows弹性云服务器批量安装Agent。 安装成功后,需要等待5~10分钟左右Agent才会自动刷新Agent状态。
  • Linux操作系统 Linux操作系统可以通过如下方式批量安装Agent: 购买华为云弹性云服务器,选定所需使用的Linux系统镜像,详细操作请参见购买弹性云服务器。 在购买的弹性云服务器中安装HSS的Agent,详细操作请参见安装Linux Agent。 除在主机中安装HSS的Agent外,请勿开启其他服务或执行相关配置操作。 在服务器中关闭HSS进程。 使用ps -ef命令确定HSS的PID,使用kill -pid命令关闭Linux系统中的hostguard进程。 关闭弹性云服务器,使用该弹性云服务器制作镜像,详细操作请参见创建镜像。 关闭弹性云服务器后,在制作镜像前,请勿重启弹性云服务器,否则您需重新执行步骤3和步骤4。 使用步骤4制作的镜像为Linux弹性云服务器批量安装Agent。 安装成功后,需要等待5~10分钟左右Agent才会自动刷新Agent状态。
  • 处理方法 在主机上安装Agent成功已超过10分钟,控制台Agent状态仍显示“离线”。 是:请执行2。 否:请您耐心等待Agent上线,无需执行后续操作。安装Agent成功后,不会立即生效,需要等待5-10分钟左右控制台才会刷新状态。 主机的操作系统是否在HSS支持的操作系统及版本范围内。 是:请执行3。 否:主机安全服务的Agent无法正常安装和运行在您的主机上,请升级为主机安全服务支持的操作系统后再尝试安装Agent。 主机网络是否正常。 是:请执行4。 否:请确保您的主机所属安全组出方向设置允许访问100.125.0.0/16网段的10180端口,且主机能正常访问网络。待主机能正常访问网络后,再查看Agent状态。 主机剩余可用内存是否大于300MB。 是:请执行5。 否:主机内存不足将导致Agent离线,请扩充内存容量,容量扩充完成后,Agent将恢复上线。 Agent进程异常,需要重启Agent。 Windows操作系统 以管理员administrator权限登录主机。 打开“任务管理器”。 在“服务”页签选中“HostGuard”。 单击鼠标右键,选择“重新启动”,完成重启Agent。 Linux操作系统 请以root用户在命令行终端执行以下命令,完成重启Agent。 service hostguard restart 如果回显以下信息,则表示重启成功。 root@HSS-Ubuntu32:~#service hostguard restart Stopping Hostguard... Hostguard stopped Hostguard restarting... Hostguard is running 重启进程后等待2-3分钟: 如果Agent状态为“在线”,则故障清除。 如果Agent状态仍为“未安装”或者“离线”,请卸载Agent,再重新安装Agent。
  • 如何设置安全的口令? 请按如下建议设置口令: 使用复杂度高的密码。 建议密码复杂度至少满足如下要求: 密码长度至少8个字符。 包含如下至少三种组合: 大写字母(A~Z) 小写字母(a~z) 数字(0~9) 特殊字符 密码不为用户名或用户名的倒序。 不使用有一定特征和规律容易被破解的常用弱口令。 生日、姓名、身份证、手机号、邮箱名、用户ID、时间年份 数字或字母连排或混排,常用彩虹表中的密码、滚键盘密码。 短语密码 公司名称、admin、root等常用词汇 不使用空密码或系统的缺省密码。 不要重复使用最近5次(含5次)内已使用的密码。 不同网站/账号使用不同的密码。 根据不同应用设置不同的账号密码,不建议多个应用使用同一套账户/密码。 定期修改密码,建议至少每90天更改一次密码。 账号管理人员初次发放或者初始化密码给用户时,如果知道密码内容,建议强制用户首次使用修改密码,如果不能强制用户修改密码,则为密码设置过期的期限(用户必须及时修改密码,否则密码应被强制失效)。 建议为所有账户配置设置连续认证失败次数超过5次(不含5次),锁定账号策略和30分钟自动解除锁定策略。 建议对所有账户设置不活动时间超过10分钟自动退出或锁定策略。 新建系统中的账号缺省密码在首次使用前,建议强制用户更改。 建议开启账户登录记录日志功能,登录日志最少保存180天,登录日志中不能保存用户的密码。 父主题: 弱口令和风险账号问题
共100000条