记一次使用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 文件 - 知乎

相关推荐
灰色人生qwer14 小时前
使用JMeter 编写的测试计划的多个线程组如何生成独立的线程组报告
jmeter·测试
.格子衫.15 小时前
powershell批处理——io校验
测试·powershell
试着1 天前
【AI面试准备】TensorFlow与PyTorch构建缺陷预测模型
人工智能·pytorch·面试·tensorflow·测试
waves浪游2 天前
博客系统测试报告
测试工具·测试用例·bug·测试
智云软件测评服务3 天前
数字化时代下,软件测试中的渗透测试是如何保障安全的?
渗透·测试·漏洞
试着4 天前
【AI面试准备】XMind拆解业务场景识别AI赋能点
人工智能·面试·测试·xmind
waves浪游6 天前
性能测试工具篇
测试工具·测试用例·bug·测试
艾策第三方软件测评7 天前
软件产品测试报告:如何全面评估及保障软件质量?
测试·软件·评估
转转技术团队11 天前
告别人工搬运!TiDB/MySQL双库同步工具如何为业务提效100%?
mysql·tidb·测试
李菠菜12 天前
JMeter内存配置全平台指南
jmeter·测试