You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已有Azure Monitor Agent(Linux),如何用PM2日志接入Azure Monitor?

基于Azure Monitor Agent收集PM2日志并创建KQL指标与警报

一、配置Azure Monitor Agent采集PM2日志

已部署Linux版AMA的前提下,通过数据收集规则(DCR)配置日志采集:

  • 找到目标Linux VM对应的数据收集规则,添加自定义日志数据源
  • 指定PM2日志绝对路径:默认路径为/home/[用户名]/.pm2/logs/[应用名]-out.log和/home/[用户名]/.pm2/logs/[应用名]-error.log,可使用通配符如/home/[用户名]/.pm2/logs/*.log匹配所有日志
  • 设置日志格式为文本日志,若日志自带时间戳,配置对应的时间戳提取规则,确保TimeGenerated字段对应日志实际生成时间
  • 保存DCR,等待5-10分钟让配置生效,日志将流入CustomLogs表(或自定义表名)

二、用KQL分析PM2日志

先运行基础查询确认日志采集状态:

CustomLogs
| where TimeGenerated > ago(1h)
| project TimeGenerated, RawData, Computer

针对业务需求编写细分查询:

1. 统计错误日志频次

CustomLogs
| where RawData contains "ERROR" or _FileName contains "-error.log"
| where TimeGenerated > ago(5m)
| summarize ErrorCount = count() by bin(TimeGenerated, 1m), Computer

2. 统计应用重启次数

CustomLogs
| where RawData contains "PM2 restart process"
| where TimeGenerated > ago(1h)
| summarize RestartCount = count() by Computer

3. 解析自定义业务错误码

若应用日志含格式如CODE:500的错误码:

CustomLogs
| where RawData matches regex @"CODE:(\d+)"
| parse RawData with * "CODE:" ErrorCode:int *
| where TimeGenerated > ago(30m)
| summarize ErrorCount = count() by ErrorCode, Computer

三、创建自定义指标

基于KQL查询生成可用于警报的指标:

  1. 在Azure Monitor日志界面运行目标KQL查询
  2. 点击顶部「新建警报规则」,进入配置流程
  3. 在「信号逻辑」中选择「自定义日志搜索」,粘贴查询语句,设置聚合方式(如计数、总和)、时间粒度与评估频率
  4. 保存为自定义指标,指标将同步至Azure Monitor指标库

四、配置警报规则

  1. 在警报规则配置页设置阈值:例如「5分钟内错误计数超过10次」触发警报
  2. 关联动作组:配置邮件、Teams消息、Webhook等通知方式(无动作组需先创建)
  3. 设置警报名称、描述与严重级别,保存规则

注意事项

  • 确保AMA有日志读取权限:执行sudo chmod o+r /home/[用户名]/.pm2/logs/*.log赋予azmonagent用户读取权限
  • 若PM2日志无标准时间戳,需在DCR中调整时间提取规则,避免TimeGenerated为采集时间而非日志生成时间
  • KQL查询需根据实际日志格式调整,若日志为JSON格式,可使用parse_json(RawData)解析结构化字段

内容的提问来源于stack exchange,提问作者EigenFool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:17:40