【问题标题】:Determine status of application via SQL Server通过 SQL Server 确定应用程序的状态
【发布时间】:2022-11-17 11:01:07
【问题描述】:

我正在尝试制作一个应用程序监控系统,我想知道是否有任何方法可以通过 SQL 服务器了解连接到所述服务器的给定应用程序的状态。在某种程度上,如果应用程序崩溃,SQL Server 内部的表可以检测到它并使用其状态更新表中的一行。 也欢迎其他想法,我只需要一种方法来了解应用程序是否已崩溃并以某种方式更新具有该状态的数据。

我已经尝试寻找一种向服务器发送连续 ping 的方法,一旦服务器停止接收 ping,它就会更改表内应用程序的状态。但是,我真的不知道该怎么做,也不了解如何在我的应用程序中实现它;所以我放弃了这个想法。

【问题讨论】:

  • ...SQL Server 不适合此类任务。此外,您正在重新发明轮子:Windows 已经通过 MDM 和组策略进行进程监控。
  • 您可以更改应用程序以在崩溃或任何未处理的异常情况下将状态写入数据库。

标签: c# sql visual-studio server


【解决方案1】:

不,除非应用程序应该始终连接到 SQL 实例并且检测到它不再连接就足以检测到崩溃。如果你想检查连接的会话,你可以使用 sys.dm_exec_sessions 或 sys.sysprocesses。

我之前做过的另一件事是导入 Windows 事件查看器日志。我知道它可以在本地完成并且使用 powershell 你也应该能够远程完成它,并具有适当的权限。你可以在这里找到一个例子:https://mikesdatawork.wordpress.com/2020/03/31/use-sql-to-import-and-query-windows-server-application-logs/

但总的来说,SQL Server 不是进行监控和事件收集的合适平台。我认为 Grafana 是一个更适合这个的数据平台,你可能想研究一下。我有使用它但没有设置它的经验,所以我不确定它有多灵活。

【讨论】:

    猜你喜欢
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多