centos下部署及配置log.io

Posted 搜狗测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos下部署及配置log.io相关的知识,希望对你有一定的参考价值。

背景

测试时查看log是个很有效率的用于快速发现问题的手段。传统的方法是登录服务器,利用tail命令实时获取日志。 

这样的方法十分直接,但是也存在他自己的弊端,比如当我们需要同时查看多个日志文件时,就需要开启多个SSH窗口,切换起来十分不便,同时还会占用大量空间;当配合的同事想要查看日志时,我们还需要将日志所在服务器的用户名密码告知对方,一方面对方需要进行繁杂的服务器登录等操作,降低效率,另一方面也带来了潜在的操作风险。

所以这里引入了log.io这个浏览器端实时日志监管系统。

原理

基本原理示意图如下(来自官网:http://logio.org):

图1 log.io原理示意图

Harvester为日志服务器,负责实时监控指定日志的变动,Server为中转服务器,Browser为浏览器端。Harvester完成数据采集后,通过TCP端口将数据发送至Server端,而Server通过socket.io 将增量日志信息同步到浏览器。

通过原理可以看到,可以同时存在多个Harvester,也就是多个需要监控的日志服务器,同时可以在多个Browser上进行同步显示,十分方便。

部署

log.io由Node.js编写,故我们的linux服务器中需要配置有Node.js的环境。同时,还需要gcc依赖。

1. 安装GCC环境

先利用gcc -v查看gcc版本。安装时需要gcc支持c++11相关标准,而gcc在4.7以后才开始支持,故版本小于4.7的需要更新gcc至更高版本(例如centos自带的gcc 4.8.2)

2. 安装Node.js环境

log.io已经被封装成了npm包,而我们在安装Node.js后npm也会一并安装完毕。

相关操作如下:

    2.1 安装Node.js:

curl -sL https://rpm.nodesource.com/setup_6.x | bash -

根据提示输入:yum install -y nodejs

输入node -v,输出版本号即表示安装成功。

    2.2 更新npm:

npm install npm@latest -g

输入npm -v,输出版本号即表示安装成功。

3. 安装log.io

只需要执行npm命令即可

sudo npm install -g log.io --user "root"

--user为指定用户名。因为log.io需要在用户的根目录里面建立目录。

4. 修改配置信息

conf路径如下:

vim ~/.log.io/harvester.conf

结构大致如下:

exports.config = {
  nodeName: "application_server",// node名称,一台服务器对应一个  logStreams: { // 每个node对应streams,用于具体的监控
    apache_test: [// streams的名称      
       "/var/log/apache2/access.log", //配置一个或多个日志路径      
       "/var/log/apache2/error.log",      
       "/search/log/test.log"    ],    zzz_test: [      
       "/search/log/test.log"    ]  },  server: { //Server端的IP,端口号不用更改    host: '0.0.0.0',    port: 28777  } }

5. 启动

需要分别在Harvester和Server端启动相应服务。

先启动Server端:

log.io-server

再启动Harvester端:

log.io-harvester

图2 log.io运行示例

左侧“1”处为步骤4中配置文件的node和stream信息,右侧“2”处为具体的日志监控信息,同时右侧可以分多个窗口对应显示不同stream的信息,下方“3”处为当前阶段请求概况。

至此log.io已经配置完毕

优势

1. 如图2所示,可以方便快捷查看多个日志,同时手动划分多个窗口(在“2”处设置即可)分别显示,也可以多个渠道的日志在同一窗口下展示。


2. 日志信息支持筛选,即在“2”处窗口右上角有filter选项,该筛选支持正则表达式。


3. 可以设置查看权限,在服务端中查看web_server.conf,取消Enable HTTP Basic Authentication的注释,可以设置访问日志的用户名及密码。


4. 由于该项目开源,我们可以自主更改其css样式,方便我们的个人需求。

注意事项

在配置和启动过程中,还会有很多有可能的坑,在此罗列我在配置过程中遇到的问题。

1. 在更新npm时,由于某些不可抗力因素,可能导致官方源的速度非常慢,解决方法为采用第三方源(淘宝源):

npm --registry https://registry.npm.taobao.org install express

2. 安装过程中可能会抛出“Failed at the contextify@0.1.15 install script.”类似的问题,原因可能是当前gcc版本过低导致。需要更新至4.7以上。

3. 为方便使用,我们在harvester和server端可以后台启动相应服务,这样就不用保持终端窗口的展现。不过这两个服务不支持直接以nohup命令的后台启动,解决方法为将nohup命令写入一个.sh文件中,通过启动.sh文件来后台启动相应服务。

4. 编辑harvester.conf文件时,若想要以某ip来命名node,建议以“_”代替“.”,否则会报错。




想学习更多的测试技能,不要犹豫,长按下方关注就是了!




Leaving is not parting.

Everything that is grateful.

To server&se.



以上是关于centos下部署及配置log.io的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7安装配置svn及svn hook实战

centos7服务器搭建javaweb运行环境及代码部署

centos 7安装gitlab及使用

Centos7下SVN环境部署及使用记录

CentOS下使用Docker安装Jenkins及配置详细教程

centos6 Nginx的安装部署与负载均衡配置