我们做程序的,现在应用部署的服务器数量越来越多,服务器上的各类日志数量的不断增长,势必就会造成日志文件的浏览非常的不便。频繁切换终端的窗口,切换切换着甚至自己都忘记究竟在哪台服务器上,看的是那份日志文件了
这时候需要一种工具能纪录上百台机器、不同类型的日志,并最好能汇集到一个界面里方便查看,最好还是实时的。log.io 就是这样一个实时日志监控工具,采用 node.js + socket.io 开发,使用浏览器访问,每秒可以处理超过5000条日志变动消息。有一点要指出来的是 log.io 只监视日志变动并不存储日志,不过这个没关系,我们知道日志存储在哪个机器上。
和其他的监控工具一样,log.io 也采用服务器-客户端的模式。log.io 由两部分组成:server 和 harvester, server 运行在机器 A(服务器)上监视和纪录其他机器发来的日志消息;log harvester 运行在机器 B(客户端)上用来监听和收集机器 B 上的日志改动,并将改动发送给机器 A,每个需要纪录日志的机器都需要一个 harvester.
部署log.io
[root@APP-APISER02 ~]# yum install gcc gcc-c++ openssl-devel pkgconfig -y #安装依赖包
[root@APP-APISER02 ~]# yum install epel-release -y
[root@APP-APISER02 ~]# yum install nodejs -y
[root@APP-APISER02 ~]# yum install npm -y
[root@APP-APISER02 ~]# node -v
v6.9.4
[root@APP-APISER02 ~]# npm -v
3.10.10
[root@APP-APISER02 ~]# npm install -g log.io --user "root" #安装log.io
[root@APP-APISER02 ~]# vim /root/.log.io/harvester.conf
exports.config = {
nodeName: "prepublish",
logStreams: {
appserver: [
"/data/tools/appserver/logs/catalina.out",
],
appapi: [
"/data/tools/appapi/logs/catalina.out",
]
},
server: {
host: '10.2.1.201',
port: 28777
}
}
[root@APP-APISER02 ~]# log.io-server start #启动服务端
[root@APP-APISER02 ~]# log.io-harvester start #启动客户端 (客户端服务器在同一台服务器上)
浏览器访问:http://10.2.1.201:28778/
# 测试发现使用 nohup & 也无法在后台运行不中断服务,所以使用screen开启服务(为了能关闭终端后还在后台运行)
[root@APP-APISER02 ~]# yum install screen #安装screen
[root@APP-APISER02 ~]#screen -S server (开启一个名为server的会话)
[root@APP-APISER02 ~]# log.io-server start #执行启动服务端命令
[root@APP-APISER02 ~]#screen -S harvester (开启一个名为harvester的会话)
[root@APP-APISER02 ~]# log.io-harvester start #执行启动客户端命令
![](https://img.haomeiwen.com/i6367861/e42d52919a1c6815.png)
网友评论