一、软件介绍
log.io 是一个实时日志监控工具,采用 node.js + socket.io 开发,使用浏览器访问,每秒可以处理超过5000条日志变动消息。有一点要指出来的是 log.io 只监视日志变动并不存储日志,和其他的监控工具一样,log.io 也采用服务器-客户端的模式。log.io 由两部分组成:server 和 harvester。server 运行在机器 A(服务器)上监视和纪录其他机器发来的日志消息;log harvester 运行在机器 B(客户端)上用来监听和收集机器 B 上的日志改动,并将改动发送给机器 A,每个需要纪录日志的机器都需要一个 harvester.
工作原理图
![](https://s1.51cto.com/images/blog/201901/19/8670a54cae03c4b1fdb99ff2b4f291db.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
二、安装配置
A和B两台机器上同时安装(第一步到第四步)
1、安装依赖包
yum install gcc gcc-c++ openssl-devel pkgconfig -y
tar xvf node-v4.9.1-linux-x64.tar.gz
mv node-v4.9.1 /usr/local/nodejs
vim /etc/profile
#nodejs
export PATH=$PATH:/usr/local/nodejs/bin
source /etc/profile
以上步骤,同时安装了node 和npm
三、安装log.io
1,安装 log.io 包。这里必须指定一个用户名,例如 root。因为 log.io 需要在用户的根目录里面建立目录,存放配置信息。
npm install -g log.io --user "root"
2, 修改配置信息。默认的配置信息如下,设置了一个 application_server 的节点,下面有 apache 的日志流信息,监测了两个日志文件 access.log 和 error.log。而且,设置了 log.io 服务器的信息,28777 是默认 log.io 服务监测的 TCP 端口,用来传输日志信息。
配置日志收集端
vi ~/.log.io/harvester.conf
exports.config = {
nodeName: "application_server",
logStreams: {
apache: [
"/var/log/apache2/access.log",
"/var/log/apache2/error.log",
]
},
server: {
host: '0.0.0.0',
port: 28777
}
}
启动 log.io 服务器。
log.io-server
打开浏览器访问 hostname:28778,可以看到 log.io 界面,说明安装成功。如图 1 所示。
五、在服务端上启动server
配置文件参考:
exports.config = {
server: {
host: '192.168.50.234',
port: 28777
}
}
启动log.io
cd node-v0.8.14
log.io-server & ##以守护进程运行
六、在Client端修改配置文件(样例)
vim /root/.log.io/harvester.conf
exports.config = {
nodeName: "12",
logStreams:{
nginx_access: [
"/usr/local/nginx/logs/access.log",
],
nginx_error: [
"/usr/local/nginx/logs/error.log"
],
},
server: {
host: '192.168.50.234', ##Server端地址
port: 28777 ##和Server端交互端口
}
}
启动服务:
cd node-v0.8.14
log.io-harvester & (只需要启动日志收集端)
七、通过浏览器查看日志信息
http://192.168.50.234:28778 ##28777是Server端和Client端的交互端口;28778是请求
错误一:
如果启动log.io-server 或者 log.io-harvester 报错,请升级node 版本
node 升级
node有一个模块叫 n ,是专门用来管理node.js的版本的。
第一步:首先安装n模块:
npm install -g n
第二步:升级node.js到最新稳定版
n stable
第二步:n后面也可以跟随版本号比如:
n v11.6.0
我是按照从上到下,最终正常运行。