PowerShell 技能连载 - 日志自动化分析系统

在企业级运维中,日志分析是故障排查的核心环节。传统人工分析效率低下,本文演示如何通过PowerShell构建自动化日志分析系统,实现错误模式识别与趋势预测。

function Start-LogAnalysis {
    param(
        [string]$LogPath,
        [int]$ErrorThreshold = 5
    )

    try {
        $logs = Get-Content $LogPath
        $analysis = $logs | ForEach-Object {
            if ($_ -match '(ERROR|WARN)') {
                [PSCustomObject]@{
                    Timestamp = if ($_ -match '\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}') { $matches[0] }
                    Level = $matches[1]
                    Message = $_.Substring($_.IndexOf(':')+2)
                }
            }
        }

        $errorTrend = $analysis | Group-Object Level | Where-Object Name -eq 'ERROR'
        if ($errorTrend.Count -ge $ErrorThreshold) {
            Send-MailMessage -To "admin@company.com" -Subject "异常日志告警
PowerShell 技术 QQ 群