【问题标题】:Server Monitoring Software - designing database MySQL服务器监控软件 - 设计数据库 MySQL
【发布时间】:2014-08-16 00:41:10
【问题描述】:

我想创建一个监控脚本来检查我的服务器。现在我遇到了一个问题,我需要找到一种方法来获得正常运行时间百分比。基本上所有数据都存储在 MySQL 服务器中,对我而言,获得正常运行时间的最简单方法是创建一个函数,该函数将每分钟向 mysql 服务器添加一条新记录,其中包含日期、时间、信息是否在线等,但如果我会使用它方法,例如,我将有 1000 台服务器进行监控,我最终将在 MySQL 服务器中每年获得 518 400 000 条记录。

另一个想法是为每台服务器创建一条记录,在线和离线两行,但没有任何日期和时间,我无法获得正常运行时间......

任何想法如何设计监控系统的数据库?

【问题讨论】:

  • 已经有这样的工具,例如 nagios、inciga 或 zabbix
  • 我不想使用现有的工具,我想创建自己的监控脚本。
  • 这就是为什么我没有发布这个作为答案。
  • 欢迎来到 Stack Overflow!请拍下tour

标签: mysql sql monitoring


【解决方案1】:

MySQL information_schema 包含每个服务器的正常运行时间信息(以秒为单位)。我不确定您的数字必须有多准确,但您可以在设定的时间间隔内获取此值并将其与之前的值进行比较。根据间隔,这可以为您提供一个很好的近似值。

SELECT Variable_Value FROM SESSION_STATUS S WHERE Variable_Name = 'UPTIME';

此外,MySQL 错误日志包含服务器启动时的日期和时间戳。定期抓取此信息并添加到您的服务器表中。

【讨论】:

  • 但是要获得这些信息,我需要在每台服务器上安装 MySQL 吗?我只在一台服务器上安装了 MySQL,如果 ping 成功,此服务器会 ping 我的其他服务器,如果 ping 失败,脚本会将“在线”记录添加到数据库,然后脚本会将“离线”记录添加到数据库
  • 对不起。我误解了。我以为您正在尝试测量数据库服务器的正常运行时间!忘记我上面说的。我不会使用 ping 来确定正常运行时间。您的数据库服务器上的网络问题可能会阻止 ping,而实际上其他服务器都很好。我会定期抓取每个服务器的启动日志。在 linux 上,它位于 /var/log/boot.log 或 /var/log/messages 中。在 Windows 上,事件日志在 %SystemRoot%\system32\winevt\logs,但是你需要使用 Event Viewer 来阅读,或者使用 MS Event Log API。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多