安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0
注意:在独立模式(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 中,输入:
- 在 indices 项中,输入
logs-*-*
,metrics-*-*
, nginx-*-*,traces-*-*
andsynthetics-*-*
- 在 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相关推荐
- Observability:我们该选 Beats 还是 Elastic Agents 来采集数据?
除了 Logstash 之外,Elastic 提供了两种主要的方式来向 Elasticsearch 发送数据: 我们可以选择直接把数据从 Beats 发送至 Elasticsearch.当然我们也可以 ...
- windows 安装汽车之家falcon插件 采集数据
安装模块 easy_install -i http://pypi.douban.com/simple/ pypiwin32 wmi flask psutil winstats guppy 下载 htt ...
- Elasticsearch:如何在 Elastic Agents 中配置 Beats 来采集定制日志
在我之前的文章 "Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0",我详细地描述了如何安装 Elastics ...
- Flume安装部署,采集方案配置文件编写案例,启动agent采集数据
1.2 Flume实战案例 1.2.1 Flume的安装部署 1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压 tar -zxvf ...
- citespace(一)采集数据安装和使用
CNKI采集数据 使用CiteSpace进行分析的文献输出类型为"Refworks" 格式.这里建议输出"Refworks" 和"Endnote&qu ...
- 后羿采集器怎么导出数据_推荐爬虫神器后羿采集器,小白也能一键采集数据
你有没有烦恼过,如何将网页中包含的各种信息转变为有用的数据呢? 粘贴复制??太累 开发软件??太贵 写python爬虫??太难学 下载了一些工具??太难用 这里推荐第2款采集数据的神器,后羿采集器,无 ...
- api可以主动采集用户数据吗_自动采集数据
自动采集数据,三个方式: agent 方式: agent:就是一个客户端,在客户端上放置采集程序,agent采集完数据后就直接返回给api程序(目前就是django的一个程序) agent程序: #! ...
- 17. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据++dma中断通知
adc 使用教程3-dma方式采集数据+dma中断通知 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1. ...
- 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据
adc 使用教程2-dma+连续扫描方式采集数据 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1.时钟配 ...
最新文章
- QT开发(五十)——QT串口编程基础
- C语言文件操作解析(二)【转载】
- 数据库查询 sysobjects
- linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...
- 【VMC实验室】在QCloud上创建您的SQL Cluster(5)
- 【空间统计入门】笔记—空间关系和空间权重矩阵
- ASP.NET MVC——XX点餐管理系统后台项目实训总结书
- 金税盘没有及时清卡怎么办
- 零基础学SVM—Support Vector Machine(一)
- 事件监听(窗口关闭、输入框事件、计算器、画笔、鼠标、窗口、键盘)
- 继昨天的猜拳游戏,升级为老虎机版
- fragment添加失败错误查找
- Python小白入门分享
- 图片马赛克处理以及上传保存—网页端
- 深入理解java虚拟机第3版 周志明
- 机械革命台式计算机,机械革命台式机怎么样
- SoundCloud研发团队Sean Treadway谈SoundCloud架构演变
- r语言归一化_生物信息学之RMA(Robust Multi-Array Average)算法的归一化和最终计算过程...
- mysql数据库的两种备份方式(mysqldump,XBK)超详细
- 字符串处理 扩展的脚本技巧 正则表达式
热门文章
- Matlab之classification learner app无法从workspace导入label (response variable)
- 接口常见安全漏洞说明
- 分布式的Key-Value存储系统voldemort
- acwing.95.费解的开关
- 流量焦虑意外带来契机,“福禄控股们”赚钱容易做大难?
- docker CLI官方教程 run方法解析(docer run 、docker attach 与 docker exec的区别)
- mail企业邮箱登录入口有哪些?
- Windows系统盘瘦身
- Android BKS 格式证书制作,JKS 制作 BKS,解决 java.security.KeyStoreException: JKS not found 问题
- Matlab LZW编码