实战Filebeat采集Azure Blob日志

一 背景

Azure DevOps目前仍只在微软云Azure海外区域提供SaaS服务,Azure中国区域还没有发布。其实Azure DevOps可以管理各种云和应用部署的环境与平台,可以通过服务连接(Service Connection) 方便地连接Azure中国区域,以及其它Azure的特殊区域,比如美国政务云、德国区域等等。本文将带领大家一步一步配置好中国区域的订阅,以及建立起Azure DevOps到中国区域订阅的连接。

二 Azure 账号配置

Azure DevOps的服务连接支持多种连接方式,包括Azure Resource Manager, Azure Service Bus, Bitbucket Cloud, Kubernetes, Jenkins等。其中Azure Resource Manager需要对接一个Azure订阅中的Azure Active Directory (Azure AD) 应用程序和服务主体(service principal)。所以我们先来在Azure中国区域的控制台创建一个可以管理资源的 Azure AD 服务主体。

2.1 确认Azure AD 用户权限

要创建Azure AD 服务主体,必须具有足够的权限向 Azure AD 租户注册应用程序,并向应用程序分配 Azure 订阅中的角色。先来确认 Azure AD用户的权限。在服务列表中点击Azure Active Directory,会前进到如下的用户概况页。

我这个测试用户现在是全局管理员,默认情况下普通用户不能注册应用程序。如果需要普通用户也可以注册应用程序,可以在左侧导航链接点击 User Settings,把用户可以注册应用程序设置为启用。

2.2 创建Azure AD 服务主体

在控制台回到 Azure Active Directory,左侧导航链接选择应用注册,再点新注册。

为应用程序起个名字,比如"azure-devops",并记下这个名字,后面还会用到。

支持的帐户类型,选择Accounts in this organizational directory only,其它保持默认。

点击注册

2.3 给服务主体添加身份验证

为配合下一步Azure DevOps创建服务连接时的验证,我们给刚刚创建出的服务主体添加身份验证。这里我们选用应用程序机密的方式。

在Azure AD 中的"应用注册",选择刚创建出的应用程序。在左侧导航链接中选择"证书和机密"。然后在主窗格中点击"新建客户端机密"。

2.4 给应用程序分配订阅的角色

再来到控制台的订阅管理界面,选择到咱们正在操作的这个订阅,然后点击左侧导航链接中的"访问控制(IAM)",点击主窗格中的"添加",再点击添加角色分配。

在弹出的添加角色分配浮层中,角色选Contributor,分配权限选择User, group or service principal。

在选择格,输入前面创建的应用程序名,会搜索出来一个结果,要再点击一下这条结果,然后底下左边的保存按钮就变成可用了。

三 Azure Blob信息

创建bucket,用于存放日志

  • 存储账户信息
shell 复制代码
# 存储账户名称
xuelstorageaccount

# 存储链接url
storage_url: https://xuelstorageaccount.blob.core.chinacloudapi.cn/

# 密钥
7Nrxxxxxxxxxxxxxxxxxxxxxxxxxxxx=

# 链接字符串
DefaultEndpointsProtocol=https;AccountName=xuelstorageaccount;AccountKey=7NrRzC33xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxq8p4g==;EndpointSuffix=core.chinacloudapi.cn
  • 注册app信息
shell 复制代码
# 注册的APP ak信息
# appid
Service Principal Id:eea3xxxxxxxxxxxxxxxxxxxxxxxxxxxx61d

# ARM_CLIENT_SECRET
principal key:UKxxxxxxxxxxxxxxxxxxxxxxxxxxxxH5O

三 相关信息

四 Filebeat配置

直接在Filebeat 主文件中配置azure blob配置,修改filebeat.yml

shell 复制代码
filebeat.inputs:
- type: azure-blob-storage
  id: my-azureblobstorage-id
  enabled: true
  account_name: xuelstorageaccount
  storage_url: https://xuelstorageaccount.blob.core.chinacloudapi.cn/
#  storage_url: DefaultEndpointsProtocol=https;AccountName=xuelstorageaccount;AccountKey=7NrRzC3xxxxxxxxxxxxxxxxxxxxxxxxxxxxuq8p4g==;EndpointSuffix=core.chinacloudapi.cn
  endpoint: core.chinacloudapi.cn
  auth.connection_string.uri: DefaultEndpointsProtocol=https;AccountName=xuelstorageaccount;AccountKey=7NrRzC3xxxxxxxxxxxxxxxxxxxxxxxxxxxx8p4g==;EndpointSuffix=core.chinacloudapi.cn
  auth.shared_credentials.account_key: 7Nrxxxxxxxxxxxxxxxxxxxxxxxxxxxx+AStuq8p4g==
  containers:
#    - name: xuel-filebeat-container
#      max_workers: 3
#      poll: true
#      poll_interval: 10s
    - name: qujf
      max_workers: 3
      poll: true
      poll_interval: 10s

五 测试

上次日志到bucket中

重启filebeat

shell 复制代码
# 查看日志
[root@elk-host filebeat]# journalctl -fu filebeat

在kibana中查看

六 总结

实战Filebeat采集Azure Blob日志是一种有效的方式来收集和处理云环境中的日志数据。通过配置Filebeat,您可以轻松地连接到Azure Blob存储并实时采集日志,无需复杂的编程或手动操作。Filebeat的灵活性和可扩展性使得它成为处理大规模日志数据的理想选择。通过结合Azure Blob存储的强大功能和Filebeat的实时数据传输能力,您可以更好地管理和分析云环境中的日志信息,提高系统的可观测性和故障排查效率。无论是监控应用程序的性能,还是追踪安全事件,Filebeat和Azure Blob存储的组合都能为您提供可靠、高效的日志收集解决方案。

参考链接

相关推荐
草莓熊Lotso9 小时前
Linux 线程同步与互斥(一):彻底搞懂线程互斥原理、互斥量底层实现与 RAII 封装
linux·运维·服务器·开发语言·数据库·c++
j_xxx404_9 小时前
深入理解Linux底层存储:从物理磁盘架构到文件系统(inode/Block)原理
linux·运维·服务器·后端
南棱笑笑生9 小时前
Z:\K7\20260418给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时通过WinScp传送文件【SSH模式】
运维·ssh·rockchip
hutengyi9 小时前
四、nginx的优化和location匹配规则
运维·nginx
嵌入式×边缘AI:打怪升级日志9 小时前
深度剖析Linux按键驱动四种访问方式:从查询到异步通知
linux·运维·服务器
@insist1239 小时前
网络工程师-动态路由协议(二):BGP 协议与路由引入技术详解
运维·网络·网络工程师·软考·软件水平考试
Full Stack Developme9 小时前
Linux 软连接与硬连接比较
linux·运维·服务器
草莓熊Lotso9 小时前
Linux 线程同步与互斥(二):线程同步从条件变量到生产者消费者模型全解,原理 + 源码彻底吃透
linux·运维·服务器·c语言·开发语言·数据库·c++
程序员老邢10 小时前
【技术底稿 17】DevOps 监控告警实战踩坑复盘 —— 企微机器人告警 + Milvus 向量库监控全流程验证
运维·机器人·企业微信·devops·milvus
ITOWARE_SAPer18 小时前
选择SAP实施公司能否兼得官方授权与高性价比?
运维·能源·制造·零售