针对单台浪潮服务器运行Windows Server 2019和SQL Server的MES系统场景,低成本、高效能监控策略(兼顾软硬件健康)

一、监控架构设计原则

  • 轻量化:优先使用Windows原生工具和免费方案,避免额外资源消耗
  • 关键性聚焦:仅监控直接影响MES运行的核心指标
  • 自动化告警:异常发生时主动触发通知,无需人工巡检
  • 容灾预备:单服务器场景需强化备份与快速恢复能力

二、硬件健康监控(浪潮服务器)

1. 硬件状态监控
  • 工具:浪潮服务器iBMC远程管理(Web界面或IPMI命令行)
    • 关键指标:
      • 磁盘SMART状态(重点关注Reallocated Sectors Count
      • RAID阵列健康度(通过ipmitool sdr type "Storage"查询)
      • 温度/电压告警(设置阈值:CPU温度<75℃)
    • 配置邮件告警:在iBMC管理界面设置阈值触发邮件通知
2. 存储健康
  • 脚本监控(PowerShell)
    # 检查物理磁盘健康状态(需iBMC SNMP支持)
    $diskHealth = Get-WmiObject -Query "SELECT Status FROM Win32_DiskDrive" 
    if ($diskHealth.Status -ne "OK") {
      Send-MailMessage -To "admin@example.com" -Subject "磁盘硬件故障" -Body "物理磁盘状态异常:$($diskHealth.Status)"
    }
    

三、操作系统监控(Windows Server 2019)

1. 性能基线监控
  • 工具:性能监视器(PerfMon)

    • 创建数据收集器集,包含以下计数器:
      • Processor(_Total)\% Processor Time(阈值:持续>85%告警)
      • Memory\Available MBytes(阈值:<10%总内存)
      • LogicalDisk(C:)\% Free Space(阈值:<15%时告警)
      • PhysicalDisk(_Total)\Avg. Disk sec/Read(阈值:>20ms告警)
  • 配置方法

    1. 运行perfmon → 数据收集器集 → 用户定义 → 新建
    2. 添加上述计数器,设置1分钟采样间隔
    3. 右键属性 → 计划任务:每天生成报告并保存到D:\PerfLogs
2. 关键事件日志监控
  • 工具:事件查看器 + 计划任务告警

    • 重点关注事件ID:
      事件ID含义响应动作
      41意外重启检查UPS电源日志
      1001蓝屏记录分析dump文件
      2019内存硬错误运行mdsched内存检测
      51磁盘写入延迟检查磁盘健康度
  • 自动化告警脚本(保存为event_alert.bat):

    @echo off
    eventquery.vbs /L System /R 100 /FI "ID eq 41 or ID eq 51" > last_events.txt
    findstr /C:"41" last_events.txt && powershell -Command "Send-MailMessage -To 'admin@example.com' -Subject '系统异常重启' -Body '检测到意外关机事件,请立即检查!'"
    

四、SQL Server专项监控

1. 基础性能指标
  • 工具:SQL Server Management Studio (SSMS) 内置报表
    • 每日检查:
      • 报表Dashboard → 查看等待类型(重点监控PAGEIOLATCH_*
      • Disk Usage → 检查事务日志文件增长情况
    • 关键计数器:
      • SQLServer:Buffer Manager\Page life expectancy(阈值:<300秒告警)
      • SQLServer:SQL Statistics\Batch Requests/sec(对比基线波动>50%需排查)
2. 慢查询与死锁监控
  • 启用跟踪

    -- 开启死锁跟踪
    DBCC TRACEON(1222, -1)
    -- 记录慢查询(>5秒)
    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE
    EXEC sp_configure 'cost threshold for parallelism', 5
    RECONFIGURE
    
  • 日志分析脚本

    # 检查SQL错误日志中的死锁
    $logPath = "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG"
    Select-String -Path $logPath -Pattern "deadlock victim" | ForEach-Object {
      Send-MailMessage -To "dba@example.com" -Subject "SQL死锁告警" -Body $_.Line
    }
    

五、MES应用层监控

1. 进程与服务监控
  • 关键服务

    • MES主服务(根据实际服务名设置监控)
    • IIS/WCF依赖服务(如W3SVCNetTcpPortSharing
  • PowerShell守护脚本(保存为service_watch.ps1):

    $criticalServices = @("MESService", "MSSQLSERVER", "W3SVC")
    foreach ($service in $criticalServices) {
      $status = (Get-Service -Name $service).Status
      if ($status -ne "Running") {
        Start-Service $service -ErrorAction SilentlyContinue
        Send-MailMessage -To "admin@example.com" -Subject "服务异常" -Body "$service 服务停止,已尝试重启!状态:$status"
      }
    }
    
    • 创建计划任务每5分钟执行一次:
      schtasks /create /tn "MES服务监控" /tr "powershell -File C:\Scripts\service_watch.ps1" /sc minute /mo 5 /ru SYSTEM
      
2. 应用日志监控
  • 日志路径(示例):

    • C:\MES\Logs\App*.log
    • 监控关键词:ERRORTimeoutConnection refused
  • 实时监控脚本

    Get-Content -Path "C:\MES\Logs\App.log" -Wait | Select-String -Pattern "ERROR" | ForEach-Object {
      Send-MailMessage -To "dev@example.com" -Subject "MES应用错误" -Body $_.Line
    }
    

六、备份与恢复策略

1. 数据备份方案
备份类型频率工具存储位置
SQL完全备份每日2:00 AMSQL Server维护计划外部USB硬盘 + NAS
事务日志备份每小时一次BACKUP LOG命令NAS
系统镜像备份每周日1:00 AMWindows Server Backup外置硬盘
2. 快速恢复测试
  • 季度演练步骤
    1. 从备份恢复SQL数据库到测试实例
    2. 使用DBCC CHECKDB验证数据一致性
    3. 记录恢复时间目标(RTO)并优化流程

七、告警通知整合

统一告警平台搭建
  • 方案:使用免费版Prometheus + Alertmanager
    1. 部署windows_exporter采集指标
    2. 配置告警规则示例:
      groups:
      - name: MES监控
        rules:
        - alert: 高CPU使用率
          expr: 100 - (avg by(instance)(rate(windows_cpu_time_total{mode="idle"}[5m])) * 100) > 85
          for: 5m
          labels:
            severity: critical
          annotations:
            summary: "CPU过载 ({{ $value }}%)"
      
    3. 集成邮件/企业微信通知

八、维护计划表

任务频率执行方式
清理临时文件每周一cleanmgr /sagerun:1
更新Windows补丁每月第二周WSUS自动审批
检查备份完整性每周五手动验证3个随机备份
重启服务器(可选)每季度维护窗口期手动执行

实施成本对比

方案成本实施难度适合场景
纯PowerShell脚本0元★★☆☆☆紧急监控需求
Prometheus + Grafana0元★★★☆☆长期可视化监控
SolarWinds SAM试用版免费30天★★☆☆☆短期深度监控体验

推荐选择:先用PowerShell脚本实现核心监控(30分钟部署),同时逐步搭建Prometheus实现历史数据分析,形成完整监控闭环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值