使用 man ascii 来查看 ASCII 表。

Elastic:使用 docker 来安装 Elastic Stack 8.0-alpha2

Elastic Stack 8.0.0-alpha2 刚刚发布,这是一个快速(非官方)的启动和运行指南。 更多功能、文档和公告即将发布,但冒险者已经开始:在几分钟内启动并运行 Docker 上的 Elasticsearch、Kibana 和 Agent。

请注意:

这是一个 alpha 发布版。 仅将其用于测试,不要指望最终能够升级到 8.0.0 版本最终版本。
期待将会有一些这样或者那样的 bug。 这就是我们再次运行 Elastic Pioneer Program  的原因,以便我们可以解决尽可能多的问题。
这是保持简单的最小示例,例如跳过 TLS 证书(尽管这可能会改变)。 请不要将其用作生产环境。
在今天的文章中,我将详细地介绍如何安装 Elastic Stack 8.0-alpha2 版本。

原文链接:https://blog.csdn.net/UbuntuTo ... 24770
继续阅读 »
Elastic Stack 8.0.0-alpha2 刚刚发布,这是一个快速(非官方)的启动和运行指南。 更多功能、文档和公告即将发布,但冒险者已经开始:在几分钟内启动并运行 Docker 上的 Elasticsearch、Kibana 和 Agent。

请注意:

这是一个 alpha 发布版。 仅将其用于测试,不要指望最终能够升级到 8.0.0 版本最终版本。
期待将会有一些这样或者那样的 bug。 这就是我们再次运行 Elastic Pioneer Program  的原因,以便我们可以解决尽可能多的问题。
这是保持简单的最小示例,例如跳过 TLS 证书(尽管这可能会改变)。 请不要将其用作生产环境。
在今天的文章中,我将详细地介绍如何安装 Elastic Stack 8.0-alpha2 版本。

原文链接:https://blog.csdn.net/UbuntuTo ... 24770 收起阅读 »

Elastic 7.15 版:数秒之内打造强大的个性化搜索体验

我们很高兴地宣布 Elastic 7.15 版正式发布,这个版本为 Elastic Search Platform(包括 Elasticsearch 和 Kibana)及其三个内置解决方案(Elastic Enterprise Search、Elastic 可观测性和 Elastic 安全)带来一系列广泛的全新功能。

在 Elastic 7.15 版中,正式推出了 Elastic App Search 网络爬虫,并与 Google Cloud 实现了更加紧密的集成 — 这让我们的客户和社区能够更快地打造强大的新网络搜索体验,更快速、更安全地采集数据,并更轻松地利用搜索的力量让数据发挥作用。

此外,借助 Elastic 可观测性中新增的 APM 关联功能,DevOps 团队可以通过自动显现与高延迟或错误事务关联的属性,加快根本原因分析的速度并缩短平均解决时间 (MTTR)。

而且,俗话说得好,一不做二不休,如果打算要观测……何不(同时)保护呢?

为此,在 Elastic 7.15 版中,Elastic 安全对 Limitless XDR(扩展检测与响应)进行了增强,既能够为几乎所有的操作系统提供恶意行为保护功能,又能够为云原生 Linux 环境提供一键式主机隔离功能。
 
https://elasticstack.blog.csdn ... 82102
继续阅读 »
我们很高兴地宣布 Elastic 7.15 版正式发布,这个版本为 Elastic Search Platform(包括 Elasticsearch 和 Kibana)及其三个内置解决方案(Elastic Enterprise Search、Elastic 可观测性和 Elastic 安全)带来一系列广泛的全新功能。

在 Elastic 7.15 版中,正式推出了 Elastic App Search 网络爬虫,并与 Google Cloud 实现了更加紧密的集成 — 这让我们的客户和社区能够更快地打造强大的新网络搜索体验,更快速、更安全地采集数据,并更轻松地利用搜索的力量让数据发挥作用。

此外,借助 Elastic 可观测性中新增的 APM 关联功能,DevOps 团队可以通过自动显现与高延迟或错误事务关联的属性,加快根本原因分析的速度并缩短平均解决时间 (MTTR)。

而且,俗话说得好,一不做二不休,如果打算要观测……何不(同时)保护呢?

为此,在 Elastic 7.15 版中,Elastic 安全对 Limitless XDR(扩展检测与响应)进行了增强,既能够为几乎所有的操作系统提供恶意行为保护功能,又能够为云原生 Linux 环境提供一键式主机隔离功能。
 
https://elasticstack.blog.csdn ... 82102 收起阅读 »

社区日报 第1298期 (2021-09-25)

1、Elasticsearch 7.15 发布
https://www.elastic.co/cn/blog ... -15-0
 
2、elasticsearch-py 8.0 roadmap
https://github.com/elastic/ela ... /1696
 
3、Kafka +Elasticsearch 实战
https://doordash.engineering/2 ... xing/
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
 
 
 
继续阅读 »
1、Elasticsearch 7.15 发布
https://www.elastic.co/cn/blog ... -15-0
 
2、elasticsearch-py 8.0 roadmap
https://github.com/elastic/ela ... /1696
 
3、Kafka +Elasticsearch 实战
https://doordash.engineering/2 ... xing/
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
 
 
  收起阅读 »

社区日报 第1296期 (2021-09-16)

1.如何在 Django 中使用 Elasticsearch
https://elasticstack.blog.csdn ... 60616
2.Elasticsearch未分配分片异常处理
https://www.jianshu.com/p/db38d8bab7ee
3.ElasticSearch 双数据中心建设在新网银行的实践
https://mp.weixin.qq.com/s/Q8o8FbU7w1I3VoexB06cBQ

编辑:金桥
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1.如何在 Django 中使用 Elasticsearch
https://elasticstack.blog.csdn ... 60616
2.Elasticsearch未分配分片异常处理
https://www.jianshu.com/p/db38d8bab7ee
3.ElasticSearch 双数据中心建设在新网银行的实践
https://mp.weixin.qq.com/s/Q8o8FbU7w1I3VoexB06cBQ

编辑:金桥
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

Polygon开发者入门Workshop——从️0搭建自己的LendingPool

Polygon

Polygon Weekly AMA

活动主题:

《Polygon开发者入门Workshop——从️搭建自己的LendingPool》

活动时间:

9月11号晚上7点

活动举办方:

Polygon x SolidStake x Elastic中文社区

活动地点:

扫码进AMA微信群! 会议号是:193 658 608

继续阅读 »

Polygon

Polygon Weekly AMA

活动主题:

《Polygon开发者入门Workshop——从️搭建自己的LendingPool》

活动时间:

9月11号晚上7点

活动举办方:

Polygon x SolidStake x Elastic中文社区

活动地点:

扫码进AMA微信群! 会议号是:193 658 608

收起阅读 »

社区日报 第1293期 (2021-09-03)

1、Elasticsearch 8.X新特性概览
https://www.elastic.co/guide/e ... .html
2、Elasticsearch 垃圾回收算法解读
https://blog.bigdataboutique.c ... toq2j
3、零停机reindex实践
https://tuleism.github.io/blog ... ndex/
 
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1、Elasticsearch 8.X新特性概览
https://www.elastic.co/guide/e ... .html
2、Elasticsearch 垃圾回收算法解读
https://blog.bigdataboutique.c ... toq2j
3、零停机reindex实践
https://tuleism.github.io/blog ... ndex/
 
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

欢迎参加本周六 DevOps社区大连峰会,还有少量赠票

Elastic 作为金牌合作伙伴加盟 2021 中国DevOps社区峰会 ,下面是Elastic 公司开发者布道师刘征的分享话题简介

嘉宾介绍:刘征,Elastic公司社区布道师,中国DevOps社区组织者,《DevOps Handbook》《The Site Reliability Workbook》译者;精通DevOps/SRE/ITIL等管理体系。致力于推广DevOps/SRE的理念、技术和实践。

演讲概述:不仅详细介绍使用 OpenTelemetry 这套云原生的API和库,来生成、收集和导出分布式系统的遥测数据的流程。还将展示如何定制OpenTelemetry的组件和架构,从而满足你的应用程序的独特需求。

Elastic 对开放标准支持的承诺:从开源到开放代码,开放性是我们Elastic的DNA。我们不仅从我们编写和运送的代码的角度拥抱这种开放性,而且也拥抱我们摄入的数据。我们一直站在拥抱开放标准的最前沿,为我们的用户提供灵活性,让他们可以选择如何将他们的数据运送到Elasticsearch,并利用Elastic Stack的功能。这种支持开放标准的承诺体现在我们对其他开放标准和其他流行的开源项目的支持,如Prometheus、OpenTracing、W3C Trace-Context和Jaeger。

2019年初,OpenTracing和OpenCensus开始了标准化API和构建完整解决方案的旅程,使用户更容易在他们所有的埋点服务中捕获追踪和遥测。在Elastic APM中建立了对OpenTracing的支持,我们作为OpenTelemetry项目的成员积极参与其中。我们很高兴地宣布,我们可以轻松地将OpenTelemetry的追踪整合到Elastic APM中。
 

2021-08-31_12-19-56.png


欢迎参与DevOps 社区峰会大连站,欢迎关注刘征老师的以上分享。关注本微信的朋友可以扫码下面的二维码免费注册本次峰会,本次社区峰会还给大家准备了社区定制版卫衣和抽奖书籍等周边。还等什么,让我们本周六在峰会上不见不散吧!
 

2021-08-31_12-20-07.png


扫码即得最后剩余的免费门票。
查看大会的全部日程。
 

WechatIMG1617.jpeg

 
 
继续阅读 »
Elastic 作为金牌合作伙伴加盟 2021 中国DevOps社区峰会 ,下面是Elastic 公司开发者布道师刘征的分享话题简介

嘉宾介绍:刘征,Elastic公司社区布道师,中国DevOps社区组织者,《DevOps Handbook》《The Site Reliability Workbook》译者;精通DevOps/SRE/ITIL等管理体系。致力于推广DevOps/SRE的理念、技术和实践。

演讲概述:不仅详细介绍使用 OpenTelemetry 这套云原生的API和库,来生成、收集和导出分布式系统的遥测数据的流程。还将展示如何定制OpenTelemetry的组件和架构,从而满足你的应用程序的独特需求。

Elastic 对开放标准支持的承诺:从开源到开放代码,开放性是我们Elastic的DNA。我们不仅从我们编写和运送的代码的角度拥抱这种开放性,而且也拥抱我们摄入的数据。我们一直站在拥抱开放标准的最前沿,为我们的用户提供灵活性,让他们可以选择如何将他们的数据运送到Elasticsearch,并利用Elastic Stack的功能。这种支持开放标准的承诺体现在我们对其他开放标准和其他流行的开源项目的支持,如Prometheus、OpenTracing、W3C Trace-Context和Jaeger。

2019年初,OpenTracing和OpenCensus开始了标准化API和构建完整解决方案的旅程,使用户更容易在他们所有的埋点服务中捕获追踪和遥测。在Elastic APM中建立了对OpenTracing的支持,我们作为OpenTelemetry项目的成员积极参与其中。我们很高兴地宣布,我们可以轻松地将OpenTelemetry的追踪整合到Elastic APM中。
 

2021-08-31_12-19-56.png


欢迎参与DevOps 社区峰会大连站,欢迎关注刘征老师的以上分享。关注本微信的朋友可以扫码下面的二维码免费注册本次峰会,本次社区峰会还给大家准备了社区定制版卫衣和抽奖书籍等周边。还等什么,让我们本周六在峰会上不见不散吧!
 

2021-08-31_12-20-07.png


扫码即得最后剩余的免费门票。
查看大会的全部日程。
 

WechatIMG1617.jpeg

 
  收起阅读 »

社区日报 第1292期 (2021-08-30)

1.通过Metricbeat实现外部对Elastic Stack的监控
https://www.cnblogs.com/sanduz ... .html

2.Elasticsearch 慢查询设置
https://blog.csdn.net/wang7075 ... 93713

3.es分析过程
https://www.cnblogs.com/Neeo/a ... .html

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1.通过Metricbeat实现外部对Elastic Stack的监控
https://www.cnblogs.com/sanduz ... .html

2.Elasticsearch 慢查询设置
https://blog.csdn.net/wang7075 ... 93713

3.es分析过程
https://www.cnblogs.com/Neeo/a ... .html

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

Elasticsearch:分页搜索结果

随着时间点 API(Point in time API)的推出,根据 Elastic 的官方博客 “使用 Elasticsearch 时间点读取器获得随时间推移而保持一致的数据视图”,Scroll 接口将不被推荐作为对搜索结果的分页。

默认情况下,搜索会返回前 10 个匹配的匹配项。 要翻阅更大的结果集,你可以使用搜索 API 的 from 和 size 参数。 from 参数定义要跳过的命中数,默认为 0。 size 参数是要返回的最大命中数。 这两个参数共同定义了一页结果。比如:

GET /twitter/_search
{
  "from": 5,
  "size": 20,
  "query": {
    "match": {
      "city": "北京"
    }
  }
}

避免使用 from 和 size 来分页太深或一次请求太多结果。 搜索请求通常跨越多个分片。 每个分片必须将其请求的命中和任何先前页面的命中加载到内存中。 对于深页面或大型结果集,这些操作会显着增加内存和 CPU 使用率,从而导致性能下降或节点故障。这里的原因是 index.max_result_window 的默认值是 10K,也就是说 from+size 的最大值是1万。搜索请求占用堆内存和时间与 from+size 成比例,这限制了内存。假如你想 hit 从 990 到 1000,那么每个 shard 至少需要 1000 个文档:

原文链接:https://elasticstack.blog.csdn ... 32811
继续阅读 »
随着时间点 API(Point in time API)的推出,根据 Elastic 的官方博客 “使用 Elasticsearch 时间点读取器获得随时间推移而保持一致的数据视图”,Scroll 接口将不被推荐作为对搜索结果的分页。

默认情况下,搜索会返回前 10 个匹配的匹配项。 要翻阅更大的结果集,你可以使用搜索 API 的 from 和 size 参数。 from 参数定义要跳过的命中数,默认为 0。 size 参数是要返回的最大命中数。 这两个参数共同定义了一页结果。比如:

GET /twitter/_search
{
  "from": 5,
  "size": 20,
  "query": {
    "match": {
      "city": "北京"
    }
  }
}

避免使用 from 和 size 来分页太深或一次请求太多结果。 搜索请求通常跨越多个分片。 每个分片必须将其请求的命中和任何先前页面的命中加载到内存中。 对于深页面或大型结果集,这些操作会显着增加内存和 CPU 使用率,从而导致性能下降或节点故障。这里的原因是 index.max_result_window 的默认值是 10K,也就是说 from+size 的最大值是1万。搜索请求占用堆内存和时间与 from+size 成比例,这限制了内存。假如你想 hit 从 990 到 1000,那么每个 shard 至少需要 1000 个文档:

原文链接:https://elasticstack.blog.csdn ... 32811 收起阅读 »

使用 Elasticsearch 时间点读取器获得随时间推移而保持一致的数据视图

总结一下:如果可行,我们推荐您使用 Elasticsearch 的全新时间点功能。对于深度分页,我们不再推荐使用滚动 API(虽然它仍然有效)。

大多数数据都不断变化。在 Elasticsearch 中查询索引,实际上是在一个给定的时间点搜索数据。由于索引不断变化(在大多数可观测性和安全性用例中皆如此),在不同的时间执行两个相同的查询将返回不同的结果,因为数据会随着时间而变化。那么,如果需要消除时间变量的影响,该怎么做呢?

Elasticsearch 7.10 中引入的时间点读取器可以让您反复查询某个索引,仿佛该索引处于某个特定的时间点。

从这个高度概括的介绍看,时间点功能似乎与滚动 API 类似,后者会检索下一批结果以完成滚动搜索。但两者间有一个微妙的差别,可以清楚表明为何时间点在未来将是“有状态”查询不可或缺的部分。
 
https://elasticstack.blog.csdn ... 25187
继续阅读 »
总结一下:如果可行,我们推荐您使用 Elasticsearch 的全新时间点功能。对于深度分页,我们不再推荐使用滚动 API(虽然它仍然有效)。

大多数数据都不断变化。在 Elasticsearch 中查询索引,实际上是在一个给定的时间点搜索数据。由于索引不断变化(在大多数可观测性和安全性用例中皆如此),在不同的时间执行两个相同的查询将返回不同的结果,因为数据会随着时间而变化。那么,如果需要消除时间变量的影响,该怎么做呢?

Elasticsearch 7.10 中引入的时间点读取器可以让您反复查询某个索引,仿佛该索引处于某个特定的时间点。

从这个高度概括的介绍看,时间点功能似乎与滚动 API 类似,后者会检索下一批结果以完成滚动搜索。但两者间有一个微妙的差别,可以清楚表明为何时间点在未来将是“有状态”查询不可或缺的部分。
 
https://elasticstack.blog.csdn ... 25187 收起阅读 »

将ES索引从一个集群迁移到另一个集群的python脚本

将索引从一个集群(ip:192.168.0.1)迁移到另一个集群(ip:192.168.0.2),新集群需要配置白名单:

# elasticsearch.yml
reindex.remote.whitelist: ['192.168.0.1:9200']
import json

import requests

import base64

# 迁移索引数据
def reindex(index):
    print("{0} 索引正在迁移中".format(index))
    jsonData = {
        "source": {
            "remote": {
                "host": "http://192.168.0.1:9200",
                "socket_timeout": "30s",
                "connect_timeout": "30s",
                "username": "elastic",
                "password": "123456"
            },
            "index": index
        },
        "dest": {
            "index": index
        }
    }
    res = requests.post("http://192.168.0.2:9200/_reindex", json=jsonData)
    print(res.status_code)
    print(res.content)

# 获取创建索引的语句
def getIndexDslJson(index):

    username = "elastic"
    password = "123456"
    user_info_str = username + ":" + password
    user_info = base64.b64encode(user_info_str.encode())  # 这个得到是个字节类型的数据
    headers = {
        "Authorization": "Basic {0}".format(user_info.decode())  # 这个就是需要验证的信息
    }

    res = requests.get("http://192.168.0.1:9200/{0}".format(index),
                       headers=headers)
    print(res.status_code)
    jsonIndex = json.loads(res.content)
    print(jsonIndex[index])
    del jsonIndex[index]['settings']['index']['creation_date']
    del jsonIndex[index]['settings']['index']['provided_name']
    del jsonIndex[index]['settings']['index']['uuid']
    del jsonIndex[index]['settings']['index']['version']
    jsonIndex[index]['settings']['index']['number_of_shards'] = 1
    jsonIndex[index]['settings']['index']['number_of_replicas'] = 0
    return jsonIndex[index]

# 创建索引
def createIndex(index, dslJson):
    res = requests.put("http://192.168.0.2:9200/{0}".format(index), json=dslJson)
    print(res.status_code)
    print(res.content)

if __name__ == '__main__':
    # 需要创建的索引
    indexList = [
        "index1_v1", "index2_v1"
    ]
    for index in indexList:
        dslJson = getIndexDslJson(index) # 获取原索引的结构
        createIndex(index, dslJson) # 根据原索引结构,在新集群创建索引
        reindex(index) # 将原集群索引迁移到新集群
继续阅读 »

将索引从一个集群(ip:192.168.0.1)迁移到另一个集群(ip:192.168.0.2),新集群需要配置白名单:

# elasticsearch.yml
reindex.remote.whitelist: ['192.168.0.1:9200']
import json

import requests

import base64

# 迁移索引数据
def reindex(index):
    print("{0} 索引正在迁移中".format(index))
    jsonData = {
        "source": {
            "remote": {
                "host": "http://192.168.0.1:9200",
                "socket_timeout": "30s",
                "connect_timeout": "30s",
                "username": "elastic",
                "password": "123456"
            },
            "index": index
        },
        "dest": {
            "index": index
        }
    }
    res = requests.post("http://192.168.0.2:9200/_reindex", json=jsonData)
    print(res.status_code)
    print(res.content)

# 获取创建索引的语句
def getIndexDslJson(index):

    username = "elastic"
    password = "123456"
    user_info_str = username + ":" + password
    user_info = base64.b64encode(user_info_str.encode())  # 这个得到是个字节类型的数据
    headers = {
        "Authorization": "Basic {0}".format(user_info.decode())  # 这个就是需要验证的信息
    }

    res = requests.get("http://192.168.0.1:9200/{0}".format(index),
                       headers=headers)
    print(res.status_code)
    jsonIndex = json.loads(res.content)
    print(jsonIndex[index])
    del jsonIndex[index]['settings']['index']['creation_date']
    del jsonIndex[index]['settings']['index']['provided_name']
    del jsonIndex[index]['settings']['index']['uuid']
    del jsonIndex[index]['settings']['index']['version']
    jsonIndex[index]['settings']['index']['number_of_shards'] = 1
    jsonIndex[index]['settings']['index']['number_of_replicas'] = 0
    return jsonIndex[index]

# 创建索引
def createIndex(index, dslJson):
    res = requests.put("http://192.168.0.2:9200/{0}".format(index), json=dslJson)
    print(res.status_code)
    print(res.content)

if __name__ == '__main__':
    # 需要创建的索引
    indexList = [
        "index1_v1", "index2_v1"
    ]
    for index in indexList:
        dslJson = getIndexDslJson(index) # 获取原索引的结构
        createIndex(index, dslJson) # 根据原索引结构,在新集群创建索引
        reindex(index) # 将原集群索引迁移到新集群
收起阅读 »