背景:

近期在升级php7,代码需要测试同学回归测试,发现不兼容的代码及时反馈给开发,但是有个问题测试要到服务器上才能看到php_error.log日志,如果有多个测试的话,每个测试都要给开通服务器账号,还要告知机器ip,错误日志路径等信息不方便,就此背景打算安装一个实时查看指定路径的日志文件工具:log.io,方便测试

1.介绍

log.io 是一个实时日志监控工具,采用 node.js + socket.io 开发,使用浏览器访问,每秒可以处理超过5000条日志变动消息。有一点要指出来的是 log.io 只监视日志变动并不存储日志,和其他的监控工具一样,log.io 也采用服务器-客户端的模式。log.io 由两部分组成:server 和 harvester, server 运行在机器 A(服务器)上监视和纪录其他机器发来的日志消息;log harvester 运行在机器 B(客户端)上用来监听和收集机器 B 上的日志改动,并将改动发送给机器 A,每个需要纪录日志的机器都需要一个 harvester.

工作原理图:

2.安装

启动一个新容器:

docker run -it \
--net=host \
--name=log_io_container \
-v /data1:/data1 -v  /data1/log.io:/root/.log.io  log-io  /bin/bash

安装nodejs:

yum install -y gcc-c++ make;  
curl --silent --location; https://rpm.nodesource.com/setup_5.x | bash - ;
yum install -y nodejs; 

安装npm

wget --no-check-certificate https://npmjs.org/install.sh && sh install.sh

防止npm被墙,使用cnpm替代

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装log.io

cnpm install -g log.io  --user 'root' 

在宿主机上创建log.io目录,放置配置文件

mkdir /data1/log.io;

新增3个配置文件:harvester.conf,log_server.conf,log_server.conf

harvester.conf内容:

exports.config = {
  nodeName: "10.210.234.203",
  logStreams: {
    php_error: [
         "/data1/www/logs/php_error.log"
    ]
  },
  server: {
    host: '0.0.0.0',
    port: 28777
  }
}

配置文件:log_server.conf

exports.config = {
  host: '0.0.0.0',
  port: 28777
}

配置文件:web_server.conf

exports.config = {
  host: '0.0.0.0',
  port: 28778,
}

web服务器启动

/usr/bin/log.io-server >/dev/null 2>/dev/null &

收割启动

/usr/bin/log.io-harvester >/dev/null 2>/dev/null &

访问:http://10.210.234.203:28778/

这里写图片描述

4.参考:
http://blog.csdn.net/shootyou/article/details/48347847

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐