在RHEL/CentOS 7/6上使用“Log.io”工具实时监控服务器登录
Log.io 是一个构建在 Node.js 和 Socket.io 之上的小型简单但有效的应用程序,它允许监视 Linux 服务器日志通过网络界面屏幕小部件实时查看文件。
本教程将指导您如何通过配置 Log.io 在 RHEL/CentOS 7/6.x 上安装并实时监控任何本地日志文件b>harvester 文件来监视日志文件的任何本地更改。
第 1 步:添加 Epel 存储库
1. CentOS Epel 存储库提供 Node.js 和 NPM 的二进制包 – 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 的工作原理。
- harvester 文件监视其配置中声明的指定本地日志文件的更改,并通过 socket.io TCP 发送其输出
进一步将消息发送到 Log.io 本地服务器或任何其他以其 IP 地址声明的远程服务器(在 Harvester 上指定的 0.0.0.0 地址广播到所有 log.io 侦听服务器)的协议 – 文件 harvester.conf - Log.io 服务器绑定在所有网络接口上(如果在 log_server.conf 文件中未另外指定),并等待来自本地或远程收割机节点的消息,并将其输出发送到 log.io Web 服务器(0.0.0.0 表示它等待消息来自任何本地或远程收割机)文件log_server.conf
- 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 语句,并替换 user 和 pass 相应的指令如底部屏幕截图所示。
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 应用程序的命令,具有三个开关(start、stop 和status) 在 /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 应用程序,可以实时监控本地或远程服务器日志文件,并了解系统内部的情况,尤其是在以下情况下调试服务器问题:在不需要使用控制台的情况下,系统往往会变得无响应或崩溃。