跳到主要内容
版本:3.7.0

在 Linux 上使用非 root 用户安装 SmartAgent

概述

本文介绍如何在 Linux 系统上以 非 root 用户 安装 SmartAgent

这种安装方式特点:

  • 无需 root 权限
  • 仅支持当前用户启动的应用监控
  • 功能有限,适合权限受限环境或快速试用
信息

如果有 root 权限,建议使用 Linux (root) 安装方式 以获得完整功能。


安装前准备

在开始安装之前,请确保满足以下条件:


使用限制

从 7.2.0 开始正式支持:

  • 仅支持 Linux (x86、x64、aarch64)

  • 不支持在同一主机安装多个非 root 探针

  • 不支持与 root 安装的 SmartAgent 同时存在

  • 不支持监控容器化部署的应用

  • 不支持采集容器技术相关指标

  • 不支持开机自启动

  • 不支持监控设置了特权位(setuid / any capabilities)的应用

    示例:

    # nginx 启用了 setuid
    ls -l $(which nginx)
    -rwsr-sr-x 1 root root 1338032 Jun 28 2023 /usr/sbin/nginx

    # 应用设置了 capabilities
    getcap $(which nginx)
    /usr/sbin/nginx = cap_net_bind_service+eip

安装与升级

  1. 登录 Bonree ONE 平台,进入 部署配置 > 安装部署 页面,选择 主机模式 作为部署模式

  2. 下载最新的 SmartAgent-Linux 对应 CPU 架构的安装包:

    wget -O Bonree-SmartAgent-Linux-<version>.sh \
    'https://one.bonree.com/agent/down/Bonree-SmartAgent-Linux-<version>.sh' \
    --header='Authorization:<token>'
  3. 执行安装命令,并根据需要设置参数(详细安装参数):

    信息

    非root 下安装需携带 --force 参数

    /bin/sh Bonree-SmartAgent-Linux-<version>.sh config \
    -a "<accountGUID>" \
    -u "https://oneupload.bonree.com/APM" \
    -t "java,php,go,dotnet" \
    --set-env-id "default" \
    --force"
  • 重新登录 shell 或执行以下命令配置当前会话,自动注入所需环境变量:

    source $HOME/.smartagent/conf/setup.sh
  • 示例:重启需要监控的应用程序。

    注意

    首次安装后,如果目标应用由其他管理工具启动或停止,需要先重启该管理工具。
    建议在重启应用所在的 shell 会话,检查环境变量是否生效

    nohup java -jar demo.jar &

卸载

bash $HOME/bonree/apm/scripts/uninstall.sh
注意

卸载后,在所有已监控的应用或容器完成重启前,不要立即删除探针目录,否则可能导致业务异常。


服务管理(在安装用户执行)

# 查看运行状态
$HOME/bonree/apm/scripts/bonree-agent.sh status

# 停止探针
$HOME/bonree/apm/scripts/bonree-agent.sh stop

# 重启探针
$HOME/bonree/apm/scripts/bonree-agent.sh restart

关于自动注入

环境配置

  • 安装时将尝试修改 $HOME/.bashrc$HOME/.bash_profile
  • 如果存在 .bashrc.bash_profile,会在文件尾部追加:
    source $HOME/.smartagent/conf/setup.sh 2>/dev/null
  • 也可根据系统和用户配置选择其他文件位置

检查自动注入配置是否生效

env | grep LD_PRELOAD

若输出包含 LD_PRELOAD 且路径正确,则说明生效。

未生效时,可在 应用启动脚本开头 添加:

source $HOME/.smartagent/conf/setup.sh
示例
[username@myhost ~]$ env | grep LD_PRELOAD
LD_PRELOAD=/home/lll/bonree/apm/$LIB/libagentloader.so

限制

  • 默认仅支持监控当前用户启动的应用

跨用户支持方案

  1. 创建探针用户(如 bonreeapm),将 /home/bonreeapm 目录权限设为 755
  2. 安装探针到该用户下
  3. 在其它需监控用户的 .bashrc.bash_profile 中追加:
source /home/bonreeapm/.smartagent/conf/setup.sh 2>/dev/null
  1. 重新登录并重启需监控的应用