Elastic:如何使用 elastic-package 快速启动一个完整的 Elastic Stack

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elastic:如何使用 elastic-package 快速启动一个完整的 Elastic Stack相关的知识,希望对你有一定的参考价值。

 

在本入门指南中,你将了解 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”也可以用于在守护进程模式下运行它。

你的本地堆栈现在可以使用以下信息: 

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-package % 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…"   About 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的主要内容,如果未能解决你的问题,请参考以下文章

Elastic:如何使用 elastic-package 快速启动一个完整的 Elastic Stack

Elastic:如何使用 Ansible自动化部署 Elastic Stack -Security

Elastic:如何使用 Elastic 机器学习来侦测异常

Elastic:如何使用 Elastic 机器学习来侦测异常

如何使用现有索引创建 Elastic App Search Engine(来自 GraphDB Elastic Search Connector 的数据)

Elasticsearch:如何分析和优化 Elastic 部署的存储空间