You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NRPE在指定计算节点执行脚本并返回执行结果?

使用NRPE在指定计算节点执行脚本并获取结果

前提准备

  • 在所有目标计算节点上安装NRPE服务与基础插件:
    • Debian/Ubuntu系统:apt install nagios-nrpe-server nagios-plugins -y
    • RHEL/CentOS系统:yum install nrpe nagios-plugins -y
  • 在监控控制节点上安装NRPE客户端工具:apt install nagios-plugins-nrpe -y(Debian/Ubuntu)或yum install nagios-plugins-nrpe -y(RHEL/CentOS)

配置目标计算节点的NRPE

  1. 编辑NRPE配置文件(路径通常为/etc/nagios/nrpe.cfg):
    • 修改allowed_hosts参数,添加监控控制节点的IP地址,限制仅允许指定节点发起请求:
      allowed_hosts=127.0.0.1,192.168.1.100  # 替换为你的监控节点IP
      
    • 添加自定义执行命令,配置一个允许运行指定脚本或传递命令参数的条目:
      # 配置运行自定义脚本的命令,$ARG1$用于接收外部传递的参数
      command[run_custom_task]=/usr/local/bin/exec_script.sh $ARG1$
      
    示例脚本exec_script.sh(用于接收参数并执行命令):
    #!/bin/bash
    # 接收传递的命令参数并执行
    EXEC_CMD="$1"
    $EXEC_CMD
    exit $?
    
  2. 给脚本添加执行权限并设置正确的所属用户:
    chmod +x /usr/local/bin/exec_script.sh
    chown nagios:nagios /usr/local/bin/exec_script.sh
    
  3. 重启NRPE服务使配置生效:
    # Debian/Ubuntu
    systemctl restart nagios-nrpe-server
    # RHEL/CentOS
    systemctl restart nrpe
    
  4. 开放防火墙5666端口(NRPE默认通信端口):
    # UFW防火墙
    ufw allow 5666/tcp
    # firewalld
    firewall-cmd --add-port=5666/tcp --permanent
    firewall-cmd --reload
    

从监控节点发起命令执行并获取结果

使用check_nrpe工具指定目标计算节点,调用预先配置的自定义命令并传递待执行的命令内容:

# 替换为目标计算节点IP,"your_command_here"替换为实际要执行的命令
check_nrpe -H 192.168.1.200 -c run_custom_task -a "your_command_here"

执行后即可直接在监控节点的终端上获取目标节点脚本/命令的输出结果。

关键注意事项

  • 安全限制:避免直接配置允许执行任意命令,尽量通过固定脚本封装执行逻辑,仅传递必要参数,防止命令注入风险。
  • sudo权限:若待执行的命令需要管理员权限,需在目标节点的sudoers文件中添加NRPE用户的免密权限:
    nagios ALL=(ALL) NOPASSWD: /usr/local/bin/exec_script.sh
    
  • 日志排查:若执行失败,可查看NRPE日志(路径通常为/var/log/nagios/nrpe.log)定位问题。

内容的提问来源于stack exchange,提问作者Gopi Krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:10:32