Linux下跨服务器多log实时查看工具multitail使用
2014-03-26 16:35
621 查看
一、问题的背景
上图为一般游戏后台服务器的可能架构。接入服务器负责管理玩家链接及收发包,SvrA/B/C为内部逻辑服务器处理各种游戏逻辑。各内部服务器通过Proxy来进行通信。
二、问题的引出
在实际开发过程中,经常遇到这样的问题,客户端给服务器发送请求,但服务器没有返回,需要定位请求数据到底在哪里断了的情况。
比如某个请求的处理过程为请求先到SvrA,然后SvrA去SvrC做一些处理,返回后SvrA再到SvrB做数据保存,最后SvrA返回结果给客户端。其处理路径为:
Client->SvrA->Proxy->SvrC->Proxy->SvrA->Proxy->SvrB->Proxy->SvrA->Client
于是,最常见的找问题的方式是从SvrA开始,逐一查看各Svr的log,看到底在哪里中断了。更聪明一点的做法可能是采用二分法,先去SvrA的log查看是否正常以确定问题是出在前半路径还是后半路径……
到每个Svr上去查看log的方式,显示非常繁琐及低效,尤其是路径更长或是各个Svr还不在同一机器上时,将会更加麻烦。
三、问题的解决
某天无意中看到一个小工具Multitail的介绍,它可以实现在同一屏幕下查看多个文件的变化,甚至可以跨机器查看log!这下问题解决了。下面是效果示意图(其中第三个为跨机器查看log变化):
Mutiltail的使用:
1、 安装:程序代码可上http://www.vanheusden.com/multitail/下载,下载后只需解压然后make install即可
2、 使用:
使用multitail /path1/filename1 /path2/filename2 ……即可查看多文件实时输出
3、 关于跨服务器查看log
使用multitail的-l选项,通过ssh远程执行tailf命令即可。(Multitail的-l选项可以查看一个命令的输出)
比如上面效果图所使用的命令为
multitail /home/gamesvr/log/ServerFrame_2014-02-08.log /home/proxy/log/ProxySvr_2014-02-08.log -l "ssh root@10.12.194.93 'tailf /home/cubedb/log/ServerFrame_2014-02-08.log'"
附: 要使用ssh远程执行命令,需要先做ssh2无密码登录配置。方法很简单,
从服务器A无密码登录到B的配置:
在服务器A上操作:
# ssh-keygen2 -t rsa
# cd ~./ssh2
# echo "IdKey id_rsa_2048_a" > identification
# cp id_rsa_2048_a.pub testssh2.pub
在服务器B上操作:
# cd ~/.ssh2
将服务器a上的testssh2.pub,拿到服务器B的~/.ssh2目录下
# echo "key testssh2.pub" >> authorization
上图为一般游戏后台服务器的可能架构。接入服务器负责管理玩家链接及收发包,SvrA/B/C为内部逻辑服务器处理各种游戏逻辑。各内部服务器通过Proxy来进行通信。
二、问题的引出
在实际开发过程中,经常遇到这样的问题,客户端给服务器发送请求,但服务器没有返回,需要定位请求数据到底在哪里断了的情况。
比如某个请求的处理过程为请求先到SvrA,然后SvrA去SvrC做一些处理,返回后SvrA再到SvrB做数据保存,最后SvrA返回结果给客户端。其处理路径为:
Client->SvrA->Proxy->SvrC->Proxy->SvrA->Proxy->SvrB->Proxy->SvrA->Client
于是,最常见的找问题的方式是从SvrA开始,逐一查看各Svr的log,看到底在哪里中断了。更聪明一点的做法可能是采用二分法,先去SvrA的log查看是否正常以确定问题是出在前半路径还是后半路径……
到每个Svr上去查看log的方式,显示非常繁琐及低效,尤其是路径更长或是各个Svr还不在同一机器上时,将会更加麻烦。
三、问题的解决
某天无意中看到一个小工具Multitail的介绍,它可以实现在同一屏幕下查看多个文件的变化,甚至可以跨机器查看log!这下问题解决了。下面是效果示意图(其中第三个为跨机器查看log变化):
Mutiltail的使用:
1、 安装:程序代码可上http://www.vanheusden.com/multitail/下载,下载后只需解压然后make install即可
2、 使用:
使用multitail /path1/filename1 /path2/filename2 ……即可查看多文件实时输出
3、 关于跨服务器查看log
使用multitail的-l选项,通过ssh远程执行tailf命令即可。(Multitail的-l选项可以查看一个命令的输出)
比如上面效果图所使用的命令为
multitail /home/gamesvr/log/ServerFrame_2014-02-08.log /home/proxy/log/ProxySvr_2014-02-08.log -l "ssh root@10.12.194.93 'tailf /home/cubedb/log/ServerFrame_2014-02-08.log'"
附: 要使用ssh远程执行命令,需要先做ssh2无密码登录配置。方法很简单,
从服务器A无密码登录到B的配置:
在服务器A上操作:
# ssh-keygen2 -t rsa
# cd ~./ssh2
# echo "IdKey id_rsa_2048_a" > identification
# cp id_rsa_2048_a.pub testssh2.pub
在服务器B上操作:
# cd ~/.ssh2
将服务器a上的testssh2.pub,拿到服务器B的~/.ssh2目录下
# echo "key testssh2.pub" >> authorization
相关文章推荐
- linux实时监控或查看系统资源使用情况的工具——TOP
- 远哥谈 使用WebSocket开发在线实时看远程服务器log日志的工具
- nload实时查看linux服务器网络流量的工具
- nload实时查看linux服务器网络流量的工具
- nload : 实时查看linux服务器网络流量的工具
- linux系统下查看tomcat服务器实时 log日志的命令
- 使用 tuptime 工具查看 Linux 服务器系统的开机时间的历史和统计
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Error:Security problem ,see jack server log解决方法,Linux多人使用一台服务器编译出现端口占用。
- Linux 查看磁盘分区、文件系统、磁盘的使用情况相关的命令和工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 查看Linux服务器的内存使用情况
- Siege―最好的Linux下Web服务器性能/压力测试工具,Siege使用教程详细说明
- iftop是一个很好用的实时流量监测程序,跟使用iftop查看linux连接进程占用的实时流量
- 查看Linux服务器内存使用情况
- Linux实时监控工具Nmon使用
- Linux实时流量监控工具iftop安装及使用教程
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Centos(Linux)操作系统下使用MegaCli等工具查看Raid磁盘阵列状态