安装参数
参数说明
注意:在覆盖安装时,若不指定安装参数,则默认沿用上一次安装的配置。
安装参数格式如下:
- Windows:
installer.exe {安装参数列表} - Linux/AIX:
sh installer.sh --target {安装目录} config {安装参数列表}
installer.exe、installer.sh 请替换为具体的安装程序名称,详细见:安装。
示例中的 "..." 代表其它安装参数。
| 参数名 | 必填 | 支持范围 | 说明 | 示例 |
|---|---|---|---|---|
| --target [val]① [1.2.2+] | 否 | linux | 指定安装目录的绝对路径: root 用户安装:默认目录为 /opt非 root 用户安装:默认目录为 $HOME | sh installer.sh --target /path config ... 注意事项:请确保目标路径中所有层级目录的权限均不低于 755。 可使用以下命令检查: dir="/opt"; while [ "$dir" != "/" ]; do [ $(stat -c %a "$dir") -lt 755 ] && echo "$dir 权限不足"; dir=$(dirname "$dir"); done |
| -a, --account [val] | 是 | linux windows aix | 指定账号GUID | sh installer.sh config -a "xxxx-xxx" ... |
| -u, --url [val] | 见③ | linux windows aix | APM Controller地址 | sh installer.sh config -u "https://oneupload.bonree.com/APM" ... |
| -l, --logs-url [val] [7.2.0+] | 见③ | linux | Logs Controller地址 | sh installer.sh config -l "https://oneupload.bonree.com/controller/logs" ... |
| --set-network-zone [val] [6.6.0+] | 否 | linux windows | 设置网络区域 首次安装默认:不设置 若当前主机上存在宿主机方式安装的SmartGate有指定该参数,将与SmartGate的网络区域保持一致 | sh installer.sh config --set-network-zone "default" ... |
| --set-cluster-name [val] [6.9.0+] | 否 | linux windows | 设置集群名 首次安装默认:不设置 若当前主机上存在宿主机方式安装的SmartGate有指定该参数,将与SmartGate的网络区域保持一致 | sh installer.sh config --set-cluster-name "default" ... |
| --set-env-id [val] [7.4.0+] | 否 | linux windows | 设置环境标识 首次安装默认:不设置 若当前主机上存在宿主机方式安装的SmartGate有指定该参数,将与SmartGate的网络区域保持一致 | sh installer.sh config --set-env-id "default" ... |
| --set-host-attr "datacenter=[val]"⑦ [9.1.0+] | 否 | linux windows | 设置数据中心等主机属性 首次安装默认:不设置 若当前主机上存在宿主机方式安装的SmartGate有指定该参数,将与SmartGate的网络区域保持一致 | sh installer.sh config --set-host-attr "datacenter=123" ... |
| --set-host-tag [k1=v1,k2]⑦ [9.1.0+] | 否 | linux windows | 设置主机标签 首次安装默认:不设置 若当前主机上存在宿主机方式安装的SmartGate有指定该参数,将与SmartGate的网络区域保持一致 | sh installer.sh config --set-host-tag "tag=123,tag2" ... |
| --disable-dumpproc [true/false]② [6.10.0+] | 否 | linux⑥ | 禁止采集崩溃报告及事件 首次安装默认 false | sh installer.sh config --disable-dumpproc true ... |
| -t, --enable-agent-types [val] | 否 | linux windows aix | 指定需启用的探针列表,英文逗号分隔 首次安装默认"java,dotnet,php,go" | sh installer.sh config -t "java,dotnet,php,go,nginx,apache" ... |
| --user [val] --group [val] --non-root-mode [true/false]② [2.1.0+] | 否 | linux④ | 默认值:探针服务进程默认以 bruser 用户身份运行。用户与用户组创建:安装过程中,如系统中不存在指定的用户与用户组(默认bruser:bruser),将自动创建,无法更改已创建用户的归属组,用户名需要核实在用户组下。 安装过程创建的用户: 无密码 禁止登录(仅用于运行探针服务) | 详细见:非特权运行模式 |
| --force [7.2.0+] | 否 | linux | 非root用户下安装 | 强制安装(非root下安装、容器内安装需携带该参数,方可安装,root下该参数无任何效果) 详细见:宿主机非root安装 |
| --reset-conf ... --set-conf ... --delete-conf ... [>=5.8.0 且 < 6.0.0] [6.7.0+] | 否 | linux | 设置配置文件 | 详细见:安装时修改配置文件 |
| --set-inject-mode [0/1]⑤ [8.3.1+] | 否 | linux | 设置注入模式 可选值: 0 - 除了平台定义的规则外,默认挂载探针至所有容器内,再去匹配进程深度监控规则 1 - 除了平台定义的规则外,默认不监控所有容器 | sh installer.sh config --set-inject-mode 0 ... |
| --set-monitoring-mode [infra|full] [9.7.0+] | 否 | linux | 设置监控模式 默认值:full 可选值: infra:仅监控基础设施(不开启语言类应用探针自动注入、不包含ebpfagent)(包含machineagent、logsagent) full:全栈监控 | sh installer.sh config --set-monitoring-mode infra ... |
①、[val] 表示参数占位符
②、[true/false]:表示只能填写 true 或 false
③、当存在任意参数时,APM Controller地址 和 Logs Controller地址,必须至少填1个。
- 如果有指定安装参数但是没有指定 -u 参数将禁用APM功能。
- 如果有指定安装参数但是没有指定 -l 参数将禁用日志收集功能。
④、表示该参数不支持非root安装,若设置该参数则不生效。
⑤、[0/1]:表示只能填写 0 或 1。
⑥、容器化部署始终为true(由于容器化部署,挂载的宿主机根目录不一定为真实的系统根目录,故强制禁用)。
⑦、[k1=v1,k2]:逗号分隔的键值对,值可空。例如:"k1=v1,k2=,k3"
非特权运行模式
不支持非root安装
仅支持 linux
该模式下SmartAgent将以非特权用户运行服务进程,并利用Linux Filesystem Capabilities限制运行进程所需额外的最小权限集
系统要求
- 系统必须安装
libcap2(是否有安装libcap.so.2动态库)。例如,Red Hat Enterprise Linux 5 默认没有安装libcap2。 - 系统必须支持 extended attributes
- 安装目录所在磁盘不能挂载为
noexec或nosuid。 - 必须支持并启用
Linux Filesystem Capabilities(Linux Kernel版本2.6.26以上,例如SUSE Linux Enterprise Server 11 默认不启用该特性)。
如何启用Linux Filesystem Capabilities
SUSE Linux Enterprise Server 11 默认不启用Linux Filesystem Capabilities。
其它Linux发行版或分支版可能也存在默认禁用的情况。SmartAgent在安装过程中如遇到该情况将提示以下警告信息,并以特权模式继续安装:
WARNNING: Failed to enable non-privileged mode, kernel `does not` support file capabilities.
请检查内核启动项,查看是否启用Linux Filesystem Capabilities。可通过以下命令确认:
$ cat /proc/cmdline
如果回显结果包含file_caps=1,则该特性为启用状态。
如需启用该特性,请将file_caps=1添加至内核启动项(例如:SUSE Linux Enterprise Server 11,可使用YaST编辑内核启动项,然后重启机器即可)。
安装方式
# --non-root-mode [true/false] 开启/关闭非特权运行模式, 首次安装默认值为true
# --user [user name] 非特权模式下为SmartAgent相关进程运行用户,首次安装默认值为bruser
# --group [group name] SmartAgent相关文件属组,默认值与`--user`一致,仅与`--user`组合使用。
# 使用 root 运行bonree-agent服务
sudo bash installer.sh config --non-root-mode false
# 使用 myuser:myuser 运行bonree-agent服务
sudo bash installer.sh config --user myuser --non-root-mode true
安装时修改配置文件
仅支持 linux
| 参数 | 参数说明 (支持 yaml、json、ini ) |
|---|---|
--reset-conf {file} {value} | 覆盖指定配置项 |
--set-conf {file} {value} | 设置或追加指定配置项 |
--delete-conf {file} {value} | 删除指定配置项 |
| 子参数 | 子参数说明 |
|---|---|
file | 指定修改文件,如果为相对路径,则实际路径为安装目录/conf/{file} |
value | 修改/删除内容 |
# 修改 javaagent 探针配置
sudo bash installer.sh config --reset-conf java/bonree.yml "common.brdbglogLevel: finest"
# 开启javaagent debug开关,key中包含点号的值时,使用反斜杠标记
sudo bash installer.sh config --set-conf java/bonree.yml "common.bonree\.debug: true"
# 追加 nodejs 探针 数组类型 配置项
sudo bash installer.sh config --set-conf nodejs/bonree.yml "blacklist: [_next, _nuxt]"
# 覆盖 agentloader.yml 数组类型 配置项
sudo bash installer.sh config --reset-conf agentloader.yml \
"jvm.option.javaagent.ignoreList: [xxx.jar, yyy.jar]"
# 追加 agentloader.yml 数组类型 配置项
sudo bash installer.sh config --set-conf agentloader.yml \
"jvm.option.javaagent.ignoreList: [xxx.jar, yyy.jar]"
# 参数可重复使用,用于修改多个不同配置项
# 删除 java/bonree.yml 配置项,并修改 php/brapm.ini 配置
sudo bash installer.sh config \
--delete-conf java/bonree.yml "common.brdbglogLevel" \
--reset-conf php/brapm.ini "brapm.log_conf_file_size = 50"