立山 发表于 2025-4-3 12:50:59

针对单台海潮服务器运行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)**:
  ```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`):
  ```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. 慢查询与死锁监控**
- **启用跟踪**:
  ```sql
  -- 开启死锁跟踪
  DBCC TRACEON(1222, -1)
  -- 记录慢查询(>5秒)
  EXEC sp_configure 'show advanced options', 1
  RECONFIGURE
  EXEC sp_configure 'cost threshold for parallelism', 5
  RECONFIGURE
  ```
- **日志分析脚本**:
  ```powershell
  # 查抄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依赖服务(如`W3SVC`、`NetTcpPortSharing`)
- **PowerShell守护脚本**(保存为`service_watch.ps1`):
  ```powershell
  $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分钟实行一次:
    ```bat
    schtasks /create /tn "MES服务监控" /tr "powershell -File C:\Scripts\service_watch.ps1" /sc minute /mo 5 /ru SYSTEM
    ```
#### **2. 应用日志监控**
- **日志路径**(示例):
  - `C:\MES\Logs\App*.log`
  - 监控关键词:`ERROR`、`Timeout`、`Connection refused`
- **实时监控脚本**:
  ```powershell
  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 AM | SQL Server维护操持  | 外部USB硬盘 + NAS |
| 事务日志备份   | 每小时一次 | `BACKUP LOG`下令    | NAS            |
| 系统镜像备份   | 每周日1:00 AM | Windows Server Backup | 外置硬盘       |
#### **2. 快速恢复测试**
- **季度演练步骤**:
  1. 从备份恢复SQL数据库到测试实例
  2. 使用`DBCC CHECKDB`验证数据一致性
  3. 记录恢复时间目标(RTO)并优化流程
---
### **七、告警关照整合**
#### **同一告警平台搭建**
- **方案**:使用免费版**Prometheus + Alertmanager**:
  1. 部署`windows_exporter`收罗指标
  2. 配置告警规则示例:
     ```yaml
     groups:
     - name: MES监控
       rules:
       - alert: 高CPU使用率
         expr: 100 - (avg by(instance)(rate(windows_cpu_time_total{mode="idle"})) * 100) > 85
         for: 5m
         labels:
           severity: critical
         annotations:
           summary: "CPU过载 ({{ $value }}%)"
     ```
  3. 集成邮件/企业微信关照
---
### **八、维护操持表**
| 任务                | 频率     | 实行方式            |
|---------------------|----------|---------------------|
| 清理临时文件        | 每周一   | `cleanmgr /sagerun:1` |
| 更新Windows补丁     | 每月第二周 | WSUS自动审批       |
| 查抄备份完整性      | 每周五   | 手动验证3个随机备份 |
| 重启服务器(可选)  | 每季度   | 维护窗口期手动实行 |
---
### **实行成本对比**
| 方案                | 成本   | 实行难度 | 得当场景           |
|---------------------|--------|----------|--------------------|
| 纯PowerShell脚本    | 0元    | ★★☆☆☆   | 紧急监控需求       |
| Prometheus + Grafana| 0元    | ★★★☆☆   | 长期可视化监控     |
| SolarWinds SAM试用版| 免费30天| ★★☆☆☆   | 短期深度监控体验   |
**保举选择**:先用PowerShell脚本实现焦点监控(30分钟部署),同时逐步搭建Prometheus实现历史数据分析,形成完整监控闭环。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 针对单台海潮服务器运行Windows Server 2019和SQL Server的MES系统场景、高效能监控计谋(分身软硬件健康)