log.io 是一个实时日志监控工具,采用 node.js + socket.io 开发,使用浏览器访问,每秒可以处理超过5000条日志变动消息。有一点要指出来的是 log.io 只监视日志变动并不存储日志,和其他的监控工具一样,log.io 也采用服务器-客户端的模式。
github地址:https://github.com/NarrativeScience/log.io
如何工作?
文件输入端监控日志文件发生的变化,通过TCP协议将最新的信息发送给服务端,进而服务端通过socket.io将接收到的信息输出到浏览器上
安装服务端
npm install -g log.io 添加配置服务端的配置文件 vim ~/.log.io/server.json 示例: { "messageServer": { "port": 6689, "host": "127.0.0.1" }, "httpServer": { "port": 6688, "host": "127.0.0.1" }, "debug": false, "basicAuth": { "realm": "abc123xyz", "users": { "username1": "password1" } } }
参数说明:
messageServer: 是TCP协议接受来气input的文件信息
httpServer: 接受来自浏览器的请求
默认 应用的配置文件在~/.log.io/server.json 当然可以被环境变量LOGIO_SERVER_CONFIG_PATH覆盖执行配置文件的路径
baseAuth做简单用户验证, 和debug 这两个配置项可以被忽略
启动服务端
log.io-server
##############################################################
安装文件输入
npm install -g log.io-file-input
添加配置文件
vim ~/.log.io/inputs/file.json
示例:
{
"messageServer": {
"host": "127.0.0.1",
"port": 6689
},
"inputs": [
{
"source": "server1",
"stream": "app1",
"config": {
"path": "log.io-demo/file-generator/app1-server1.log"
}
},
{
"source": "server2",
"stream": "system-logs",
"config": {
"path": "/var/log/**/*.log",
"watcherOptions": {
"ignored": "*.txt",
"depth": 99,
}
}
}
]
}
参数说明:
默认配置文件在~/.log.io/inputs/file.json 当然也可以通过变量进行指定 LOGIO_FILE_INPUT_CONFIG_PATH
路径可以配置一个文件路径,目录路径,或者使用匹配glob, 更多配置参考:chokidar
启动监视器
log.io-file-input
效果图:
使用场景:
之前总是登录服务器打开文件进行查看, 使用这个系统可以同时监控多个文件, 并实时的将数据输出到浏览器终端, 方便查看