使用项目监控创建监控
编辑使用项目监控创建监控编辑
项目是在 Elastic Stack 中配置合成监控的最强大和最复杂的方式。项目允许您将基础设施定义为代码,更常见的是称为 IaaC 或 Git-ops。使用项目监控,您可以将 YAML 配置和 JavaScript 或 TypeScript 定义的监控器组织在文件系统上,使用 Git 进行版本控制,并通过 CLI 工具部署,通常在 CI/CD 平台上执行。
这是您可以用来设置合成监控的两种方法之一。
先决条件编辑
您必须以至少具有 合成写入权限 的用户身份登录 Kibana,并且监控管理必须由管理员启用,如 设置角色 中所述。
使用项目需要使用 Elastic Synthetics CLI 工具,该工具可以通过 npx @elastic/synthetics
命令调用。在开始之前,您需要
- 安装 Node.js
-
安装包
npm install -g @elastic/synthetics
-
确认您的系统设置正确
npx @elastic/synthetics -h
您还应该在开始之前决定要在哪里运行监控器。您可以在以下两种方式中的一种或两种方式上运行项目监控器
- Elastic 的全球托管测试基础设施: 使用 Elastic 的全球托管测试基础设施,您可以在多个位置创建和运行监控器,而无需管理自己的基础设施。Elastic 会为您处理软件更新和容量规划。
- 私有位置: 私有位置允许您从自己的场所运行监控器。要使用私有位置,您必须在继续之前创建私有位置。有关分步说明,请参阅 监控私有网络上的资源。
如果您正在为配置了 流量过滤器 的部署设置 Synthetics,则连接到 Elasticsearch 会受到限制,并且结果将无法写入 Elasticsearch,除非授予权限。有关更多详细信息,请参阅 将 Synthetics 与流量过滤器一起使用。
创建项目编辑
首先创建您的第一个项目。运行以下命令在当前目录中创建一个名为 projects-test
的新项目。
npx @elastic/synthetics init projects-test
然后,按照屏幕上的提示设置项目的正确默认变量。完成后,在您的终端中设置 SYNTHETICS_API_KEY
环境变量,该变量用于与您的 Elastic Stack 进行身份验证
-
要生成 API 密钥
- 在您的终端中设置
SYNTHETICS_API_KEY
环境变量。您很可能希望永久设置它。这在 Powershell 和 Bash 中的执行方式不同。
如果您正在推送到 私有位置,则必须使用在 8.4 或更高版本中生成的 API 密钥。
然后,查看项目内部的关键文件和目录
-
journeys
是您添加定义浏览器监控器的.ts
和.js
文件的地方。当您创建一个新项目时,此目录将包含定义示例监控器的文件。 -
lightweight
是您添加定义轻量级监控器的.yaml
文件的地方。当您创建一个新项目时,此目录将包含一个定义示例监控器的文件。 -
synthetics.config.ts
包含项目的设置。当您创建一个新项目时,它将包含一些基本的配置选项,您可以在以后自定义这些选项。示例项目中的
synthetics.config.ts
使用 Elastic 的全球托管测试基础设施上的位置。管理员可以限制对 Elastic 的全球托管测试基础设施的访问。当您尝试push
示例监控器 时,如果您看到一条错误消息,指出您没有权限使用 Elastic 托管的全局位置,请参阅 故障排除指南 以获取指导。 -
package.json
包含项目的 NPM 设置。在 NPM 文档 中了解更多信息。 -
.github
包含与 GitHub Actions 一起使用的示例工作流文件。
检查示例监控器编辑
在 lightweight
目录中,您将找到示例轻量级监控器。以下是一个定义轻量级监控器的 YAML 文件示例
# lightweight.yml heartbeat.monitors: - type: http name: Todos Lightweight id: todos-lightweight urls: "https://elastic.github.io/synthetics-demo/" schedule: '@every 1m'
有关轻量级监控器配置选项的更多详细信息,请参阅 配置轻量级监控器。
在 journeys
目录中,您将找到示例浏览器监控器。以下是一个定义浏览器监控器的 TypeScript 文件示例
// example.journey.ts import { journey, step, monitor, expect } from '@elastic/synthetics'; journey('My Example Journey', ({ page, params }) => { // Only relevant for the push command to create // monitors in Kibana monitor.use({ id: 'example-monitor', schedule: 10, }); step('launch application', async () => { await page.goto(params.url); }); step('assert title', async () => { const header = await page.locator('h1'); expect(await header.textContent()).toBe('todos'); }); });
有关编写旅程和配置浏览器监控器的更多详细信息,请参阅 编写浏览器监控器。
测试并连接到 Elastic Stack编辑
在项目目录中,您可以使用 npx @elastic/synthetics
命令执行两件事
-
在本地测试基于浏览器的监控器。要运行在
.ts
和.js
文件中定义的所有旅程npx @elastic/synthetics journeys
-
将所有监控器配置推送到 Elastic 部署。从您的项目内部运行以下命令
npx @elastic/synthetics push --auth $SYNTHETICS_API_KEY --url <kibana-url>
对于每个旅程或轻量级监控器,将在 Synthetics 应用程序中出现一个监控器,并且您将从本地环境管理所有监控器。有关使用 push
命令的更多详细信息,请参阅 @elastic/synthetics push
。
如果您已 添加私有位置,则可以 push
到该私有位置。
要列出可用的私有位置,请使用 elastic-synthetics locations
命令 以及要从中获取可用位置的部署的 Kibana URL。
在 Kibana 中查看编辑
当监控器创建或更新时,第一次运行可能不会立即发生,但第一次运行发生所需的时间将小于监控器配置的频率。例如,如果您创建一个监控器并将其配置为每 10 分钟运行一次,则第一次运行将在创建后 10 分钟内发生。在第一次运行后,监控器将根据配置的频率定期运行。如果您想更快地查看结果,可以运行手动测试。
然后,转到 Kibana 中的 Synthetics 应用程序。您应该看到您新推送的监控器正在运行。您还可以转到 管理 选项卡以查看监控器的配置设置。
下一步编辑
了解有关以下内容的更多信息