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 "异常日志告警