介绍
Alloy是Grafana产品公司旗下的一款新主推遥测数据采集工具,Grafana Alloy也是一个开源OpenTelemetry收集器,具有内置 Prometheus管道并支持指标、日志、跟踪和配置文件。Alloy支持为OTEL、Prometheus、Pyroscope、Loki等服务提供许多指标、日志、跟踪等原生数据管道以及数据采集功能。Alloy在Grafana产品生态中,用于替代Promital、Agent两个采集程序,Alloy提供了强大和灵活的模块组件配置功能,支持远比原Agent工具更多的数据格式处理功能和更多样的采集来源端、多平台数据转换能力;并且支持自定义配置组件、数据过滤、数据管道转发、本地配置、云端配置等,官方声明Alloy对更多平台协议数据兼容性更好、安全性和数据配置调试能力更强;
注:推出Alloy的同时官方也声明,不在维护Grafana Agent现有程序,后续Grafana Agent已被弃用,并将会持续到2025年10月31日为止,在2025年11月1日终止使用(EOL);官方建议迁移到Grafana Alloy,因此还在用Grafana Agent的同学,也因该尽快迁移到Grafana Alloy采集工具上;
官网
官网:Grafana Alloy | OpenTelemetry Collector distribution
文档:Grafana Alloy | Grafana Alloy documentation
下载
从Github获取已打包的二进制文件,支持linux、mac、windows等操作系统,按操作系统环境下载即可。
Github发包路径:https://github.com/grafana/alloy/releases/tag/v1.4.3
环境说明
为了方便演示,本地以windows环境为主,因此下载使用alloy-windows-amd64.exe.zip解压包,实际windows与linux环境使用配置文件一样,可以直接将本地调试好的yml配置文件复制到linux环境下使用;
安装Alloy
Alloy需要安装在应用服务所在主机上才能进行抓取,下载alloy-windows-amd64.exe.zip解压包后,解压到任意目录(非中文),在alloy-windows-amd64.exe程序同目录下创建config.alloy文件(此为启动加载配置文件)
Alloy命令启动配置
// 公开或私用组件指标模式(默认"--stability.level=generally-available")
alloy-windows-amd64.exe run config.alloy --stability.level=public-preview
// 实验性模式
alloy-windows-amd64.exe run config.alloy --stability.level=experimental
// linux后台启动
//nohup ./alloy-linux-amd64 run config.alloy > log.out 2>&1 &
需要注意的是,--stability.level表示当前启动稳定模式,experimental表示开放实验性功能(即一些未成熟的可用功能,生产不推荐)用于配置调试用,public-preview表示开放公共可预览特性等功能,generally-available表示已经成熟普遍可用的功能(默认,生产环境因用此配置);
更多详情配置参考官方:The run command | Grafana Alloy documentation
关于性能消耗
官方相关资源采集过程中性能消耗说明,参考:Estimate Grafana Alloy resource usage | Grafana Alloy documentation
Alloy基础配置
采集日志到Loki
// 收集日志
local.file_match "default" {
path_targets = [{
__path__ = "/data/log/info-*.log",
service = "systemName",
}]
}
// 记录采集位置
loki.source.file "default" {
targets = local.file_match.default.targets
forward_to = [loki.write.default.receiver]
}
// 日志发送loki
loki.write "default" {
endpoint {
url = "http://127.0.0.1:3100/loki/api/v1/push"
}
}
组件说明:
- local.file_match :本地文件加载路径与K/V类型自定义标签配置,path_targets为数组,支持多个路径配置,__path__支持通配符用法,如:__path__ = "/data/log/info-*.log",加载以info为前缀的适配log文件
- loki.source.file:从来源目标提取文件日志数据,并分发给目标组件
- loki.write:推送日志到Loki服务目标
采集指标到Prometheus
Alloy本身提供了多种平台与服务的指标抓取、处理、分发能力,并通过prometheus进行远端收集与分析;如:kafka、oracle、mysq