ELK使用Fleet集成Azure Metrics实战

2024年 2月 11日 40.3k 0

一 背景

在目前新版本中,ELK集成中利用elastic-agent可以真多非常的云及中间价进行相关指标采集,不仅仅限于日志,利用公有云的API可以调用监控数据,配合日志进行安全分析,可以更全面的展示云上的资源指标,本文将使用ELK(Elasticsearch、Logstash、Kibana)的Fleet功能来集成Azure Metrics,以实现对Azure资源的指标数据的监控和分析。ELK是一个开源工具组合,用于日志管理和分析,而Azure Metrics是Azure云平台提供的一种服务,用于收集和存储Azure资源的指标数据。Fleet是ELK的管理工具,可用于集中管理多个Elasticsearch和Kibana实例。

通过使用Fleet,我们可以轻松管理多个Elasticsearch和Kibana实例,并在这些实例上配置和监控Azure Metrics数据。具体步骤如下:

  • 安装和配置Elasticsearch和Kibana:在一台服务器上安装和配置Elasticsearch和Kibana实例。确保它们能够正常运行。
  • 配置Fleet Server:在Elasticsearch集群中选择一台服务器作为Fleet Server,并将其配置为Fleet的集中管理节点。
  • 创建Fleet Agent Policy:使用Kibana界面创建一个Fleet Agent Policy,该策略定义了要在Fleet Agents上执行的任务和配置。
  • 部署Fleet Agents:将Fleet Agents部署到要监控的目标主机上,这些主机上运行着Azure资源。
  • 配置Azure Metrics数据源:在Fleet Agent Policy中配置Azure Metrics数据源,指定要收集的指标、频率等。
  • 创建Kibana仪表板:使用Kibana创建仪表板来可视化和分析来自Azure Metrics的数据。您可以根据需要创建各种图表和可视化组件。
  • 通过上述步骤,使用ELK的Fleet功能集成Azure Metrics,从而实现对Azure资源的实时监控和分析。Fleet将协调和管理Fleet Agents,它们将从Azure Metrics收集数据,并将其发送到Elasticsearch进行索引和存储。然后,您可以使用Kibana来查询和可视化这些数据,以获得对Azure资源性能和使用情况的深入洞察。

    二 概述

    ELK(Elasticsearch、Logstash、Kibana)是一套用于日志管理和分析的开源工具栈,而Azure Metrics是Azure云平台提供的监控和指标服务。在实战中,你可以通过使用Fleet来集成ELK和Azure Metrics,实现将Azure云平台中的指标数据发送到ELK堆栈,进行分析和可视化。首先,设置Elasticsearch集群和Kibana,然后安装配置Beats和Metricbeat,这些是轻量级的数据收集器。使用Metricbeat的Azure模块,配置认证信息和资源筛选条件,Metricbeat将收集Azure Metrics数据并发送到Elasticsearch集群中的指定索引。最后,通过Kibana创建仪表板和可视化图表,使用强大的查询语言和视觉化工具来分析和监控Azure资源的性能。这样的集成能够实时获取和分析Azure Metrics数据,帮助你更好地理解和优化云平台上的应用和服务。

    三 添加集成策略

    配置增加Azure Storage Account Metrics 集成

    需要在Azure 账户下注册应用,之后授权应用对应storage account的权限,在之前一篇azure 应用密钥创建及授权的讲解过,在此不再展开。

    必须的认证azure_metrics 集成信息:

    Client ID::应用程序的唯一标识符(也称为应用程序ID)

    Client Secret:客户端/应用程序的秘密/密钥

    Subscription ID: azure订阅的唯一标识符

    Tenant ID: Azure Active Directory实例的唯一标识符

    Resource Manager Endpoint:可选,默认情况下将使用azure公共环境,要覆盖,用户可以提供特定的资源管理器端点,以便使用不同的azure环境

    四 利用Fleet进行安装部署

    4.1 Fleet相关概念

    • Fleet Server:是连接 Elastic Agents机制。它支持可伸缩的基础设施,并在Elastic Cloud和自管理集群中得到支持。Fleet Server是一个单独的进程,与已部署的弹性代理进行通信。它可以从任何可用的x64体系结构Elastic Agent工件启动。

    • Elastic Agent是一种单一的、统一的方式,用于向主机添加对日志、指标和其他类型数据的监控。它还可以保护主机免受安全威胁,从操作系统查询数据,从远程服务或硬件转发数据,等等。单个代理使跨基础设施部署监视变得更容易、更快。每个代理都有一个可以更新的策略,以添加针对新数据源、安全保护等的集成。
      如下图所示,Elastic Agent可以监视部署它的主机,并且可以从无法直接部署的远程服务和硬件收集和转发数据。
    • Integrations:Elastic integrations提供了一种将Elastic连接到外部服务和系统的简单方法,并快速获得洞察力或采取行动。可以收集新的数据源,并且经常附带开箱即用的资产,如仪表板、可视化和管道,以从日志和事件中提取结构化字段。这使得在几秒钟内获得洞察力变得更加容易。集成可用于流行的服务和平台,如Nginx或AWS,以及许多通用的输入类型,如日志文件。
      Kibana提供了一个基于web的UI来添加和管理集成。您可以浏览显示Elastic Agent和Beats集成的可用集成的统一视图。
    • Elastic Agent policies:要在哪些主机上运行哪些集成。您可以将弹性代理策略应用于多个代理,从而使大规模管理配置变得更加容易。当您添加集成时,您可以配置日志和指标的输入,例如Nginx访问日志的路径。完成后,将集成保存到一个Elastic Agent策略中。下次注册的代理签到时,他们会收到更新的信息。自动部署策略比使用SSH、Ansible剧本或其他工具自己部署策略要方便得多。

    4.2 Fleet Server部署

    添加Fleet配置信息

    使用rpm方式部署Fleet Server

    curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.10.2-x86_64.rpm
    sudo rpm -vi elastic-agent-8.10.2-x86_64.rpm
    sudo elastic-agent enroll 
      --fleet-server-es=https://10.206.16.13:9200 
      --fleet-server-service-token=AAEAAWVsYXNxxxxxxxxxZw 
      --fleet-server-policy=fleet-server-policy 
      --fleet-server-es-ca-trusted-fingerprint=5562f7b1xxxxxxxxd94a36c 
      --fleet-server-port=8220 --insecure
    sudo systemctl enable elastic-agent
    sudo systemctl start elastic-agent
    

    如何注册异常,可以将主机名添加进入hosts文件中。

      127.0.0.1 elk-server
    

    查看已完成注册。

    image.png

    4.3 Agent Policies创建

    Agent Policies确定在Agent上运行哪些策略集成,例如采集Azure Metric信息等,在此创建对接Azure VM

    4.4 Agent部署

    当Fleet Server部署完成后,之后进行Fleet Agent部署。

    在Agent 服务器上执行Agent注册

    curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.10.2-x86_64.rpm
    sudo rpm -vi elastic-agent-8.10.2-x86_64.rpm
    sudo elastic-agent enroll --url=https://127.0.0.1:8220 --enrollment-token=QlVjxxxxxxxxTZBQQ== --insecure
    sudo systemctl enable elastic-agent 
    sudo systemctl restart elastic-agent
    

    查看注册Agent信息是否异常。

    五 配置Polices

    在Agent policies关联的Policies上绑定集成。

    集成中根据自己需求选择对应的集成应用,在此选择Azure Billing Metrics

    填写Azure 的相关信息,Azure 应用及API权限信息在之前文章讲过,在此不再展开

    选择Agent 策略。保持并进行更新部署

    完成后可以看到Agent下绑定了两个集成,一个是采集Agent系统信息,一个是刚创建的获取Azure 账单信息。

    可以在Agent的Logs查看更新日志。

    数据集可以多选几个统一查看

    完成后,可以在DashBoard中查看对应指标

    可以通过system集成查看系统信息,其中也包含了各类安全信息。

    查看Azure账单信息。

    同样的操作,可以配置多个Agent,同一个Agent也可以添加多个集成进行指标采集。

    同时可以添加Packebeat收集网络信息

    六 注意事项

    • 注意azure在中国又世纪互联运营,需要配置相关采集指标的时候,指定Active Directory Endpoint、Resource Manager Endpoint中。
    • 目前采集的指标部分字段没有数据,后续需进一步测试。
    • 使用Fleet进行部署Agent 的目录在/var/lib/elastic-agent 下与独立部署目前不同,排查问题可以在对应目录下查看。

    七 总结

    ELK集成Azure Metrics可以帮助您实现对Azure资源的实时监控和分析。通过将ELK的强大搜索和分析功能与Azure Metrics的数据集成,您可以获得对Azure资源性能和使用情况的深入洞察,并及时采取必要的措施来优化和管理这些资源。

    参考链接

    • www.elastic.co/cn/blog/ela…

    • www.elastic.co/guide/en/fl…

    • azure.microsoft.com/en-us/prici…

    • www.elastic.co/guide/en/fl…

    • www.elastic.co/guide/en/ob…

    • Quickstart: Register an application with the Microsoft identity platform

    • Use the portal to create an Azure AD application and service principal that can access resources

    相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论