Elastic:如何使用 elastic-package 快速启动一个完整的 Elastic Stack
2021年10月26日 | by mebius
在本入门指南中,你将了解 elastic-package 如何帮助你快速启动完整的 Elastic Stack。
Elastic-package 是一种开源工具,可通过提供预构建的命令来帮助你缩短开发时间。 例如,它将帮助您整理、格式化、测试、构建和推广你的包。
每个想要通过创建自己的集成(integrations)做出贡献的开发人员都应该使用 elastic-package。 它将提供一个即用型代码环境。
开始使用 elastic-package
作为开发人员,你可以通过两种方式使用 elastic-package,第一种是通过二进制使用,第二种是通过拉取 elastic-package github 存储库。
对于二进制使用,首先下载最新版本。
拉取你需要的存档并在本地解开它。
julienlind@MacBook-Pro Downloads % tar -xvf elastic-package_0.20.1_darwin_amd64.tar.gz
然后你可以尝试使用 elastic-package 命令行。 首先,尝试从 “help” 命令开始。
注意:你可以把这个工具放在你的 PATH 中,它可能会改善你的开发者体验。编辑你的 ~/.bashrc 文件并指定你的可执行文件 PATH:“PATH=$PATH:$PATH_TO_MY_EXEC”。
julienlind@MacBook-Pro Downloads % elastic-package help
elastic-package - Command line tool for developing Elastic Integrations
Usage:
elastic-package [command]
Available Commands:
build Build the package
check Check the package
clean Clean used resources
completion generate the autocompletion script for the specified shell
create Create package resources
export Export package assets
format Format the package
help Help about any command
install Install the package
lint Lint the package
profiles Manage stack config profiles
promote Promote packages
publish Publish the package to the Package Registry
service Manage the service stack
stack Manage the Elastic stack
status Show package status
test Run test suite for the package
uninstall Uninstall the package
version Show application version
Flags:
-h, --help help for elastic-package
-v, --verbose verbose mode
Use "elastic-package [command] --help" for more information about a command.
使用 github 存储库:
julienlind@MacBook-Pro Downloads % git clone https://github.com/elastic/elastic-package.git
Cloning into 'elastic-package'...
remote: Enumerating objects: 5188, done.
remote: Counting objects: 100% (1356/1356), done.
remote: Compressing objects: 100% (449/449), done.
remote: Total 5188 (delta 1078), reused 936 (delta 901), pack-reused 3832
Receiving objects: 100% (5188/5188), 13.41 MiB | 26.11 MiB/s, done.
Resolving deltas: 100% (2952/2952), done.
julienlind@MacBook-Pro Downloads % cd elastic-package
julienlind@MacBook-Pro elastic-package % make build
[...]
julienlind@MacBook-Pro elastic-package % elastic-package help
注意:为了能够使得你的编译没有错误,你可能需要使用最新的 Golang 环境。在我的版本 1.13 中我出现了一个错误。更新完 Golang 后,错误消失:
$ go version
go version go1.17.2 darwin/amd64
“make build” 命令将调用 “go get”,这将导致在 ~/go/bin 中创建一个二进制文件。
因此,这里我们假设您在 ~/.bashrc 文件中指定了 Golang 可执行文件路径,如下所示:
PATH=$PATH:$GOPATH/bin
在几分钟内启动本地 Elastic Stack
在这里,我们假设你的计算机上确实有 Docker 桌面并正在运行。
完成后,只需使用 “stack” 命令,如下例所示:
$ elastic-package stack up
Boot up the Elastic stack
Using profile /Users/liuxg/.elastic-package/profiles/default.
Remember to load stack environment variables using 'eval "$(elastic-package stack shellinit)"'.
Packages from the following directories will be loaded into the package-registry:
- built-in packages (package-storage:snapshot Docker image)
如果你看到上面的输出则标明你的 Elastic Stack 已经成功地跑起来了!启动堆栈时,你将能够在本地访问所有组件并试验所有可用功能。 如果遇到任何问题,请添加 -v 选项以允许详细输出。 (请注意,内存阈值较低可能会导致 Docker 设置出现一些问题。)
“-d”也可以用于在守护进程模式下运行它。
你的本tgcode地堆栈现在可以使用以下信息:
Package Registry: http://localhost:8080
Elasticsearch: http://localhost:9200
Fleet Server: http://localhost:8220
kibana: http://localhost:5601
login: elastic
pass: changeme
注意:在我们使用默认的配置启动 Elastic Stack 时,我们一定要注意 localhost:8080 这个端口。8080 端口有时会被其它的应用所占用,这样会造成我们的启动失败。我们需要停止使用这个端口的应用。我们可以通过浏览器来访问 Kibana:
完成测试后,请确保运行 “stack down” 命令以关闭所有内容。
julienlind@MacBook-Pro elastic-packatgcodege % elastic-package stack down
“Stack up” 和 “Stack down” 看似简单的命令,但在幕后却发生了很多事情。 这些命令启动或关闭一组依赖容器:elasticsearch、kibana、fleet、elastic agent 和包注册表。
所有这些容器都部署在同一个 Docker 网络中,以便相互通信。
运行 “docker ps” 命令将帮助你发现正在运行的内容:
julienlind@MacBook-Pro elastic-package % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d92499e5f7b docker.elastic.co/beats/elastic-agent-complete:7.15.0-SNAPSHOT "/usr/bin/tini -- /u…" Abouttgcode a minute ago Up About a minute (healthy) elastic-package-stack_elastic-agent_1
743bea1f53de docker.elastic.co/beats/elastic-agent-complete:7.15.0-SNAPSHOT "/usr/bin/tini -- /u…" 2 minutes ago Up About a minute (healthy) 127.0.0.1:8220->8220/tcp elastic-package-stack_fleet-server_1
0f1205be9e12 docker.elastic.co/kibana/kibana:7.15.0-SNAPSHOT "/bin/tini -- /usr/l…" 2 minutes ago Up About a minute (healthy) 127.0.0.1:5601->5601/tcp elastic-package-stack_kibana_1
56525b050da9 elastic-package-stack_package-registry "./package-registry …" 2 minutes ago Up About a minute (healthy) 127.0.0.1:8080->8080/tcp elastic-package-stack_package-registry_1
b3587459cedc docker.elastic.co/elasticsearch/elasticsearch:7.15.0-SNAPSHOT "/bin/tini -- /usr/l…" 2 minutes ago Up About a minute (healthy) 127.0.0.1:9200->9200/tcp, 9300/tcp elastic-package-stack_elasticsearch_1
现在你已经熟悉了 elastic-package,你可以考虑开发自己的集成,并在本地或你的 Elastic Stack 上测试它们。
文章来源于互联网:Elastic:如何使用 elastic-package 快速启动一个完整的 Elastic Stack
相关推荐: Elasticsearch:如何将浮点值存储到整型字段中
在我之前的文章 “Elasticsearch:Elasticsearch 中的数据强制匹配” 中,我详述了如何使用 coerce 属性来强制匹配一个不同的数据类型。在今天的文章中,我们来展示 Elasticsearch 是如何把一个浮点数保存到一个不同的数据类…