运用 makelogs 创建合适的 Elasticsearch 测试数据

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 我们在使用 Elasticsearch 时,经常想找一些数据来进行测试,比如我们想试一下 Kibana 的可视化工具。我们有时想有很多的数据,但是有时就是找不到合适的数据。那么我们该怎么办呢?当然,我们有一种简单的办法就是使用 Kibana 给我们提供的测试数据,但是它可能也有很多的局限性:
文本作者:刘晓国,Elastic 公司社区布道师。新加坡国立大学硕士,西北工业大学硕士,曾就职于新加坡科技,康柏电脑,通用汽车,爱立信,诺基亚,Linaro,Ubuntu,Vantiq 等企业。

如果你想一站式快速体验 Elasticsearch 所有功能(包括 X-pack 付费功能),开通 阿里云 Elasticsearch 1核2G,即可首月免费试用。

image.png

另外一种方法就是使用一些工具来生成我们想要数量或要求的数据。在今天的文章中,我们就来介绍这样的一个工具 makelogs

下载 makelogs

我们在地址 https://github.com/elastic/makelogs 下载 makelogs:

git clone https://github.com/elastic/makelogs
cd makelogs

按照项目的要求,我们进行如下的安装:

npm install -g @elastic/makelogs

在实际使用中,我发现还需要安装另外的两个模块:

npm install update-notifier
npm install commander --save

这样我们的安装就完成了。

运行 makelogs

接下来,我们就可以运行 makelogs。为了能够了解这个工具的作用,我们使用如下的命令:

./bin/makelogs --help

$ ./bin/makelogs --help
Usage: makelogs [options]
 
A utility to generate sample log data.
 
Options:
  -c, --count <number>       Total event that will be created, accepts
                             expressions like "1m" for 1 million (b,m,t,h)
                             (default: 14000)
  -d, --days <number>        Number of days ± today to generate data for. Use
                             one number or two separated by a slash, e.g.
                             "1/10" to go back one day, and forward 10
                             (default: 1)
  --url <url>                Elasticsearch url, overrides host and auth, can
                             include any url part.
  -h, --host <host>          The host name and port (default:
                             "localhost:9200")
  --auth <auth>              user:password when you want to connect to a
                             secured elasticsearch cluster over basic auth
                             (default: null)
  --indexPrefix <name>       Name of the prefix of the index (default:
                             "logstash-")
  -s, --shards <number>      The number of primary shards (default: 1)
  -r, --replicas <number>    The number of replica shards (default: 0)
  --dry                      Test/Parse your arguments, but don't actually do
                             anything
  --reset                    Clear all {prefix}-* indices and the makelogs
                             index template before generating (default:
                             prompt)
  --no-reset                 Do not clear all {prefix}-* indices and the
                             makelogs index template before generating
                             (default: prompt)
  --verbose                  Log more info to the console
  --trace                    Log every request to elasticsearch, including
                             request bodies. BE CAREFUL!
  -o, --omit <...>           Omit a field from every event. See "formatting an
                             omit path"
  -i, --indexInterval <...>  The interval that indices should roll over,
                             either "daily", "monthly", "yearly", or a number
                             of documents. (default: 100000)
  --types                    Pass to enable types in index and document
                             creation
  --indexTemplatesV1         Pass to enable types in index templates v1
                             compatibility
  -V, --version              output the version number
  --help                     This help message
 
formatting an omit path
=======================
 
To remove a single top level property, you can simply specify the name of the property you want to remove:
 
  $ makelogs --omit request
 
To remove multiple properties, simply use omit multiple times
 
  $ makelogs --omit request --omit referrer
 
You can use dot notation to access properties of object values
 
  $ makelogs --omit machine.os
 
Or, you can omit the entire object value
 
  $ makelogs --omit machine
 
Finally, to traverse into arrays/nested fields you must use the [] operator
 
  $ makelogs --omit relatedContent[].title

上面显示了这个命令的所有的帮助信息。
接下来我们使用上面的命令来生成我们想要的 logstash 日志:

makelogs -c 10

等上面的命令运行完后,我们在 Kibana 里进行检查:

GET _cat/indices

image.png

我们看到一个新生成的叫做 logstash-0 的索引。我们使用如下的命令来检查文档的个数:

GET logstash-0/_count

image.png

上面显示共有 11 个文档生成。
我们可以对这个索引进行搜索:

我们可以看到这些被 makelogs 所生成的 logstash 文档。这些文档可以成为我们对数据分析的一个基础供我们进行练手。在生产环境中,当然不能进行使用了。

声明:本文由原文作者“ Elastic 中国社区布道师——刘晓国”授权转载,对未经许可擅自使用者,保留追究其法律责任的权利。

image.png

阿里云Elastic Stack】100%兼容开源ES,独有9大能力,提供免费 X-pack服务(单节点价值$6000)

相关活动


更多折扣活动,请访问阿里云 Elasticsearch 官网

阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费
下载白皮书:Elasticsearch 八大经典场景应用


image.png

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
16天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
25 6
|
18天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
25 1
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
34 1
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
477 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
47 4
|
2月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
128 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
62 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
209 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
30 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
2月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
219 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。

相关产品

  • 检索分析服务 Elasticsearch版