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的主要内容,如果未能解决你的问题,请参考以下文章