记一次使用Loadrunner 11监控服务器资源进行配置rpc.rstatd的踩坑

最近有需求需要配合软测部门的小伙伴,在测试系统时,对服务器使用资源进行监控。由于软测小伙伴用的是Loadrunner 11,需要安装rpc.rstatd来监控服务器资源,下面依次介绍安装过程以及遇到的问题。

先展示一下我服务器的环境吧

  • 操作系统版本:CentOS Linux 7
bash 复制代码
$ neofetch
                 ..                                                                                                                                               
               .PLTJ.                  ----------------------------- 
              <><><><>                 OS: CentOS Linux 7 (Core) x86_64 
     KKSSV' 4KKK LJ KKKL.'VSSKK        Host: VMware Virtual Platform None 
     KKV' 4KKKKK LJ KKKKAL 'VKK        Kernel: 3.10.0-1160.71.1.el7.x86_64 
     V' ' 'VKKKK LJ KKKKV' ' 'V        Uptime: 1 day, 3 hours, 2 mins 
     .4MA.' 'VKK LJ KKV' '.4Mb.        Packages: 412 (rpm) 
   . KKKKKA.' 'V LJ V' '.4KKKKK .      Shell: bash 4.2.46 
 .4D KKKKKKKA.'' LJ ''.4KKKKKKK FA.    Terminal: /dev/pts/0 
<QDD ++++++++++++  ++++++++++++ GFD>   CPU: Intel Xeon X5650 (16) @ 2.660GHz 
 'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV     GPU: 00:0f.0 VMware SVGA II Adapter 
   ' VKKKKK'. .4 LJ K. .'KKKKKV '      Memory: 5050MiB / 15883MiB 
      'VK'. .4KK LJ KKA. .'KV'
     A. . .4KKKK LJ KKKKA. . .4                                
     KKA. 'KKKKK LJ KKKKK' .4KK                                
     KKSSA. VKKK LJ KKKV .4SSKK
              <><><><>
               'MKKM'
  • GCC 信息
bash 复制代码
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 

安装过程参考了DANNY大佬写的文章 Loadrunner添加服务器监控 - DANNY - 博客园

  1. sourceforge 下载rpc.rstatd
bash 复制代码
# 下载页面 https://sourceforge.net/projects/rstatd/files/rstatd/4.0.1/rpc.rstatd-4.0.1.tar.gz
wget -O rpc.rstatd-4.0.1.tar.gz https://master.dl.sourceforge.net/project/rstatd/rstatd/4.0.1/rpc.rstatd-4.0.1.tar.gz?viasf=1
  1. 解压 rstatd
bash 复制代码
# 解压
tar -zxvf rpc.rstatd-4.0.1.tar.gz
  1. 检查编译 rstatd 时所需要的环境是否符合要求
bash 复制代码
# 进入 rpc.rstatd 目录
cd rpc.rstatd-4.0.1

# 先执行 configure
# 注意,这一步会检查你当前系统的环境是否有缺失的依赖或者编译工具
# 如果有缺失,请按照提示安装。安装完成之后,在执行一遍
# 确保没问题之后,再进行下一步
./configure
  1. 编译并安装

注意! 安装需要使用root权限,将软件安装到/usr目录下,编译不需要 root

bash 复制代码
# 编译
make

# 安装
sudo make install
  1. 配置 xinetdPS: 犯懒了,直接粘贴大佬的原话

修改的是/etc/xinetd.d/下的: rlogin, rsh, rexec 这三个配置文件。

打这三个文件里的disable = yes 都改成 disable = no ( disabled 用在默认的 {} 中禁止服务)

或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!

我把具体配置贴上,如果你的服务器/etc/xinetd.d/没有配置文件的话,直接按照新建一个

bash 复制代码
# /etc/xinetd.d/rsh
service rsh
{
    disable         = no
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.rshd
    log_on_success  += USERID
    log_on_failure  += USERID
}

# /etc/xinetd.d/rexec
service rexec
{
    disable         = no
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = root
    server          = /usr/sbin/in.rexecd
    log_on_failure  += USERID
}

# /etc/xinetd.d/rlogin
service rlogin
{
    disable = no
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/in.rlogind
    log_on_success += USERID
    log_on_failure += USERID
    protocol = tcp
}
  1. 重启 xinetd 注意!坑来了 我重启报错了!!!,报错如下:
bash 复制代码
xinetd[12900]: Port not specified and can't find service: rexec with getservbyname
xinetd[12900]: Port not specified and can't find service: rlogin with getservbyname
xinetd[12900]: Port not specified and can't find service: rsh with getservbyname

经过反复百度,终于再google找到了答案😂,下面是一位小日子过得不错的日本网友发的贴子: Linuxサーバーの導入 - ma-100140 @ ウィキ - atwiki(アットウィキ)

主要是需要修改 /etc/services 文件,增加rsh等服务的映射信息

bash 复制代码
# vim /etc/services

# 在文件最后面增加
rexec       512/tcp
rlogin      513/tcp
rsh         514/tcp

/etc/hosts.allow 文件追加

shell 复制代码
##########################################################################
# rexec
in.rexecd : ALL

##########################################################################
# rlogin
in.rlogind : ALL

##########################################################################
# rshd
in.rshd : ALL
  1. 重新启动 xinetdrstatd
bash 复制代码
systemctl restart xinetd
systemctl restart rstatd
  1. 使用 rpcinfo -p 查看信息
bash 复制代码
program vers proto   port  service
100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper
100001    3   udp    781  rstatd
100001    2   udp    781  rstatd
100001    1   udp    781  rstatd

到此,问题解决!

扩展知识 /etc/services 文件是什么?

我就不多写了,直接给个引用链接吧: 理解 Linux 中的 /etc/services 文件 - 知乎

相关推荐
越学不动啦12 小时前
七、自动化概念篇
运维·软件测试·自动化·测试
A丹2 天前
学习 Puppeteer 的视口配置对象(Viewport)
测试
论迹2 天前
【测试】-- 测试用例
测试用例·测试
北京_宏哥3 天前
🔥PC端自动化测试实战教程-4-pywinauto 操作PC端应用程序窗口 - 上篇(详细教程)
前端·python·测试
小张已启程4 天前
docker安装及使用
测试
gongzemin5 天前
利用Sentry监控应用里的前后端
前端·后端·测试
WebInfra6 天前
Midscene v0.14 - 新增即时操作接口和深度思考
前端·人工智能·测试
bytebeats8 天前
在Kotlin中编写依赖于时间的可测试协程代码
android·kotlin·测试
越学不动啦10 天前
三、概念篇+Bug篇
bug·测试·软件测试入门·bug测试