云服务器内容精选
-
步骤二:给用户组授权 在用户组列表中,单击新建用户组操作列的“授权”。 在用户组选择策略页面中,在搜索框中搜索“ CSS FullAccess”勾选并单击“下一步”。 一般创建集群的权限有“ CS S FullAccess”和“Elasticsearch Administrator”,可根据表1的对应的常用操作和系统权限的关系进行对应的配置设置。表2包含了CSS所有的系统权限。 如果还需要查看资源的消费情况,请在同区域选择“BSS Administrator”权限。 表1 常用操作与系统权限的关系 操作 CSS FullAccess CSS ReadOnlyAccess Elasticsearch Administrator 备注 创建集群 √ x √ - 查询集群列表 √ √ √ - 查询集群详情 √ √ √ - 删除集群 √ x √ - 重启集群 √ x √ - 扩容集群 √ x √ - 扩容实例的数量和存储容量 √ x √ - 查询指定集群的标签 √ √ √ - 查询所有标签 √ √ √ - 加载自定义词库 √ x √ 依赖OBS和 IAM 权限 查询自定义词库状态 √ √ √ - 删除自定义词库 √ x √ - 自动设置集群快照的基础配置 √ x √ 依赖OBS和IAM权限 修改集群快照的基础配置 √ x √ 依赖OBS和IAM权限 设置自动创建快照策略 √ x √ - 查询集群的自动创建快照策略 √ √ √ - 手动创建快照 √ x √ - 查询快照列表 √ √ √ - 恢复快照 √ x √ - 删除快照 √ x √ - 停用快照功能 √ x √ - 更改规格 √ x √ - 缩容集群 √ x √ - 表2 CSS系统权限 系统角色/策略名称 类别 权限描述 依赖关系 Elasticsearch Administrator 系统角色 CSS服务的所有执行权限。 该角色有依赖,需要在同项目中勾选依赖的Tenant Guest和Server Administrator角色。 Tenant Guest:全局级角色,在全局项目中勾选。 Server Administrator:项目级角色,在同项目中勾选。 CSS FullAccess 系统策略 基于策略授权的CSS服务的所有权限,拥有该权限的用户可以完成基于策略授权的CSS服务的所有执行权限。 无 CSS ReadOnlyAccess 系统策略 CSS服务的只读权限,拥有该权限的用户仅能查看CSS服务数据。 无 设置最小授权范围。 此处以仅为“华北-北京四”区域的资源设置权限为例,选择授权范围方案为“指定区域项目资源”,并选择“cn-north-4 [华北-北京四]”区域。 图6 设置最小授权范围 单击“确定”,完成用户组授权。
-
步骤四:IAM用户登录并验证权限 在登录页面,单击登录下方的“IAM用户”“子用户登录”,在“IAM用户登录”页面,输入“租户名/原华为云账号名”、“IAM用户名/邮件地址”和“密码”。 图10 IAM用户登录 租户名/原华为云账号名:IAM用户所属的账号。 IAM用户名/邮件地址:在IAM创建用户时,输入的IAM用户名/邮件地址,例如“James”。如果不知道用户名及初始密码,请向管理员获取。 IAM用户密码:IAM用户的密码,非账号密码。 单击“登录”,登录华为云。 在“服务列表”中选择 云搜索服务 。 在 云搜索 服务总览页面右上角,单击“创建集群”按钮,按照创建集群的步骤创建集群,如果创建成功,则表示权限配置成功。
-
操作步骤 订阅增量。在kafka/MQ中新建消费组,订阅增量数据。 存量数据同步。使用Logstash等工具将源端ES集群中的数据迁移到CSS集群中。如果使用Logstash进行数据迁移,可以参考使用Logstash迁移集群数据。 增量数据同步。待存量数据同步完成之后开启增量消费组,利用ES对数据操作的幂等性,等新的消费组追上之前的消费组时,两边的数据就会追平。 关于日志场景,源端ES集群中的数据并不需要迁移,即可跳过存量数据同步的步骤,待增量数据同步完成后,两边持续同步跑一段时间(例如3天或7天),然后直接割接即可。
-
迁移流程 在泛IOT、新闻、舆情、社交等数据量较大的行业,通常会引入消息中间件(kafka、MQ等)对流量进行削峰填谷,然后借助Flink/Logstash等工具消费数据并进行数据预处理,最终将数据导入到搜索引擎,对外提供搜索服务。 对于这种源端是kafka/MQ的集群,集群迁移流程如图1所示。 图1 源端为Kafka/MQ的集群迁移流程 该迁移方案具有割接方便和通用性好的优点。 割接方便:一旦两个ES集群的数据保持一致后,随时可割接。 通用性好:两边均可同步对客户端的ES进行增删改查操作。
-
查询性能优化 基于Elasticsearch的数据查询流程分析,有以下几种性能优化方案。 表1 查询性能优化 序号 优化方案 方案说明 1 通过_routing减少检索扫描的分片数 在数据入库时指定routing值,将数据路由到某个特定的分片,查询时通过该routing值将请求转发到某个特定的分片,而不是相关索引的所有分片,进而提升集群整体的吞吐能力。 Elasticsearch 7.x版本中,设置命令如下: 指定routing值插入数据 PUT /{index}/_doc/1?routing=user1 { "title": "This is a document" } 根据routing值去查询数据 GET /{index}/_doc/1?routing=user1 2 采用index sorting减少检索扫描的Segments数 当请求落到某个分片时,会逐个遍历其Segments,通过使用index sorting,可以使得范围查询、或者排序查询在段内提前终止(early-terminate)。 Elasticsearch 7.x版本中,示例命令如下: //假设需要频繁使用字段date做范围查询。 PUT {index} { "settings": { "index": { "sort.field": "date", "sort.order": "desc" } }, "mappings": { "properties": { "date": { "type": "date" } } } } 3 增加query cache提升缓存命中的概率 当filter请求在段内执行时,会通过bitset保留其刷选结果,当下一个类似的查询过来时,就可以复用之前查询的结果,以此减少重复查询。 增加query cache可以通过修改集群的参数配置实现,将自定义缓存参数“indices.queries.cache.size”设置为更大的值。具体操作请参见参数配置,修改参数配置后一定要重启集群使参数生效。 4 提前Forcemerge,减小需要扫描的Segments数 对于定期滚动后的只读索引,可以定期执行forcemerge,将小的Segments合并为大的Segments,并将标记为“deleted”状态的索引彻底删除,提升查询效率。 Elasticsearch 7.x版本中,配置示例如下: //假设配置索引forcemerge后segments数量为10个。 POST /{index}/_forcemerge?max_num_segments=10
-
数据查询流程 图1 数据查询流程 当从客户端往Elasticsearch发送查询请求时,查询流程如下: 客户端向Node1发送查询请求,此时Node1为协调节点。 节点Node1根据查询请求的索引以及其分片分布,进行分片选择;然后将请求转发到Node1、Node2、Node3。 各分片分别执行查询任务;当各分片查询成功后,将查询结果汇聚到Node1,然后协调节点向客户端返回查询结果。 对于某个查询请求,其在节点上默认可并行查询5个分片,多于5个分片时将分批进行查询;在单个分片内,通过逐个遍历各个Segment的方式进行查询。 图2 Elasticsearch的索引组成
-
前提条件 已创建好安全模式的CSS集群和MySQL数据库,且两者在同一个VPC与安全组内。 MySQL数据库中已经有待同步的数据。本章以如下表结构和初始数据举例。 MySQL中创建一个学生信息表: CREATE TABLE `student` ( `dsc` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL, `age` smallint unsigned DEFAULT NULL, `name` varchar(32) COLLATE utf8mb4_general_ci NOT NULL, `id` int unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; MySQL中插入3个学生的初始数据: INSERT INTO student (id,name,age,dsc) VALUES ('1','Jack Ma Yun','50','Jack Ma Yun is a Chinese business magnate, investor and philanthropist.'), ('2','will smith','22','also known by his stage name the Fresh Prince, is an American actor, rapper, and producer.'), ('3','James Francis Cameron','68','the director of avatar'); CSS集群中已完成索引创建,与MySQL中表相对应。 本章集群的索引示例如下: PUT student { "settings": { "number_of_replicas": 0, "number_of_shards": 3 }, "mappings": { "properties": { "id": { "type": "keyword" }, "name": { "type": "short" }, "age": { "type": "short" }, "desc": { "type": "text" } } } } 其中的number_of_shards与number_of_replicas需根据具体业务场景进行配置。
-
注意事项 建议Rest High Level Client的版本和Elasticsearch的版本保持一致,例如需要访问的ES集群版本是7.6.2,则使用的Rest High Level Client客户端版本建议也是7.6.2。如果您使用相比Elasticsearch集群更高版本的Java Rest High Level Client且存在少量请求的兼容性问题,您可以使用“RestHighLevelClient.getLowLevelClient()”方式直接获取Low Level Client,实现自定义的Elasticsearch请求内容。
-
给test用户共享admin账号的index_pattern,Dashboards等信息 一般情况下,新建用户本身并不具备创建index_pattern的权限或者由于业务关系不能够进行数据管理。此时,一般是由admin账号进行index_pattern创建并且管理dashboard等报表信息,然后再将这些信息共享给test用户。 您可以按照以下流程操作: 使用admin账户在Global Tenant中创建index_pattern和Dashboards。 Global Tenant所有的租户都可以直接访问,但是如果部门过多,这种情况体验较差,可以使用以下方法优化: 在“Security”中选择“Tenants”。以admin账户建立以部门为粒度的Tenant,比如test_tenant。 图14 创建Tenants 切换到对应部门test_tenant。 图15 切换test_tenant 在test_tenant下创建本部门需要的index_pattern、Dashboards。 在“Security”中选择“Roles”。单击test用户对应的角色Role1,在Tenant Permissions页签分配test_tenant给Role1。 保存后切换到test用户,test即可访问test_tenant空间内容。
-
背景信息 云搜索服务(Cloud Search Service,简称CSS)用opendistro_security安全插件对外提供安全集群能力,opendistro_security安全插件是基于RBAC(Role-Based Access Control)模型构建。RBAC包括三个重要核心概念:用户(User)、权限(Action)、角色(Role)。RBAC简化了用户和权限的关系,降低了权限管理的难度,方便权限扩展易于维护。三者之前的关系如下图所示:
-
创建一个具有Kibana访问权限的用户 参考创建用户并配置相应权限中的使用Kibana创建用户(User),创建一个用户名为test的用户。 角色用户映射,将Role和User绑定。 在“Security”中选择“Role Mappings”,进入Role Mappings页面。 在Role Mappings页面,单击“kibana_user”角色名称。 图12 kibana_user角色 kibana_user角色具有.kibana*索引的权限,Kibana界面上面操作的Dashboards以及index_pattern都是保存到.kibana*里面的,将test用户和kibana_user相映射,意味着这个test用户具有了kibana的权限。 单击“+”添加用户和角色映射。 在“Users”区域,选择创建的test用户。 添加完成后,单击“Submit”。 配置完成后,切换test用户,进行权限验证是否生效。
-
给新建用户分配指定索引index*的权限 新创建的test用户可以访问Kibana,并且可以使用Kibana的index_pattern、Discover、Dashboards等权限,但是这并不意味着test用户能看到任意的.kibana。test用户默认只能看到private tenant和global tenant空间的数据,如果需要访问其他的tenant空间,还需要在role中定义其他的tenant权限。 在“Security”中选择“Roles”。 在“Open Distro Security Roles”页面,单击“+”添加角色权限。 在“Overview”页签,设置角色名Role1。 在“Index Permissions”页签,单击“Add index permissions”设置索引权限。 图13 设置权限 “Index patterns”:输入index*。 “Permissions: Action Groups”:选择对应的权限,如果想要查询,可以选择read。如果想要写入,可以选择write,具体的操作对应的最底层action,可以参考kibana界面的permission模块介绍,以read为例,选择indices:data/read* 和indices:admin/mappings/fields/get*权限。indices:data/read* 包含indices:data/read/下所有的权限,比如indices:data/read/get、indices:data/read/mget、indices:data/read/search等。 设置完成后,即可看到设置的角色Role1。 在Security中选择“Role Mappings”。 在“Role Mappings”页面,单击“+”添加用户test和角色Role1映射。 添加完成后,单击“Submit”。 配置完成后,test用户即可拥有index*的read权限。
-
步骤四:全量迁移 使用putty登录准备工作中创建的Linux虚拟机。 执行python migrateTemplate.py 迁移索引模板。 执行 python migrateMapping.py迁移索引。 在Logstash集群管理页面,单击步骤一:创建Logstash集群中创建的集群名称,进入集群的基本信息页面。选择“配置中心”,或者直接单击目标集群操作列的“配置中心”,进入配置中心页面。 选择步骤三:配置Logstash全量迁移任务中所创建的配置文件,单击左上角的“启动”。 根据界面提示,选择是否启动Logstash服务会立刻开始迁移数据。 如果选择“是”,则可以在管道下面看到启动的配置文件。 数据迁移完毕检查数据一致性,使用putty登录linux虚拟机,执行python checkIndices.py 对比数据结果。
-
约束和限制 Logstash版本约束: CSS 支持5.5.1,6.3.2,6.5.4,7.1.1,7.6.2,7.10.2多个版本,迁移集群尽量保持大版本一致。 对应ES集群是5.x, 6.x 选择logstash版本5.6.16, 对应ES版本是7.X 选择logstash版本7.10.0。 集群迁移过程禁止修改索引,修改索引会导致原数据和目标数据内容不一致。 索引大小小于100G可以使用迁移任务不用单独分析索引,简化分析工作。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格