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

相关推荐
前端工作日常11 小时前
我学习到的描述项目持续迭代具体成果
前端·测试
前端工作日常3 天前
平台价值与用户规模的共生关系
electron·测试·puppeteer
CrissChan5 天前
AI赋能软件工程让测试左移更加可实施
人工智能·python·llm·软件工程·测试
努力奋斗的Tom6 天前
Air test框架与appium的优势
测试
瑞士龙珠7 天前
JMeter 多台压力机分布式测试(Windows)
测试
Apifox7 天前
如何在 Apifox 中正确使用前置 URL?
前端·后端·测试
陈哥聊测试8 天前
软件工程3.0时代,为什么人工测试仍必不可少?
人工智能·测试
檀檀19939 天前
测试抓包工具2-whistle抓包
测试
用户35218024547510 天前
靶场:Breach3.0攻略
安全·测试
ZoeLandia11 天前
前端自动化测试:Jest、Puppeteer
前端·自动化测试·测试