简介:SolarWinds网络性能监视器(NPM)12.0.1 / Orion Package 12.1是网络运维领域常用的监控工具,面向网络管理员与IT运维人员,用于统一采集路由器、交换机、服务器等设备的运行数据,包括CPU利用率、内存占用与硬盘空间,并辅助快速定位网络故障。资源包内为单个docx文档,体积仅85KB,内容是一份整理好的使用与安装说明。文档不仅介绍了NPM的核心功能、系统要求(如3.0GHz CPU、20GB硬盘、3GB内存、Windows Server 2003及以上、SQL Server 2005/2008等),还给出了推荐部署环境(Windows Server 2016、独立SQL Server 2014/2016)、安装前注意事项以及完整的安装激活流程,并附带作者提供的激活工具说明与下载入口,适合需要快速上手或离线查阅的用户。资源目前已有1160人学习浏览,下载后即可对照文档完成环境准备与部署操作。
1. 网络性能监视器 12.0.1 是什么:一个轮询引擎撑起整张网的状态视图
SolarWinds 网络性能监视器 12.0.1(随 Orion Package 12.1 平台包一起分发)本质是一套以 SNMP 轮询为核心、以 SQL Server 为存储的网络状态收集平台。它解决的是这类具体问题:几百上千台路由器、交换机、防火墙和服务器,怎么用一套系统把“设备是否在线”“接口堵没堵”“CPU 和内存是否又跑满”这些状态统一收上来,并且能回看历史趋势、触发告警、生成日报。对运维团队来说,NPM 不是流量分析工具,也不是抓包器,它的本职是周期性问每一台设备“你还好吗”,把答案写进数据库,再变成仪表盘、报表和值班通知。这版适合正在做监控选型、或准备从旧版本升级的运维工程师,尤其是已经受够了在 Excel 里手工汇总设备状态的人。
2. 部署前要算清的账:服务器规格、数据库选型与 Orion Package 12.1 的依赖
部署 NPM 之前,多数人盯着安装向导,忽略了它背后真正吃资源的部分:不是界面,而是轮询调度和数据库写入。Orion Package 12.1 作为平台层,把节点管理、告警、报表、用户权限这些公共能力全部集中起来,NPM 12.0.1 则是跑在这套平台上的网络监控模块。平台可以继续挂其他产品,但你不一定需要它们。安装顺序、数据库选型和机器规格,决定了这套系统未来是省心还是天天救火。
2.1 节点数与轮询间隔:配置规格不是玄学
先算规模再买机器,这是最值得花时间的一步。NPM 每到一个轮询周期,就会对每个节点、每个接口发起 SNMP 请求,把结果写进 SQL Server。节点数只是表面指标,真正决定负载的是“接口数 × 统计类指标的轮询频率”。一台 500 节点、2000 接口的网络,和一台 500 节点、20000 接口的汇聚网络,压力完全不同。
我一般的估算经验是:500 节点或 2000 接口以内,4 核 vCPU、8 到 16GB 内存的物理机或虚拟机足够,SQL Server 可以与 NPM 装在同一台机器上,但数据库文件必须单独放一块磁盘,别和系统盘挤在一起。500 到 2000 节点的规模,建议 8 核 16GB 以上,SQL Server 放到独立的虚拟机或物理机上。超过 2000 节点,就要考虑附加轮询引擎,让另一台机器分担采集任务,数据库单独跑在高配置机器上。
| 规模 | CPU/内存参考 | 数据库部署 | 说明 |
|---|---|---|---|
| 500 节点以内 | 4 核 / 8-16GB | 同机部署,数据文件独立磁盘 | Express 版有 10GB 库大小限制,别用它 |
| 500-2000 节点 | 8 核 / 16-32GB | 独立 SQL Server 实例 | 磁盘优先上 SSD,日志文件与数据文件分开 |
| 2000 节点以上 | 16 核 / 32GB+ | 独立高配数据库 + 附加轮询引擎 | 核心交换机轮询间隔压到 60 秒时负载会明显上升 |
选型时还有一条容易忽略的规则:SQL Server Express 虽然免费,但库大小限制扛不住 NPM 几周的数据增长。我曾见过有人图省事装 Express,跑了两周数据库就接近上限,最后只能清数据续命,非常被动。生产环境请直接按 Standard 版起步。
2.2 SQL Server 选型与排序规则:先装库还是先装 Orion
安装顺序我建议固定为:先装 SQL Server,建好实例,开启 TCP/IP 连接;再跑 Orion 安装程序。如果反过来,安装向导会扫不到数据库实例,或者能扫到却连不上,白白多花时间。还有一处细节容易被忽略,就是实例的排序规则。NPM 对 SQL Server 实例的排序规则有要求,最稳妥的是在安装 SQL Server 时选择默认的 SQL_Latin1_General_CP1_CI_AS。若业务系统已经用了中文相关的排序规则,也别慌,只要 NPM 建库时用的是独立实例,通常可以规避大部分匹配异常。
装好后不要直接用 sa 账号给 Orion 用,我会单独创建一个 SQL 登录账号,比如 svc_orion,授予 sysadmin 角色。这样做的原因是 Orion 平台运行期间要建表、扩表、维护索引,权限给的太小后面会出现各种莫名其妙的写入失败;而直接给 sa 又让密码管理变得随意。一个专用服务账号,密码走公司密码保险箱,比什么都省心。
2.3 静默安装命令与安装日志:最小可用部署
图形向导安装适合第一次接触的人,它能让你看清楚每一步干了什么。批量部署或给客户交付时,我习惯用静默安装。NPM 和 Orion Package 的安装参数设计得很直接,核心就是告诉它装到哪个目录、连哪台 SQL Server、用哪个账号建库。
# 解压安装包后,以管理员身份打开 PowerShell 执行 .\setup.exe /quiet ` /InstallDir="C:\Program Files\SolarWinds\Orion" ` /SqlServer="SQL01\ORION" ` /SqlDatabase="SolarWindsOrion" ` /SqlUser="svc_orion" ` /SqlPassword="此处填入专用账号密码"解释一下这几个参数:/quiet 表示静默安装,不弹任何窗口;/InstallDir 指定 Orion 平台程序目录;/SqlServer 是上一步准备好的 SQL Server 实例名,格式是“机器名\实例名”;/SqlDatabase 是你要创建的 Orion 数据库名称,首次安装会自动创建;/SqlUser 与 /SqlPassword 是专用 SQL 服务账号。执行时务必确认账号有建库权限,否则会在日志里报创建数据库失败,界面却不提示。
注意:静默安装失败时看不到弹窗报错,要去系统临时目录找 SolarWinds 安装日志,关键词搜 “Error” 或 “FAIL”。首次部署建议别直接用 /quiet,先走一遍图形向导,确认无报错后再用同样参数做批量交付。
安装完成后,浏览器访问 http://服务器名/ 进入 Orion 网页控制台。第一次打开会进入配置向导,要求设置管理员账号密码、邮件服务器、轮询服务账号等。这些都可以稍后再改,不必在向导里纠结,重点是先把主界面跑起来。
3. 把网络“发现”出来:子网扫描、SNMP 凭据与轮询参数
安装完成只是第一步,真正让 NPM 开始工作的是网络发现。发现(Discovery)决定你看到哪些设备,轮询(Polling)决定你看到的设备状态有多新鲜。这两个环节如果参数没设好,后面的视图、报表、告警全是空中楼阁。
3.1 网络发现:SNMP 凭据与扫描范围的初次尝试
打开 Orion 网页控制台,进入设置-网络发现,新建一个发现任务。发现方式有三种:ICMP、SNMP v1/v2c、SNMP v3。绝大多数网络设备走 SNMP v2c,输入团体名(Community String)即可;v3 适合安全要求高的环境,需要用户、认证协议、加密协议三项都填对。
填凭据时有一个习惯值得养成:不要用设备上的默认 public 团体名。很多设备出厂默认 public,但生产环境应当为监控单独配置一个只读团体名,比如 netmon-ro,并在设备 ACL 里限制只允许监控服务器的管理网段访问。这样即使团体名泄露,风险边界也小。扫描范围我建议从小到大试。先用一条 /24 网段验证凭据和设备分类,等发现结果准确了,再扩展到整个管理网段。
ICMP 与 SNMP 发现各有分工。ICMP 负责确认设备是否在线,SNMP 负责读取系统描述、接口列表、设备类型等细节。扫描时默认会同时探测两种方式。若某台设备只能 ping 通但 SNMP 无响应,NPM 会把它识别为 Subnet 或 Unknown 类设备,这类节点只能做连通性监控,不能采集接口和 CPU。看到这种结果,优先检查设备的 SNMP 配置和 ACL,而不是怀疑软件有问题。
3.2 轮询参数:把 120 秒和 60 秒用对地方
发现完成后,设备被加入节点列表,NPM 就开始按轮询间隔采集数据。不同轮询类型有各自的默认值,理解它们的区别才能调出既不产生告警风暴又不漏报的配置。节点状态和接口状态是两类最基础的轮询,前者决定“设备挂了多久才被发现”,后者决定“接口 down 多久才被告警”。
| 轮询类型 | 默认间隔 | 建议范围 | 作用 |
|---|---|---|---|
| 节点状态(Node Status) | 120 秒 | 60-120 秒 | 检测节点在线/离线,影响可用性统计 |
| 接口状态(Interface Status) | 120 秒 | 60-120 秒 | 检测接口 Up/Down,告警主要依赖它 |
| 接口统计(Interface Statistics) | 120 秒 | 60-300 秒 | 流量、错误包、丢包率等性能数据 |
| 节点详情(CPU/内存/磁盘) | 300 秒 | 300-600 秒 | 设备资源使用率,频率太高没有实际意义 |
关键经验是把资源花在刀刃上。核心设备和主干链路,接口统计轮询压到 60 秒,保证故障时数据足够细腻;接入层交换机和不太重要的分支设备,节点状态放宽到 300 秒也完全可以,别让它每两分钟打扰一次。接口很多的设备还要注意,一个设备有几百个接口时,每轮询一次就要发几百个请求,这种设备的接口统计间隔建议拉大到 300 秒,否则容易把轮询队列堵死。
3.3 自定义轮询器(UnDP):用一个 OID 监控交换机光模块
NPM 自带的指标覆盖了 CPU、内存、接口流量等常规项,但网络设备上还有很多重要参数是默认不采集的,比如光模块温度、收发光功率、风扇转速。这些指标对判断链路质量非常关键,信号衰减往往早于丢包出现。自定义轮询器(UnDP)就是来补这个缺口的,它可以指定任意 OID 定时读取,并把结果当作节点详情的一部分展示和参与告警。
先确认 OID 真实存在并且能读到值。网上资料给的 OID 经常是一段厂商私有 MIB 路径,实际设备可能不支持,所以先手工探测再录入。常见的做法是在管理机上用 snmpwalk 快速验证。
# 用只读团体名探测设备,输出数字格式 OID,避免 MIB 名称干扰 snmpwalk -v 2c -c netmon-ro -On 10.0.0.1 .1.3.6.1.4.1如果返回一大堆 OID,说明设备支持且团体名正确。找到目标 OID 后,进入设置-自定义轮询器,新建一个轮询器,填上 OID、显示名和数据类型。数据类型通常选 Integer 或 Gauge,温度、光功率这类连续值用 Gauge,状态类数值用 Integer。创建后还要把它分配到具体节点,否则轮询器不生效。分配时可以选择单个节点,也可以用动态分配规则,让一类设备自动挂上,比如所有型号为某厂商交换机的节点都应用光模块轮询。
光模块 OID 属于厂商私有 MIB,每个厂商定义不同,有的甚至同厂商不同型号也不同。所以我建议在一个型号的设备上验证通过后,先挂 10 台试运行两天,观察数据曲线是否平滑,再批量铺开。
4. 告警、阈值与报表:把数据变成值班动作
轮询数据存进数据库之后,如果没人看,它只是一堆历史记录。NPM 真正产生运维价值的环节是告警和报表。告警让系统替人盯屏幕,报表让历史数据变成向上汇报和容量规划的依据。这一章讲清楚告警条件怎么写、阈值怎么设、报表怎么用。
4.1 告警规则怎么写:从一条接口 Down 到带宽超阈值
进入设置-告警-告警管理器,新建告警时会先让你选监控对象类型。接口类告警针对接口,节点类告警针对设备整体。最常见的几条规则有固定套路,第一次配置时可以照抄,之后按业务再调。
| 监控场景 | 触发条件 | 触发设置 |
|---|---|---|
| 核心接口 Down | Interface Status = Down | 立即触发一次 |
| 带宽利用率持续超过 80% | Interface Percent Utilization > 80 | 持续 3 个轮询周期再触发 |
| 节点不可达 | Node Status = Not Responding | 持续 1 个轮询周期 |
| 接口错误包突增 | Interface Incoming Error Count 增量大于阈值 | 持续 2 个轮询周期 |
写完触发条件后,下一步选择触发动作。最常用的是发送邮件和记录事件,也可以调用外部脚本。邮件通知建议配一条独立的告警邮件通道,别用管理员日常邮箱。NPM 的告警邮件标题里可以插入变量,比如节点名、接口名、当前值,值班人员收到邮件后不用登录系统就能判断故障级别。
4.2 触发延迟与抑制窗口:告警风暴就是这样被避免的
我见过最多的问题不是告警不触发,而是告警风暴。接口抖动时,一个接口在几分钟内反复 Up/Down,如果没有延迟机制,值班手机会收到几十条邮件。触发设置里的“持续时间”就是为了过滤毛刺的,意思是条件满足后必须保持这么多个轮询周期才真正触发。接口抖动场景建议至少设置持续 2 到 3 个轮询周期;链路质量类告警必须持续多个周期,否则深夜误报的成本比故障本身还高。
抑制窗口则是另一个保护机制。它的含义是同一对象在设定时间内只发送一次告警,后续重复触发不再通知,直到恢复。带宽利用率持续超阈值很容易连续触发,配置时一定勾上抑制选项,时间设成 30 分钟或 60 分钟。告警恢复通知也要开,否则值班人员确认了故障却不知道什么时候恢复的。
4.3 报表订阅与可用性统计:每天早上自动收到核心链路日报
NPM 自带了不少报表,里面有“接口利用率 Top 10”“节点可用性汇总”“接口每日流量趋势”这些常用模板。报表的价值不只在于查看,更在于定期推送。运维团队的固定动作是每天早上看一眼昨天的核心链路利用率,确认没有夜间突发的拥塞。配置方式是在报表页面打开目标报表,设置订阅计划,选择收件人,系统会按周期把报表作为邮件附件发出来。
可用性统计也是 NPM 的长项。节点和接口的可用性数据来自节点状态轮询和接口状态轮询,它会记录每个周期设备是 Up 还是 Down,最终折算成百分比。做月度 SLA 汇报时,直接用这个数字比手工统计准确得多。要注意的是,如果你把轮询间隔调成了 300 秒,可用性统计的颗粒度也变粗了,对 SLA 要求很高的核心设备,轮询间隔就不要放太宽。
5. SolarWinds NPM 12.0.1 避坑记录:四个最容易翻车的现场
NPM 这套系统整体稳定,但它吃配置、吃数据库、吃 SNMP 细节。本地的几个踩坑记录都来自实际维护场景,每一条都曾经让值班人员半夜爬起来处理。按“现象、原因、解决”三步写清楚,照着排查能省不少时间。
5.1 节点显示 Not Responding 但设备其实在线
现象是 Orion 界面上节点显示红色,状态为 Not Responding,但用 ping 直接连设备延迟正常,登录设备也完全没问题,业务流量也通畅。
原因基本出在 SNMP 这一层。设备对来自监控服务器的 SNMP 请求响应超时,可能原因包括:SNMP 团体名不匹配、设备侧 ACL 没放行监控服务器网段、设备 CPU 繁忙导致 SNMP 处理不及时。另一个常见因素是把 SNMP 超时时间设置得太短,交换机在高峰期偶尔延迟超过 1000 毫秒就被判定超时。
解决办法分两步。先确认团体名和 ACL,在管理机上手工用 snmpwalk 测试该设备,能通说明问题出在 NPM 侧或网络路径。然后在 Orion 的节点设置里,把该节点或全局的 SNMP 超时时间从默认值调大到 3000 毫秒,重试次数从默认 1 次改为 2 次。注意不要全局调太大,否则一次设备无响应会占用大量轮询时间。
5.2 数据库文件暴涨:历史数据保留策略没设
现象是 SQL Server 的数据文件增长速度惊人,运行一两个月就占用了几十 GB,磁盘空间告警,Orion 页面开始变卡。
原因是历史数据保留策略没有调整,默认配置会把所有接口统计的明细数据长期保留。接口多、轮询间隔短,每天写入的行数非常可观,数据库膨胀是必然的。很多人觉得磁盘够大就无所谓,但 NPM 的报表查询性能直接受表行数影响,数据越多报表越慢。
解决方法是进入设置-数据保留设置,把接口统计数据的保留周期调整为 30 到 90 天,节点详情报表数据保留 1 年,事件和告警保留 90 天。保留策略修改后,系统会在后台定期清理过期数据。执行清理时数据库会有一阵负载,选在维护窗口操作比较稳妥。
5.3 轮询队列堵死:所有接口都用 60 秒轮询的后果
现象是 Orion 页面的轮询队列(Polling Queue)长期显示高水位,节点状态刷新明显变慢,部分设备的数据曲线出现断点。
原因是部署时图省事,把所有设备、所有接口的轮询间隔统一设成了 60 秒。当设备数量上来之后,轮询引擎的并发请求瞬间超出处理能力,请求排队,超时后又触发重试,形成恶性循环。这种情况在新手团队里非常普遍,因为默认 120 秒看起来“不够实时”,但实际上网络监控的实时性不在于每 60 秒刷一次。
解决方法是把轮询间隔按设备重要性分层。核心设备保持 60 秒,接入层设备拉大到 300 秒,接口数量多的设备把接口统计间隔调到 300 秒,同时检查 SNMP 超时时间避免无谓重试。改动后观察 24 小时的队列水位,通常会有明显下降。节点规模确实超过单台轮询引擎能力时,就考虑部署附加轮询引擎。
5.4 升级后登录卡在加载:补丁安装顺序反了
现象是从老版本升级到 12.0.1 后,网页控制台登录后长时间停留在加载画面,功能菜单刷新不出来,Windows 事件日志里有 Orion 服务相关的错误记录。
原因是 Orion Package 平台与 NPM 模块的升级顺序不对。NPM 是依赖 Orion 平台的模块,如果先升级了 NPM 本体,再升级平台包,版本之间会出现 DLL 或数据库结构不一致的问题。官方推荐的做法是平台在前、模块在后。多数人习惯直接点 NPM 安装包升级,忽略了这套依赖关系。
解决方法是严格按照顺序执行:先升级 Orion Package 到 12.1,完成后再升级 NPM 到 12.0.1。升级前务必备份 Orion 数据库,并记录当前平台版本号。升级完成后重启一次 IIS 服务和所有 SolarWinds 相关 Windows 服务,清理缓存后再登录控制台。如果已经升级错顺序,先按正确顺序重新执行一次平台包升级,通常能修复服务不一致问题。
6. 进阶技巧:把 NPM 的数据接进自己的监控视图
部署和维护稳定之后,NPM 的价值还可以再挖一层——它沉淀在 SQL Server 里的数据,不只是给 Orion 界面用的。我习惯把数据库里几类核心表作为只读数据源,接到自己团队的内部大屏或自动化流程里。这样做的好处是,其他系统不用重复采集网络设备,直接消费 NPM 已有的数据。
最常见的做法是写只读 SQL 查询,拉出核心接口的利用率数据。NPM 的数据库结构在不同版本间有细微差异,查询前先看一下表名和字段名,我这里给出一个参考写法,实际使用时按你环境里真实的表结构调整。
-- 查询最近一天平均出方向利用率最高的 10 个接口 SELECT TOP 10 n.Caption AS NodeName, i.InterfaceName, AVG(d.AvgOutboundUtilization) AS AvgOutUtil, MAX(d.MaxOutboundUtilization) AS MaxOutUtil FROM InterfaceDetailedStats d JOIN Interfaces i ON i.InterfaceID = d.InterfaceID JOIN Nodes n ON n.NodeID = d.NodeID WHERE d.DateDiff = 1 GROUP BY n.Caption, i.InterfaceName ORDER BY MaxOutUtil DESC;这里解释一下逻辑:InterfaceDetailedStats 表存的是接口统计的汇总数据,DateDiff 字段表示距今多少天,=1 代表昨天;AvgOutboundUtilization 和 MaxOutboundUtilization 分别是平均与最大出方向利用率;通过 InterfaceID 关联 Interfaces 表拿接口名,再通过 NodeID 关联 Nodes 表拿节点名。查询结果可以直接用于日报,也可以喂给内部可视化系统。注意只读查询一定要用独立只读账号,别拿 Orion 服务账号去跑外部脚本。
我个人的习惯是每月抽一天手工核对一次数据库表结构变动。升级 NPM 版本前先做一次全库备份,升级完对比一下几个关键视图是否还在。这套系统跑稳之后,网络团队手里就有了从设备底层到业务视角的统一数据源,值班和汇报都能省下大量手工整理时间。NPM 真正上手的标志不是界面跑起来,而是你知道哪些数据在哪个表里、怎么把它变成决策依据。希望帮到你。
本文还有配套的精品资源,点击获取