0

我遇到了一种情况,我有很多系统配置/日志,我必须快速查看对故障排除有用的系统。

首先,我想构建一种 Web 界面(很可能是一个 php 站点),它使用支持日志中的可用信息为我提供系统配置的粗略快照。支持日志驻留在镜像服务器(称为日志服务器)上,而我将在其上托管站点的服务器(称为 Web 服务器)必须通过 ssh/sftp 访问它们。

我的粗略草图:

  1. Web 服务器上的 php 脚本将与日志服务器建立某种连接并转到支持日志位置。
  2. 然后它将在日志服务器上触发一个 perl 脚本,该脚本会将所有配置/日志文件中的相关内容收集到一些有用的 xml 中(会有多个)。
  3. 不知何故,这些 xml 文件被传输到 web 服务器 & php 将使用它来创建 html。

我对php很陌生,想知道这是否可行,或者是否有其他替代/更好的方法?如果有人可以提供更多详细信息,那就太好了。

提前致谢。

编辑:抱歉,我错过了提到日志不是在实时机器上生成的日志,我正在处理 NAS 存储设备的维持活动,并且会有大量来自不同最终客户的支持日志,这些支持日志来自我的团队想看看。安全性在这里不是一个大问题(我可以使用纯文本身份验证来记录服务器),因为这些服务器只能通过公司的 VPN 访问。

4

2 回答 2

0

虽然您可以使用类似的东西来做到这一点(我认为PHP 也有一些东西..),但我建议分两个单独的步骤执行此操作:

  1. 通过 Cron 运行的脚本从服务器检索数据并将其存储在本地
  2. PHP 脚本仅从本地存储的数据中读取数据,以生成报告。

这样,您将获得以下好处:

  • 您不必担心如何让您的 php 脚本通过 ssh 连接到服务器
  • 您避免了与允许您的网络服务器用户登录到其他服务器相关的安全风险(如果您的脚本被黑客入侵,风险很高)
  • 如果与服务器的连接缓慢/不存在、检索日志的时间过长等,您的 php 脚本仍然能够快速显示数据——也许,还有一些错误消息解释最新更新期间出现的问题
  • 无论如何,您的 php 脚本将终止得更快,因为它只需要从本地存储中检索数据。

更新:通过 php 的 ssh 客户端

好的,从您的最新评论中,我了解到您需要的是显示文件的“前端浏览器”,而不是报告生成工具或类似工具;在这种情况下,您可以使用Expect(如我之前所述)连接到远程机器。

PHP 有一个 PECL 扩展提供期望功能。查看PHP Expect 手册,特别是使用示例,展示如何使用它来建立 SSH 连接。

替代方式:从 NFS/SAMBA 共享中获取文件

另一种避免使用 SSH 的方法是通过本地安装的共​​享浏览远程机器上的文件。这在有趣的文件已经被 NAS 共享的情况下特别有用,而如果这意味着共享整个根文件系统或其中的大部分,我不建议这样做。

于 2012-01-02T18:05:19.163 回答
0

是的,PHP 可以处理 XML。一个简单的方法是使用 SimpleXML: http: //php.net/manual/en/book.simplexml.php

于 2012-01-02T18:06:19.927 回答