注意:在独立模式(standalone)下运行 Elastic Agent 是一个高级用例。 文档不完整,还不成熟。 如果可能,我们建议使用 fleet 管理的代理而不是独立模式。

要在独立模式下运行 Elastic Agent,请在你要监控的每台主机上安装该代理,并在安装它的系统上本地手动配置该代理。 你负责管理和升级代理。 仅建议高级用户使用此方法。

我们建议尽可能使用 Fleet-managed Elastic Agents,因为它使你的代理程序的管理和升级变得相当容易。你可以阅读我之前的文章 “Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0”。

重要:独立代理无法自动升级到新的集成包版本。 在 Kibana 中升级集成时,你需要手动更新独立策略。

在下面的展示中,我将使用 Elastic Stack 8.0 来进行展示。

安装

我们首先需要在我们的主机上安装并运行 Elastic Agent。针对不同的操作系统,我们需要不同的安装方法。我们需要访问网站 Download Elastic Agent Free | Elastic 来下载 Elastic Agent。

  • macOS
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.0.1-darwin-x86_64.tar.gz
tar xzvf elastic-agent-8.0.1-darwin-x86_64.tar.gz
  • Linux
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.0.1-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.0.1-linux-x86_64.tar.gz
  • Windows
# PowerShell 5.0+
wget https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.0.1-windows-x86_64.zip -OutFile elastic-agent-8.0.1-windows-x86_64.zip
Expand-Archive .\elastic-agent-8.0.1-windows-x86_64.zip
  • DEB
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.0.1-amd64.deb
sudo dpkg -i elastic-agent-8.0.1-amd64.deb

为了简化升级到 Elastic Agent 的未来版本,我们建议你使用 tarball 分发版而不是 DEB 分发版。

  • RPM
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.0.1-x86_64.rpm
sudo rpm -vi elastic-agent-8.0.1-x86_64.rpm

为了简化升级到 Elastic Agent 的未来版本,我们建议你使用 tarball 分发而不是 RPM 分发。

在下面的展示中,我将使用 maoOS 来进行展示。在进行展示之前,你需要安装文章 “Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单” 来安装好自己的 Elasticsearch 及 Kibana。Elasticsearch,Kibana 及 Elastic Agent 都将被安装于 macOS 机器上。

配置

为了能够使得 standalone Elastic Agent 能够正常工作,我们必须配置 elastic-agent.yml 文件。这个文件可以在 Elastic Agent 的安装目录中找到:

$ pwd
/Users/liuxg/elastic/fleet/elastic-agent-8.0.1-darwin-x86_64
$ ls
LICENSE.txt                 data                        elastic-agent.yml
NOTICE.txt                  elastic-agent               fleet.yml
README.md                   elastic-agent.reference.yml fleet.yml.lock

要快速入门并避免错误,请使用 Kibana 创建和下载独立的配置文件,而不是尝试手动构建它。

创建 standalone Elastic Agent 策略

要快速入门,请使用 Kibana 将集成添加到代理策略,然后下载该策略以用作独立 Elastic Agent 策略的起点。 这种方法可以节省时间,不易出错,并使用大量手动添加繁琐的细节来填充策略。 此外,在启动 Elastic Agent 之前,在 Kibana 中添加集成会加载所需的资源,例如索引模板和摄取管道。

我们首先来创建一个叫做 Standalone 的策略。这个名称可以是你喜欢的任何名称。

这样我们就创建了一个叫做 Standalone 的 policy。点击上面的链接:

我们接着为这个 policy 添加想要的 integration:

我们首先找到在 macOS 上 access.log 及 error.log 的位置:

$ nginx -help
nginx version: nginx/1.21.6
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix][-e filename] [-c filename] [-g directives]Options:-?,-h         : this help-v            : show version and exit-V            : show version and configure options then exit-t            : test configuration and exit-T            : test configuration, dump it and exit-q            : suppress non-error messages during configuration testing-s signal     : send signal to a master process: stop, quit, reopen, reload-p prefix     : set prefix path (default: /usr/local/Cellar/nginx/1.21.6/)-e filename   : set error log file (default: /usr/local/var/log/nginx/error.log)-c filename   : set configuration file (default: /usr/local/etc/nginx/nginx.conf)-g directives : set global directives out of configuration file

上面显示了 nginx 的安装目录。我们进入到该文件所在的目录:

$ pwd
/usr/local/Cellar/nginx/1.21.6
$ ls
CHANGES                   bin                       logs
INSTALL_RECEIPT.json      homebrew.mxcl.nginx.plist share
LICENSE                   homebrew.nginx.service
README                    html
$ cd logs
$ ls
access.log      error.log       host.access.log nginx.pid

从上面,我们可以看到 host.access.log 及 error.log 这两个文件。接下来我们将使用这些信息来配置 Nginx 的 integration。点击上面图中的 Add Nginx:

我们需要修改上面的默认的配置。把 host.access.log 及 error.log 的位置信息填入,并保存。

上面的 Go to download page 就是我们在上面安装一节中显示下载 Elastic Agent 的页面。我们接着向下滚动:

点击上面的 Download Policy:

上面显示下载的 policy。它的名字和之前 Elastic Agent 安装目录中一个配置文件 elastic-agent.yml 是一样的。我们把上面的 elastic-agent.yml 文件拷贝到 Elastic Agent 的安装目录中,并覆盖在 Elastic Agent 安装目录中原有的 elastic-agent.yml 文件:

$ pwd
/Users/liuxg/elastic/fleet/elastic-agent-8.0.1-darwin-x86_64
$ ls
LICENSE.txt                 data                        elastic-agent.yml
NOTICE.txt                  elastic-agent               fleet.yml
README.md                   elastic-agent.reference.yml fleet.yml.lock

请注意上面的 elastic-agent.yml 文件是我们下载的文件,而不是之前在安装 Elastic Agent 时留下来的文件。

授予独立 Elastic Agents 访问 Elasticsearch

你可以使用 API 密钥或用户凭证来授予独立 Elastic Agent 访问 Elasticsearch 资源的权限。 将日志、指标、跟踪和合成数据发送到 Elasticsearch 需要以下最低权限:

  • monitor 集群权限
  • 对 logs-*-*、metrics-*-*、traces-*-* 和 synthetics-*-* 的 auto_configure 和 create_doc 索引权限。

建议你使用 API 密钥来避免在配置文件中暴露用户名和密码。

你可以将 API 密钥设置为在特定时间过期,并且可以显式地使它们失效。 任何具有 manage_api_key 或 manage_own_api_key 集群权限的用户都可以创建 API 密钥。

出于安全原因,我们建议每个 Elastic Agent 使用唯一的 API 密钥。 你可以根据需要为每个用户创建任意数量的 API 密钥。

要为 Elastic Agent 创建 API 密钥:

我们在上面的 Restricted privileges 的编辑框中输入如下的内容:

{"standalone_agent": {"cluster": ["monitor"],"indices": [{"names": ["logs-*-*", "metrics-*-*", "traces-*-*", "synthetics-*-*" ],"privileges": ["auto_configure", "create_doc"]}]}
}

我们需要根据自己的应用场景来调整上面的 names 列表。如果你不使用 APM 或者 synthetics,那么你可以从列表中删除 "traces-*-*" 及 "synthetics-*-*"。

要设置 API 密钥的过期日期,请选择过期时间并输入 API 密钥的生命周期(以天为单位)。针对我们的情况,我们不设置这个参数。

点击上面的 Create API key 按钮:

你将看到一条消息,指示该密钥已创建,以及已编码的密钥。 默认情况下,API 密钥是 Base64 编码的,但这不适用于 Elastic Agent。 点击上面的选择框,把 Base64 修改为 Beats:

我们把上面的 API key 拷贝下来,这是因为以后我们在这个页面中再也看不到这个 key 了。

我们接下来修改 Elastic Agent 安装目录中的 elastic-agent.yml 文件:

这样我们就完成了 policy 的配置。

创建 standalone 角色

尽管建议你使用 API 密钥而不是用户名和密码来访问 Elasticsearch,但吧可以创建具有所需权限的角色,将其分配给用户,并在 elastic-agent.yml 文件中指定用户的凭据。

  • 在 Kibana 中,转到 Stack Management > Roles
  • 单击 Create role 并输入角色的名称。
  • 在 Cluster privileges 中,输入 monitor。
  • Index privileges 中,输入:
  1. indices 项中,输入 logs-*-*metrics-*-*, nginx-*-*,traces-*-* and synthetics-*-*
  2. Privileges 项中 填入 auto_configure 及 create_doc

  • 创建角色并将其分配给用户。
  • 要使用这些凭据,请在 elastic-agent.yml 文件中设置用户名和密码:
[...]
outputs:default:type: elasticsearchhosts:- 'https://da4e3a6298c14a6683e6064ebfve9ace.us-central1.gcp.cloud.es.io:443'username: ES_USERNAME password: ES_PASSWORD
[...]

注意:出于安全原因,请指定具有此处描述的最低权限的用户。 建议您不要使用 elastic 超级用户

创建 assets

这些 assets 包括 dashboard 及 ingest pipelines。我们可以通过 Kibana 来创建这些 assets。如果你使用 Kibana 生成独立配置,则会自动设置 assets。 否则,你需要安装它们。 有关更多信息,请参阅查看 Elastic Agent 集成 asset 和安装集成 assets。

安装并启动 Elastic Agent 作为一个服务

在 Elastic Agent 安装目录中,运行以下命令来安装 Elastic Agent 并将其作为服务启动。

注意:在 macOS、Linux(tar 包)和 Windows 上,运行 install 命令将 Elastic Agent 安装为托管服务并启动该服务。 DEB 和 RPM 包包含一个用于 Linux 系统的服务单元 systemd,因此只需启用然后启动该服务。

  • macOS
sudo ./elastic-agent install
  • Linux
sudo ./elastic-agent install
  • Windows
.\elastic-agent.exe install

以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标并选择以管理员身份运行)。

  • DEB
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
  • RPM
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent

针对我的情况,我在 macOS 下运行:

$ sudo ./elastic-agent install -i
Elastic Agent will be installed at /Library/Elastic/Agent and will run as a service. Do you want to continue? [Y/n]:Y
Do you want to enroll this Agent into Fleet? [Y/n]:n

在上面我们使用 --insecure  或 -i 选项,这是因为我们的 Elasticsearch 使用自签名证书。

我们可以查看 Elastic Agent 服务的状态:

$ sudo elastic-agent status
Password:
Status: HEALTHY
Message: (no message)
Applications:* filebeat               (HEALTHY)Running* metricbeat             (HEALTHY)Running* filebeat_monitoring    (HEALTHY)Running* metricbeat_monitoring  (HEALTHY)Running

从上面的输出中,我们可以看出来 elastic-agent 目前正常运行。

我们接着回到 Fleet 界面的 data stream 进行查看:

我们可以看到好几个有关 nginx 的 dataset。

当然,我们也可以选择上面的 Metrics Nginx。这里就不再累述了。

安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0相关推荐

  1. Observability:我们该选 Beats 还是 Elastic Agents 来采集数据?

    除了 Logstash 之外,Elastic 提供了两种主要的方式来向 Elasticsearch 发送数据: 我们可以选择直接把数据从 Beats 发送至 Elasticsearch.当然我们也可以 ...

  2. windows 安装汽车之家falcon插件 采集数据

    安装模块 easy_install -i http://pypi.douban.com/simple/ pypiwin32 wmi flask psutil winstats guppy 下载 htt ...

  3. Elasticsearch:如何在 Elastic Agents 中配置 Beats 来采集定制日志

    在我之前的文章 "Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0",我详细地描述了如何安装 Elastics ...

  4. Flume安装部署,采集方案配置文件编写案例,启动agent采集数据

    1.2 Flume实战案例 1.2.1 Flume的安装部署 1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压 tar -zxvf ...

  5. citespace(一)采集数据安装和使用

    CNKI采集数据 使用CiteSpace进行分析的文献输出类型为"Refworks" 格式.这里建议输出"Refworks" 和"Endnote&qu ...

  6. 后羿采集器怎么导出数据_推荐爬虫神器后羿采集器,小白也能一键采集数据

    你有没有烦恼过,如何将网页中包含的各种信息转变为有用的数据呢? 粘贴复制??太累 开发软件??太贵 写python爬虫??太难学 下载了一些工具??太难用 这里推荐第2款采集数据的神器,后羿采集器,无 ...

  7. api可以主动采集用户数据吗_自动采集数据

    自动采集数据,三个方式: agent 方式: agent:就是一个客户端,在客户端上放置采集程序,agent采集完数据后就直接返回给api程序(目前就是django的一个程序) agent程序: #! ...

  8. 17. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据++dma中断通知

    adc 使用教程3-dma方式采集数据+dma中断通知 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1. ...

  9. 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据

    adc 使用教程2-dma+连续扫描方式采集数据 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1.时钟配 ...

最新文章

  1. QT开发(五十)——QT串口编程基础
  2. C语言文件操作解析(二)【转载】
  3. 数据库查询 sysobjects
  4. linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...
  5. 【VMC实验室】在QCloud上创建您的SQL Cluster(5)
  6. 【空间统计入门】笔记—空间关系和空间权重矩阵
  7. ASP.NET MVC——XX点餐管理系统后台项目实训总结书
  8. 金税盘没有及时清卡怎么办
  9. 零基础学SVM—Support Vector Machine(一)
  10. 事件监听(窗口关闭、输入框事件、计算器、画笔、鼠标、窗口、键盘)
  11. 继昨天的猜拳游戏,升级为老虎机版
  12. fragment添加失败错误查找
  13. Python小白入门分享
  14. 图片马赛克处理以及上传保存—网页端
  15. 深入理解java虚拟机第3版 周志明
  16. 机械革命台式计算机,机械革命台式机怎么样
  17. SoundCloud研发团队Sean Treadway谈SoundCloud架构演变
  18. r语言归一化_生物信息学之RMA(Robust Multi-Array Average)算法的归一化和最终计算过程...
  19. mysql数据库的两种备份方式(mysqldump,XBK)超详细
  20. 字符串处理 扩展的脚本技巧 正则表达式

热门文章

  1. Matlab之classification learner app无法从workspace导入label (response variable)
  2. 接口常见安全漏洞说明
  3. 分布式的Key-Value存储系统voldemort
  4. acwing.95.费解的开关
  5. 流量焦虑意外带来契机,“福禄控股们”赚钱容易做大难?
  6. docker CLI官方教程 run方法解析(docer run 、docker attach 与 docker exec的区别)
  7. mail企业邮箱登录入口有哪些?
  8. Windows系统盘瘦身
  9. Android BKS 格式证书制作,JKS 制作 BKS,解决 java.security.KeyStoreException: JKS not found 问题
  10. Matlab LZW编码