网站搜索

在RHEL/CentOS 7/6上使用“Log.io”工具实时监控服务器登录


Log.io 是一个构建在 Node.jsSocket.io 之上的小型简单但有效的应用程序,它允许监视 Linux 服务器日志通过网络界面屏幕小部件实时查看文件。

本教程将指导您如何通过配置 Log.io 在 RHEL/CentOS 7/6.x 上安装并实时监控任何本地日志文件b>harvester 文件来监视日志文件的任何本地更改。

第 1 步:添加 Epel 存储库

1. CentOS Epel 存储库提供 Node.jsNPM 的二进制包 – Node 打包模块。通过发出以下命令来安装 Epel 存储库。

在 RHEL/CentOS 7 上
yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
在 RHEL/CentOS 6 上
--------------------- On RHEL/CentOS 6.x - 32 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm

--------------------- On RHEL/CentOS 6.x - 64 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2. 在系统上添加 Epel Repos 后,通过运行以下命令进行系统升级。

yum update

第 2 步:安装 Node.js 和 NPM 包

3. Node.js 是一个 Javascript 服务器端编程平台,允许您创建具有后端功能的网络应用程序。 NPM(节点包管理器)实际上是 Node.js 的包管理器。因此,下一步通过 YUM 包管理器发出以下命令,在您的系统上安装 Node.js 和 NMP 二进制文件。


curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - 
yum install -y nodejs

步骤 3:安装并配置 Log.io 应用程序

4. Log.io 应用程序必须通过 NPM 通过指定有效的本地系统用户安装在您的系统上,安装必须通过该用户进行。虽然您可以使用任何有效的系统用户来安装 Log.io,但我个人建议通过 root 用户或其他具有 root 权限的系统用户安装该应用程序。

使用这种方法的原因是 Log.io 必须具有读取本地日志文件的权限,而具有非 root 权限的用户通常无法访问和读取一些重要的日志文件。

因此,使用 root 帐户登录并通过发出以下命令通过 root 帐户安装 Log.io 应用程序(如果您使用其他用户,请相应地将 root 帐户替换为您的系统用户)。

npm install -g log.io --user “root”

5. 安装应用程序后,将工作目录更改为隐藏的 Log.io 文件夹,并执行目录列表以可视化文件夹内容,以便配置进一步应用。

pwd  		[Make sure you are on the right path]
cd .log.io/
ls

6. 现在是时候配置 Log.io 来实时监控本地日志文件了。让我们深入了解 Log.io 的工作原理。

  1. harvester 文件监视其配置中声明的指定本地日志文件的更改,并通过 socket.io TCP 发送其输出
    进一步将消息发送到 Log.io 本地服务器或任何其他以其 IP 地址声明的远程服务器(在 Harvester 上指定的 0.0.0.0 地址广播到所有 log.io 侦听服务器)的协议 – 文件 harvester.conf
  2. Log.io 服务器绑定在所有网络接口上(如果在 log_server.conf 文件中未另外指定),并等待来自本地或远程收割机节点的消息,并将其输出发送到 log.io Web 服务器(0.0.0.0 表示它等待消息来自任何本地或远程收割机)文件log_server.conf
  3. Log.io Web 服务器绑定在所有网络接口上,侦听端口 28778 上的 Web 客户端连接,并处理和输出从 log.io 服务器内部接收的消息 - 文件 web_server.conf

首先打开 harvester.conf 文件进行编辑,默认情况下仅监视 Apache 日志文件,然后替换 nodeName 语句以匹配您的主机名并定义 logStreams 包含您想要监视的内部日志文件的语句(在本例中,我正在监视多个日志文件,例如审核、消息和安全日志)。使用以下文件摘录作为指南。

nano harvester.conf

收割机文件摘录。

exports.config = {
  nodeName: "pxe-server",
  logStreams: {

audit: [
      "/var/log/audit/audit.log"
    ],

messages: [
      "/var/log/messages"
    ],

secure: [
      "/var/log/secure"
    ]

},
  server: {
    host: '0.0.0.0',
    port: 28777
  }
}

此外,如果您不需要将收割机输出发送到远程 Log.io 服务器,请将 server 语句上的行 host 更改为仅发送通过使用环回地址 (127.0.0.1) 修改 0.0.0.0 地址在本地输出。

7.出于安全原因,如果您不希望远程收割机输出到本地Log.io服务器,请打开log_server.conf文件并替换< b>0.0.0.0 地址与环回地址 (127.0.0.1)。

nano log_server.conf

8. 其他安全功能,如凭据登录、HTTPS 或基于 IP 的 Log.io Web 服务器限制可以应用在 Web 服务器端。在本教程中,我将仅使用凭据登录作为安全措施。

因此,打开 web_server.conf 文件,通过删除所有斜杠和星号来取消注释整个 auth 语句,并替换 userpass 相应的指令如底部屏幕截图所示。

nano web_server.conf

步骤 4:添加防火墙规则并启动 Log.io 应用程序

9. 为了获得 Log.io 服务器的 Web 访问权限,请在 RHEL/CentOS 7 防火墙上添加规则通过发出以下命令打开 TCP 28778 端口。

firewall-cmd --add-port=28778/tcp --permanent
firewall-cmd --reload

注意:RHEL/CentOS 6.x 用户可以在 iptable 防火墙上打开端口 28778

步骤5:启动Log.io应用程序并进入Web界面

10.为了启动Log.io日志监控应用程序,请确保您当前的工作目录是root的主目录.log.io并使用以下命令按以下顺序命令启动应用程序。

------------ First start server, put it in background and press Enter key ------------
log.io-server & 

------------ Start log harvester in background ------------
log.io-harvester & 

11. 服务器启动后,打开浏览器,输入您的服务器 IP,然后在 URL 地址上使用 HTTP 协议输入 28778 端口号,然后会出现要求您登录凭据的提示。

输入在第 8 步 中配置的用户名和密码以继续操作,Log.io 应用程序现在应该在您的浏览器上可见,并实时显示受监控的日志文件。

http://192.168.1.20:28778

在 Web 界面上添加新屏幕并相应地组织您的流或节点。

12. 要停止 Log.io 应用程序,请运行以下命令。

pkill node

第6步:创建Log.io管理脚本

13. 为了使用管理 Log.io 应用程序的命令,具有三个开关(startstopstatus) 在 /usr/local/bin 可执行目录中创建名为 log.io 的以下脚本,并将执行权限附加到该脚本。

nano /usr/local/bin/log.io
chmod +x /usr/local/bin/log.io

将以下摘录添加到此脚本文件中。

#!/bin/bash

                start() {
                echo "Starting log.io process..."
                /usr/bin/log.io-server &
                /usr/bin/log.io-harvester &
                                         }

                stop() {
                echo "Stopping io-log process..."
                pkill node
                                         }                             

                status() {
                echo "Status io-log process..."
                netstat -tlp | grep node
                                         }

case "$1" in
                start)
start
        ;;
                stop)
stop
        ;;
                status)
status
                ;;
                *)
echo "Usage: start|stop|status"
        ;;
Esac

14.要启动、停止或查看Log.io状态,请使用root帐户(或已安装Log.io应用程序的用户)登录,只需运行以下命令即可轻松管理应用程序。

log.io start
log.io status
log.io stop

就这样!在我看来,Log.io 是一个优秀且有效的 Web 应用程序,可以实时监控本地或远程服务器日志文件,并了解系统内部的情况,尤其是在以下情况下调试服务器问题:在不需要使用控制台的情况下,系统往往会变得无响应或崩溃。