跳到主要内容

22 篇博文 含有标签「APO」

查看所有标签

基于APO四步实现炫酷的NGINX请求分析看板

· 阅读需 5 分钟

Cover 图

APO 充分利用 Vector + ClickHouse 实现的日志方案,做到了开箱即用、高效、低成本。利用 APO 的日志功能,不仅可以检索日志内容本身,还可以实现很多有意思的功能。本次为大家介绍使用 APO 的日志功能实现炫酷的 NGINX 请求分析看板,只需简单几步即可实现!

先上效果图:

  • 请求与耗时分析总览

1 图

  • 异常请求分析

2 图

  • URI请求分析

3 图

  • 请求日志明细

4 图


配置步骤

第一步 修改NGINX日志格式

打开 NGINX 配置文件(一般在/etc/nginx/nginx.conf路径下),按照下面的示例修改log_format部分,该部分要完全一样:

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '{"@timestamp":"$time_iso8601",'
'"client_ip":"$remote_addr",'
'"server_ip":"$server_addr",'
'"domain":"$server_name",'
'"request_method":"$request_method",'
'"path":"$uri",'
'"top_path":"$uri",'
'"query":"$args",'
'"request_length":$request_length,'
'"responsetime":$request_time,'
'"response_length":$body_bytes_sent,'
'"referer":"$http_referer",'
'"http_user_agent":"$http_user_agent",'
'"status":$status,'
'"upstreamhost":"$upstream_addr",'
'"upstreamtime":"$upstream_response_time"'
'}';
access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;
}

修改完成后,重启NGINX或者执行命令nginx -s reload使配置生效。

第二步 采集NGINX日志

在安装 apo-one-agent 的 Kubernetes 集群中,编辑名为apo-ilogtail-user-config的ConfigMap,添加采集NGINX日志的配置,注意修改其中LogPath为 NGINX 日志的路径,下面是示例:

data:
pod_stdout_all.yaml: |
...
pod_stdout_file.yaml: |
...
# 以下为新增配置内容
pod_log_file.yaml: |
enable: true
inputs:
- Type: file_log
LogPath: /var/log/nginx/
FilePattern: "*.log"
ContainerFile: true
processors:
- Type: processor_wait_for_signal
DisableSignalSampler: true
ContentsRename:
"__tag__:_container_id_": "_container_id_"
"__tag__:__path__": "_source_"
flushers:
- Type: flusher_http
RemoteURL: http://apo-vector-svc:4310

第三步 在 APO 平台上配置日志库

打开 APO 平台的全量日志页面,在“日志库”部分点击 +,添加新的日志库:

5 图

在弹出的配置页面中,按照以下步骤进行配置:

  1. “日志库名”填写nginx_access_log
  2. 在“匹配规则”中配置能够匹配到NGINX日志的规则,例如通过 _source_=/var/log/nginx/access.log 进行匹配
  3. “日志格式配置”中选择“结构化日志”,并在文本框中输入以下内容:
{
"@timestamp": "2024-12-06T06:44:17+00:00",
"client_ip": "10.244.0.46",
"client_region": "",
"client_city": "",
"client_latitude": 0.1,
"client_longitude": 0.1,
"server_ip": "10.244.167.148",
"domain": "localhost",
"request_method": "GET",
"path": "/grafana/api/live/ws",
"top_path": "/grafana/api/live/ws",
"query": "-",
"request_length": 1259,
"responsetime": 0.010,
"response_length": 10,
"referer": "-",
"http_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"status": 403,
"upstreamhost": "10.96.2.121:80",
"upstreamtime": 0.009
}
  1. 最后点击“保存”。

第四步 导入NGINX看板并查看数据

打开 APO 平台的“中间件大盘”,在右侧点击“新建”->“导入”:

6 图

在导入页面,输入仪表板ID“22037”,点击加载:

7 图

然后在页面中选择数据源为“ClickHouse”(如果没有该数据源需要手动配置),点击“Import”即可导入成功。在该看板的“项目”筛选框中手动输入

apo.logs_nginx_access_log

(与配置日志库时的日志库名称保持一致):

8 图

到这里就完成了所有步骤,尽情享受炫酷的NGINX请求分析看板吧!


鸣谢

文中使用的 Nginx 日志分析看板StarsL 设计并发布在 Grafana 中,感谢大佬的分享。文中给出的方案简化了配置流程,因此看板中部分数据可能存在缺失,您可以检查看板中的查询条件,根据需求调整 NGINX 日志格式解锁完整看板。


APO介绍:

国内开源首个 OpenTelemetry 结合 eBPF 的向导式可观测性产品

apo.kindlingx.com

https://github.com/CloudDetail/apo

重新认识APO——DeepSeek带来可观性领域革命

· 阅读需 14 分钟

cover 图

Docker通过封装程序执行类库引爆了云原生技术革命,我们相信在人工智能时代,数据结合经验知识封装而成的Agentic workflow将引爆可观测性革命。

AI驱动的可观测性革命

APO致力于将AI自治Agents打造为可观测性领域的智能核心,彻底颠覆故障排查、性能调优和根因分析的传统方式。在自治Agents的加持下,可观测性系统不再是被动工具,而是主动解决问题的智能伙伴。当告警触发时,智能体立即接管,自动分析根因并提供解决方案。想象一下,当某个微服务的数据库查询效率低下,自治智能体不仅会立刻通知您,还会奉上详细的故障报告和精准修复建议。您甚至可以用自然语言与它对话,只需问一句:"为什么我的应用变慢了?" AI Agents 就会清晰地回答:"服务 A 的数据库查询触发了全表扫描,导致延迟激增,建议优化索引。"

1 图 未来完全自治的智能体

AI自治智能体是APO的终极愿景,而在这条革命之路上,Agentic workflow是关键一环,也是APO新发布的核心功能,它让可观测性实现了第一步质的飞跃。


Agentic workflow(工作流):你的经验,Agents的灵魂

通用LLM虽然强大,但它们缺乏IT领域的垂直专业知识。IT系统错综复杂且千差万别,不同系统间差异巨大,仅靠通用知识难以应对实际运维挑战。

APO的突破性创新在于将"专有经验知识"——也就是你的运维智慧——注入智能体的核心。普通智能体只会按照自己预设的逻辑行事,完全忽视你多年积累的宝贵经验。而APO彻底改变了这一点,让你通过构建Agentic workflow,将专业知识直接输入系统,成为智能体决策的核心驱动力。

想象您团队中有位经验丰富的老运维李工,每次系统出现问题,他总能快速找到根因—因为他积累了丰富的经验。但当李工休假时,其他人却要花上数倍时间处理同样的问题。APO Agentic workflow就像把李工的经验数字化,让每个人都能像他一样高效解决问题。

APO已经预定义了多种场景的工作流,让您立即体验智能运维的威力:

  • 告警智能分析:当数据库CPU突然飙升时,传统告警只会发出"CPU使用率超过90%"的简单通知。而APO会立即启动分析工作流,自动收集关联的SQL查询、连接数、I/O等信息,识别出"这是因为新上线的用户注册接口缺少索引导致的全表扫描",甚至直接给出优化SQL的建议
  • 自动化运维巡检:周一早上,您不再需要一个个检查周末系统运行状况。APO会自动执行巡检工作流,检查所有服务的健康状态、资源使用趋势、异常日志,生成一份简明扼要的周末系统报告:"发现用户服务在周日凌晨出现三次短暂CPU峰值,但未影响用户体验;预测存储空间将在14天内达到警戒值,建议本周四前扩容。"
  • 复杂故障快速诊断:面对"用户偶发性登录失败"这类复杂问题,传统方法需要团队协作、逐个排查可能原因。而APO工作流会系统性地收集证据:先检查用户服务本身,发现无异常;接着检查依赖服务,发现认证服务有偶发超时;继续追踪发现是特定网络路径在高峰期丢包率增高。整个诊断过程从原本的数小时缩短至数分钟

2 图 开箱即用的面向问题解决的Agentic workflow

每个系统环境都有其独特性,预设工作流无法覆盖所有场景。因此,APO专为可观测性领域打造了工作流编排平台。该平台基于最流行和最易用的通用AI工具Dify打造,APO基于可观测性领域存在大量多模型数据的特点,为用户提供了一系列可直接拖拽使用的数据查询和异常检测工具,任何人都能够轻松地在这个平台上将自己的经验固化为工作流,为后续实现自治Agents奠定基础。

3 图 基于Dify专为可观测性领域打造的平台

例如,您有一套自己总结的"数据库性能问题排查十步法",只需通过直观的可视化界面将这些步骤拖拽组合,添加判断条件“如果慢查询超过10条,则收集索引使用情况",再让大模型根据实际情况决策下一步执行流程,这样就能将您的专业知识转化为自动化工作流。

APO预设的工作流同样基于该平台构建,每个工作流都能够根据实际的场景进行修改,让工作流真正融入到工作的流程中。

有了工作流,李工的年底休假计划再也不会引起团队恐慌,因为他的经验已经被编排成工作流,成为了APO智能体的一部分,24x7为团队服务。随着工作流的不断积累和优化,您实际上是在培养一个越来越了解您系统的AI助手,它会成为您团队中最可靠的"成员"。


数据基石:为智能体提供坚实支撑

Agentic workflow的核心能力依赖于对数据的有效利用。当前,可观测性数据主要包括指标、日志和链路追踪三大支柱,持续剖析火焰图等新兴数据也逐渐成为主流。然而,这些数据结构多样、体量庞大,直接输入通用LLM既低效又受限于上下文窗口,难以发挥最佳效果。因此,APO设计了专为LLM优化的数据平面,从以下两个维度构建:

  • 横向视角:就像一张智能地图,直观展示整个系统的服务关系和健康状态。例如,当订单服务出现延迟,您能立即看到是哪个依赖服务出现问题——支付服务响应时间异常,上面标红提示
  • 纵向关联:系统自动将不同层面的数据关联起来。当您点击异常的支付服务,能一目了然地看到它运行在哪个容器、哪个节点、使用了哪些资源、有哪些日志异常、哪些API调用超时——所有信息一键可得,不再需要在多个系统间来回切换

数据基石的横向设计让AI Agents能够迅速获取系统全貌,立即锁定异常组件;纵向设计则使其能够沿着问题线索深入挖掘,追溯到根本原因。例如,当检测到服务延迟时,AI Agents可通过横向视图确定问题服务,再利用纵向数据追踪具体原因,从容器到主机,从应用到中间件,层层剖析,直达问题核心。

APO提供内置采集工具,能够通过一键安装部署构建以上数据平面。对于已经使用了其他采集工具的用户,APO同样支持无缝对接现有数据源,用户无需改造系统即可使用这一革命性数据平面。这一创新设计为智能体提供了高效、结构化的数据基础,让AI能够真正理解系统行为并做出精准决策。

4 图


生态建设:让智能体持续进化

在融合大语言模型、数据基石和专有知识后,APO迈出了实现其愿景的关键一步。APO深知,系统的可观测性越丰富,智能体的能力就越强。然而,现有数据往往无法覆盖所有盲区,预设的工作流也难以应对复杂的运维场景。为此,APO打造了一个开放协作的生态系统,聚焦于数据生态工作流生态两大核心,助力AI Agents适应多样化环境并持续进化。

数据生态:多元数据协同

作为一个开源项目,APO构建了一个开放平台。故障排查需要有很多维度的数据、这个平台支持厂商或者专家无缝提供各类新数据,丰富智能体的可观测资源。这些数据会被整合成自然语言描述的查询工具,为智能体提供故障排查和性能优化的有力支持。

对于专有数据,厂商或者专家还可将其领域知识嵌入特定工作流中。用户使用这些工作流时,能直接体验数据的价值,无需额外学习或积累经验。例如厂商云观秋毫提供了基于eBPF实现的北极星指标和故障排查工作流,龙蜥社区系统运维SIG提供SysOM的CPU& GPU持续剖析大规模数据、AI火焰图分析。

5 图

Agentic workflow工作流生态:群智共享

APO的Agentic workflow工作流生态可以方便汇聚群体智慧:

  • 工作流的本质:专家的独有智慧与经验,通过workflow和LLM节点变成可以重复执行的智能体
  • 经验共享:专家可以分享其智慧与经验,以供其他人使用,比通过博客文章分享更有利于其他用户使用
  • 群体智慧逼近AI自治智能体:随着不同场景的工作流越来越多,当各种故障场景都能有工作流覆盖,完全自治的智能体就不远了

分享与协作,每个用户都能享受到最先进的可观测性智能体。


携手共创智能运维未来

APO以AI之力、社区之能,致力于彻底革新可观测性领域。我们坚信,开放协作将加速智能体的实现,让运维工作彻底摆脱繁琐和低效,进入全新的智能时代。无论您是数据提供者、运维专家还是技术爱好者,APO诚邀您加入这场变革,共同塑造可观测性智能体的未来!

现在,就从体验APO的Agentic workflow开始,迈出智能运维的第一步吧!


6 图