当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何通过 PowerShell 建立简单的服务器监控

作者:精品下载站 日期:2024-12-14 08:10:38 浏览:17 分类:玩电脑

如何通过 PowerShell 建立简单的服务器监控


[玩转系统] 如何通过 PowerShell 建立简单的服务器监控

无论是在优化性能还是防止问题出现时,对基础设施的可见性都是绝对必要的。实时甚至定期监控都是有效的做法。当然,有很多方法可以做到这一点。还有很多工具。

虽然选择死亡似乎是最初的问题,但真正的挑战是定制。每个团队都有不同的偏好。服务器架构和配置差异很大。不幸的是,对于某些用例,即使是最好的工具也必须做出假设——无论好坏。这种僵化的方法实际上可能会增加停机时间、降低性能并降低安全性。

运行基于 Windows 的服务器的公司有一个很好的选择:PowerShell。强大的脚本语言非常灵活。由于 PowerShell 依赖于人性化的编码,因此入门相对容易。编写自己的代码最好的部分是什么?您可以围绕您选择的任何参数设计解决方案。这并不是说 PowerShell 脚本没有学习曲线。然而,大幅节省成本的潜力很大。如果出现问题(一如既往),您也不会受到第三方支持的影响。

建立监控取决于了解一个人的优先事项以及监控背后的基本机制。我们将首先深入研究这些内容。

监控和 PowerShell 要点

首先,在开始之前,您需要弄清楚要监控的内容。很多公司本末倒置;最终的监控解决方案效果不佳。有多种因素可能会吸引您的注意力:

  • 表现
  • 工艺利用率
  • 内存和CPU使用情况
  • 网络和用户活动
  • 服务器响应时间
  • 胎面利用率
  • 带宽和吞吐量

该列表并不详尽,但应该是一个不错的起点。即使在创建简单的监视器时,就重点领域达成共识也至关重要。然而,假设我们想偏离繁重的指标。遥测数据很有用,但对于您的目的来说可能过于详细。

保持事情简单

例如,我们知道服务器最基本的状态可能是活动的或非活动的。执行状态检查对于维护生态系统至关重要。由于服务器请求是通过 Internet 发出的,因此需要来自某些来源的 HTTP 响应。如果端口离线,可能需要进行调查。

您还必须创建一个基本的升级链:哪些问题、严重程度如何,会引起谁的注意? PowerShell 脚本触发预先确定的操作,从而产生所需的结果。这通常称为状态。如果发现不良状态(例如不正确的响应),则必须通知某人。

这可能是 IT 方面、DevOps 方面的人员,甚至是技术高层。一个人可能就足以缓解这个问题。可能需要多名员工来灭火。通过 PowerShell 发出提示警报可以帮助更快地解决问题。

编写您的 PowerShell 监视器

您的监视器将包含在 PowerShell 脚本中——一个由多个书面函数组成的包含文件。您将在所述函数中定义操作、良好状态、不良状态和输出。

您还将包括所需的触发频率。默认情况下,PowerShell 脚本仅运行一次。我们通过创建一个任务来规避这个小障碍,该任务可以在用户愿意的时候调用脚本。这可以通过 PowerShell 的循环功能来实现。该语言有组织、基于变量的语法使我们能够灵活地自由定义。

您为 PowerShell 创建的任何脚本文件都将以源代码文件扩展名保存。这可能显示为

C:\ServerMonitors.psl

建筑模块

接下来,你会想知道你的措辞。管理服务可以在方程式中引入许多功能。但是,我们需要关注一些关键的 cmdlet:

  • 得到
  • 测试

每个 cmdlet 还包含一个修饰符,它为请求提供上下文。它通过破折号连接到 cmdlet,例如获取服务-计算机名。如果您想测试服务器的功能,您可以选择编写类似 Test-HTTP 的代码。这些 cmdlet 前面有函数符号,因此第一行可能如下所示:

function Test-HTTP {

函数还包括参数。如果您没有为服务器定义参数,那么您的 PowerShell 脚本将无法区分不同的输出。这些通用函数将返回通用结果。正确定义参数(例如计算机名称、良好响应或不良响应)将确保您的监控输出包含上下文信息。

如果您想定义肯定响应,例如 HTTP 状态代码,则必须将其表示为整数 ([int])。此类代码可能是 200(成功,OK 响应)、202(已接受,但正在等待)或与服务器功能相关的任何其他代码。由于服务器最终响应 API 请求,因此设计一个可确认健康响应的监控功能非常有用。您还需要包含字符串 ([string]) 来表示关键监控对象或数据类型。

[玩转系统] 如何通过 PowerShell 建立简单的服务器监控

基本的 HTTP 响应测试函数可能是什么样子的。由自动化者 Adam 提供。

您还需要验证条件语句并将其烘焙到 PowerShell 函数中。这将指示您的服务器生成某些输出 - 状态应为 truefalse。 PowerShell 将相应地遵循这些说明,并向您或您的团队返回有价值的结果。

开始您的 PowerShell 监控

建立监控功能是第一步。但是,您还必须编写一种机制来触发这些监视脚本。 “调用”脚本激活相关的预制功能,同时定义需要完成的任何补充任务。这个命名方案遵循我们之前的监控方案:

C:\CallServerMonitors.psl

结构在这里非常重要。您将把各种监视器组织到哈希表中,哈希表充当紧凑、有组织的数据结构。它们包含键和值对。您可以定义服务器名称和监视器名称。该调用脚本还可以根据后端结果触发警报。通过这样做,您还可以根据需要应用特定规则。

频率和最终考虑因素

您的外部任务将根据您的意愿激活这些核心脚本。虽然更频繁地监控某些服务器参数很有用,但其他参数显然不是关键任务。 Microsoft 认为这些监控脚本是惯用的,因为它们高度依赖于cmdlet 和函数。

同时运行大量PowerShell监控脚本可能会产生资源成本;因为他们不直接利用 .NET,所以他们利用管道。最好将需要经常运行的脚本和不重要的脚本错开。值得庆幸的是,函数本质上的轻量级性质将有助于减轻这些担忧。

这些例子并不详尽。还有更多的监控途径——在服务器可见性方面,您可以依靠 PowerShell 为您提供支持。

[玩转系统] 如何通过 PowerShell 建立简单的服务器监控

PRTG 和 ScriptRunner - 最佳监控和自动化

了解 PRTG Network Monitor 和 ScriptRunner 如何携手合作,满足您所有的 IT 基础设施监控需求!

免费观看网络研讨会 >

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯