删一 发表于 2025-6-1 00:10:04

SolarWinds监控系统在Windows Server 2022上的完整安装与配置指南

第一部分:系统准备与SolarWinds安装

1. 系统准备

1.1 安装Windows Server 2022


[*]从Microsoft官网下载ISO镜像
[*]使用Rufus等工具创建启动U盘
[*]完成基本安装(选择"带GUI的服务器")
1.2 系统更新与基础配置

powershell # 以管理员身份打开PowerShell执行以下命令

# 检查并安装Windows更新
Install-Module -Name PSWindowsUpdate -Force
Import-Module PSWindowsUpdate
Get-WindowsUpdate -AcceptAll -Install -AutoReboot

# 启用远程桌面
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "远程桌面"

# 设置服务器静态IP(根据实际网络调整)
New-NetIPAddress -IPAddress "192.168.1.100" -PrefixLength 24 -DefaultGateway "192.168.1.1" -InterfaceIndex (Get-NetAdapter).InterfaceIndex
Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter).InterfaceIndex -ServerAddresses ("8.8.8.8", "8.8.4.4")

# 更改计算机名并重启
Rename-Computer -NewName "SOLARWINDS-MONITOR" -Restart2. 安装SQL Server 2019(SolarWinds依赖)

2.1 下载SQL Server 2019

powershell # 下载SQL Server 2019 Developer Edition(免费用于开发测试)
$url = "https://go.microsoft.com/fwlink/?linkid=866662"
$output = "$env:USERPROFILE\Downloads\SQLServer2019-SSEI-Dev.exe"
Invoke-WebRequest -Uri $url -OutFile $output

# 启动安装程序
Start-Process -FilePath $output2.2 图形界面安装步骤


[*]选择"基本"安装类型
[*]接受许可条款
[*]指定安装位置(建议保持默认)
[*]点击"安装"按钮
[*]安装完成后记下显示的SQL Server名称(通常为"主机名\SQLEXPRESS")
2.3 验证SQL Server安装

powershell # 检查SQL Server服务状态
Get-Service -Name "MSSQL`$SQLEXPRESS"

# 应该看到状态为"Running"3. 安装SolarWinds Orion

3.1 下载SolarWinds Orion安装包

powershell # 从SolarWinds官网下载评估版(需要注册)
# 以下为示例命令,实际URL需从官网获取
$url = "https://downloads.solarwinds.com/solarwinds/Release/Orion/2020.2.1/OrionInstaller.exe"
$output = "$env:USERPROFILE\Downloads\OrionInstaller.exe"
Invoke-WebRequest -Uri $url -OutFile $output

# 启动安装程序
Start-Process -FilePath $output3.2 图形界面安装步骤


[*]接受许可协议
[*]选择"Complete Installation"
[*]输入SQL Server信息:

[*]Server Name: 本地服务器名(如SOLARWINDS-MONITOR\SQLEXPRESS)
[*]Authentication: Windows Authentication

[*]设置主账户信息:

[*]Username: admin
[*]Password: 设置强密码(建议包含大小写字母、数字和特殊字符)

[*]选择安装组件(全选)
[*]点击"Install"开始安装
[*]安装完成后启动"Orion Web Console"
第二部分:添加网络设备监控

1. 配置SNMP服务(用于本地测试)

powershell # 安装SNMP服务
Install-WindowsFeature -Name SNMP-Service

# 配置SNMP团体字符串
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities" /v public /t REG_DWORD /d 4 /f

# 允许来自任何主机的SNMP查询
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers" /v 1 /t REG_SZ /d "*" /f

# 重启SNMP服务
Restart-Service -Name SNMP2. 添加思科设备


[*]登录SolarWinds Web控制台(http://localhost:8787)
[*]导航至"Settings" > "Network Discovery"
[*]点击"New Discovery"
[*]配置发现参数:

[*]Discovery Type: IP Range
[*]IP Address Range: 输入思科设备IP范围(如192.168.1.1-192.168.1.10)
[*]SNMP Credentials: 添加新的SNMP凭据

[*]Community String: public(或设备实际团体字)
[*]Version: v2c


[*]在"Select Pollers"中勾选:

[*]Cisco Discovery
[*]Interface Statistics
[*]Node Performance

[*]点击"Discover Now"
3. 添加华为设备


[*]导航至"Settings" > "Network Discovery"
[*]点击"New Discovery"
[*]配置发现参数:

[*]Discovery Type: IP Range
[*]IP Address Range: 输入华为设备IP范围
[*]SNMP Credentials: 使用与思科相同的凭据或创建新的

[*]在"Select Pollers"中勾选:

[*]Generic SNMP Device Discovery
[*]Interface Statistics
[*]Node Performance

[*]点击"Advanced" > "SNMP Options":

[*]添加华为特定OID: 1.3.6.1.4.1.2011

[*]点击"Discover Now"
4. 添加华三设备


[*]导航至"Settings" > "Network Discovery"
[*]点击"New Discovery"
[*]配置发现参数:

[*]Discovery Type: IP Range
[*]IP Address Range: 输入华三设备IP范围
[*]SNMP Credentials: 使用现有凭据

[*]在"Select Pollers"中勾选:

[*]Generic SNMP Device Discovery
[*]Interface Statistics
[*]Node Performance

[*]点击"Advanced" > "SNMP Options":

[*]添加华三特定OID: 1.3.6.1.4.1.25506

[*]点击"Discover Now"
5. 添加锐捷设备


[*]导航至"Settings" > "Network Discovery"
[*]点击"New Discovery"
[*]配置发现参数:

[*]Discovery Type: IP Range
[*]IP Address Range: 输入锐捷设备IP范围
[*]SNMP Credentials: 使用现有凭据

[*]在"Select Pollers"中勾选:

[*]Generic SNMP Device Discovery
[*]Interface Statistics
[*]Node Performance

[*]点击"Advanced" > "SNMP Options":

[*]添加锐捷特定OID: 1.3.6.1.4.1.4881

[*]点击"Discover Now"
第三部分:告警配置

1. 配置邮件通知


[*]导航至"Settings" > "All Settings" > "Alerting" > "Mail Server"
[*]配置SMTP服务器:

[*]SMTP Server: 输入邮件服务器地址(如smtp.office365.com)
[*]Port: 587(TLS)或465(SSL)
[*]Authentication: 选择"Basic"
[*]Username: 发件邮箱地址
[*]Password: 邮箱密码
[*]From Address: 发件人邮箱

[*]点击"Test"验证配置
[*]点击"Save"
2. 配置短信通知(以Twilio为例)


[*]导航至"Settings" > "All Settings" > "Alerting" > "Custom Scripts"
[*]创建新脚本:

[*]Name: Twilio SMS Alert
[*]Script Type: PowerShell

[*]输入以下脚本(替换Twilio账户信息):
powershell param($Subject, $Message, $Recipients)

$AccountSid = "YOUR_TWILIO_ACCOUNT_SID"
$AuthToken = "YOUR_TWILIO_AUTH_TOKEN"
$FromNumber = "YOUR_TWILIO_PHONE_NUMBER"

$TwilioApiUrl = "https://api.twilio.com/2010-04-01/Accounts/$AccountSid/Messages.json"

foreach ($recipient in $Recipients) {
    $Body = @{
      From = $FromNumber
      To = $recipient
      Body = "$Subject`n$Message"
    }
   
    $Bytes = ::UTF8.GetBytes("$AccountSid`:$AuthToken")
    $Base64 = ::ToBase64String($Bytes)
   
    $Headers = @{
      Authorization = "Basic $Base64"
    }
   
    try {
      Invoke-RestMethod -Uri $TwilioApiUrl -Method Post -Body $Body -Headers $Headers
    } catch {
      Write-Error "Failed to send SMS to $recipient: $_"
    }
}
[*]点击"Save"
3. 创建CPU使用率告警


[*]导航至"Alert Central"
[*]点击"Create New Alert"
[*]选择"Node CPU Load"
[*]配置条件:

[*]Trigger when: CPU Load > 80%
[*]For at least: 5 minutes

[*]配置动作:

[*]添加邮件通知:选择之前配置的邮件服务器
[*]添加短信通知:选择Twilio SMS Alert脚本

[*]点击"Save"
4. 创建接口丢包告警


[*]导航至"Alert Central"
[*]点击"Create New Alert"
[*]选择"Interface Packet Loss"
[*]配置条件:

[*]Trigger when: Packet Loss > 1%
[*]For at least: 3 minutes

[*]配置动作:

[*]添加邮件和短信通知

[*]点击"Save"
5. 创建设备宕机告警


[*]导航至"Alert Central"
[*]点击"Create New Alert"
[*]选择"Node Down"
[*]配置条件:

[*]Trigger when: Node is down
[*]For at least: 1 minute

[*]配置动作:

[*]添加邮件和短信通知

[*]点击"Save"
第四部分:系统测试

1. 设备监控测试

powershell # 测试思科设备SNMP可达性
Test-NetConnection -ComputerName <思科设备IP> -Port 161

# 使用SNMPWalk测试(需安装SNMP工具)
snmpwalk -v 2c -c public <思科设备IP> .1.3.6.1.2.1.1.1.02. 告警触发测试

powershell # 模拟高CPU负载(在目标设备上)
# 对于Windows设备:
Start-Job -ScriptBlock { while($true) { } }

# 对于Linux设备(通过SSH):
Invoke-Command -ComputerName <Linux设备IP> -ScriptBlock { while true; do :; done } -Credential (Get-Credential)第五部分:Python一键部署脚本

创建deploy_solarwinds.py文件:
python import os
import subprocess
import time
import requests
import winreg
import ctypes

def run_powershell(cmd, admin=False):
    if admin:
      ctypes.windll.shell32.ShellExecuteW(None, "runas", "powershell.exe", f"-Command {cmd}", None, 1)
    else:
      subprocess.run(["powershell", "-Command", cmd], check=True)

def install_prerequisites():
    print("安装系统更新和必要组件...")
    commands = [
      "Install-Module -Name PSWindowsUpdate -Force -Confirm:$false",
      "Import-Module PSWindowsUpdate",
      "Get-WindowsUpdate -AcceptAll -Install -AutoReboot",
      "Install-WindowsFeature -Name SNMP-Service",
      "Set-ItemProperty -Path 'HKLM:\\System\\CurrentControlSet\\Control\\Terminal Server' -Name 'fDenyTSConnections' -Value 0",
      "Enable-NetFirewallRule -DisplayGroup '远程桌面'"
    ]
    for cmd in commands:
      try:
            run_powershell(cmd, admin=True)
      except subprocess.CalledProcessError as e:
            print(f"执行命令失败: {cmd}\n错误: {e}")

def configure_snmp():
    print("配置SNMP服务...")
    try:
      # 设置SNMP团体字符串
      key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
                            r"SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities",
                            0, winreg.KEY_SET_VALUE)
      winreg.SetValueEx(key, "public", 0, winreg.REG_DWORD, 4)
      winreg.CloseKey(key)
      
      # 允许所有管理器
      key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
                            r"SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers",
                            0, winreg.KEY_SET_VALUE)
      winreg.SetValueEx(key, "1", 0, winreg.REG_SZ, "*")
      winreg.CloseKey(key)
      
      # 重启SNMP服务
      run_powershell("Restart-Service -Name SNMP", admin=True)
    except Exception as e:
      print(f"配置SNMP失败: {e}")

def download_and_install(url, file_name, install_args=None):
    print(f"下载并安装 {file_name}...")
    try:
      # 下载文件
      download_path = os.path.join(os.environ["USERPROFILE"], "Downloads", file_name)
      response = requests.get(url, stream=True)
      with open(download_path, "wb") as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)
      
      # 安装
      if install_args:
            subprocess.run( + install_args, check=True)
      else:
            subprocess.run(, check=True)
    except Exception as e:
      print(f"安装 {file_name} 失败: {e}")

def configure_solarwinds():
    print("配置SolarWinds Orion...")
    # 这里可以添加自动配置SolarWinds的代码
    # 实际生产环境中可能需要使用SolarWinds API或CLI工具
    print("请手动完成SolarWinds的初始配置:")
    print("1. 访问 http://localhost:8787")
    print("2. 使用admin账户登录")
    print("3. 完成初始向导")

def main():
    print("=== SolarWinds监控系统一键部署脚本 ===")
   
    # 1. 安装系统更新和必要组件
    install_prerequisites()
   
    # 2. 配置SNMP服务
    configure_snmp()
   
    # 3. 下载并安装SQL Server 2019
    sql_url = "https://go.microsoft.com/fwlink/?linkid=866662"
    download_and_install(sql_url, "SQLServer2019-SSEI-Dev.exe")
   
    # 4. 下载并安装SolarWinds Orion
    # 注意:需要替换为实际的SolarWinds下载URL
    sw_url = "https://downloads.solarwinds.com/solarwinds/Release/Orion/2020.2.1/OrionInstaller.exe"
    download_and_install(sw_url, "OrionInstaller.exe")
   
    # 5. 配置SolarWinds
    configure_solarwinds()
   
    print("部署完成!")

if __name__ == "__main__":
    main()使用说明


[*]将上述Python脚本保存为deploy_solarwinds.py
[*]以管理员身份运行PowerShell
[*]执行以下命令运行脚本:
powershell python deploy_solarwinds.py
[*]脚本将自动完成大部分安装配置,部分步骤需要手动完成
注意事项


[*]生产环境中应使用更安全的SNMP团体字符串替代"public"
[*]邮件和短信通知配置需要根据实际使用的服务提供商进行调整
[*]SolarWinds Orion的完整功能可能需要额外的许可证
[*]定期备份SolarWinds配置和数据库
[*]确保防火墙允许SolarWinds使用的端口(如8787、17778等)
 
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: SolarWinds监控系统在Windows Server 2022上的完整安装与配置指南