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

在企业级运维中,日志分析是故障排查的核心环节。传统人工分析效率低下,本文演示如何通过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 "异常日志告警