部署UniAgent
前提条件
- 具有要部署UniAgent的服务器的管理员权限,并且防火墙的配置能保障UniAgent与Collector的通信。
- 具有重启所有应用的权限,且重启应用时不能变更用户。
- UniAgent所在目录预计所占最大空间为10GB。
- 建议安装UniAgent的主机可用内存不小于1GB。
- 在部署UniAgent之前,如果已经安装了Agent,需要先卸载已安装的Agent,再安装UniAgent。
- UniAgent会监测所有的Java、PHP、和.NET Core进程,不想被监测的进程需要手动配置到黑名单里。
- UniAgent对操作系统版本和Docker版本有要求,详情参照UniAgent支持列表。
- 不能和其他厂商的UniAgent同时安装。
开通网络策略(演示)
⚠️ 下面是演示的IP地址,请根据实际项目内的地址信息开通网络策略
源地址 | 目标地址 | 开通端口 | 说明 |
---|---|---|---|
192.168.5.2 | 192.168.5.3 | 19109 | Infra Collector主动拉取主机探针数据,主机探针监听19109端口 |
192.168.5.2 | 192.168.5.1 | 10100,10400,11000,8080 | Collector上传数据到平台 |
192.168.5.3 | 192.168.5.2 | 7665,7666 | 后端服务器探针推送数据到Collector, APM Collector使用7665端口, Infra Collector使用7666端口 |
192.168.5.3 | 192.168.5.1 | 8080 | 后端服务器探针在线升级 |
用户 | 192.168.5.1 | 8080 | 平台报表访问 |
在Linux平台部署
环境信息确认
⚠️ 确认服务器CPU是ARM64还是x86_64架构
⚠️ 确认和所选Collector的网络是否通畅
部署步骤
登录基调听云悟空平台,在左侧导航栏中选择 管理 -> 部署状态 -> UniAgents管理
在 UniAgents管理 页签的右上角单击新增, 选择Linux类型的探针,并配置UniAgents参数。
⚠️ 选择操作系统CPU架构类型:目前支持x86_64和ARM64两种CPU架构, 请选择和目标服务器一致的CPU架构类型。
选择UniAgent版本:私有化部署时,UniAgent安装包需要通过超级管理员admin登录系统,提前进行上传,才能在此处显示版本号。
⚠️ 多网卡:当安装探针的服务器对外有多个IP时,可指定使用哪个IP与Collector进行通信。默认不指定IP的情况下,探针会自动获取网卡列表内第一个可用的IP。
例1:当安装探针的服务器有2个网卡,一个外网IP,一个内网IP,如果不指定IP,可能会造成自动获取的IP是外网IP,通讯产生外网网络流量。此时需要选中多网卡选项,指定IP为内网IP。
例2:当安装探针的服务器运行在虚拟机内部,通过NAT映射和Collector通讯,探针自动获取的IP是虚拟机内部IP,Infra Collector 无法拉取这个IP的主机探针数据。此时,需要选中多网卡选项,指定IP为虚拟机外部IP,并且NAT映射虚拟机外部 19109 端口 到虚拟机内部 19109端口,Infra Collector才能正常访问到这个服务器上的主机探针数据。
业务系统:这个参数影响应用与微服务中的业务系统名称。
当一个应用上传监控数据时,如果是首次上传,创建应用的同时会自动创建一个名称为本参数的业务系统,并将这个应用归属到这个业务系统内。
但如果系统中已经存在了同名的应用,即使在此配置了不同的业务系统名称,后面安装探针的服务器上产生的应用仍会归属到与其他UniAgent上同名应用的业务系统内。
用户可在应用与微服务 > 业务系统中维护业务系统与应用的关联关系。
标签:这个参数影响基础设施中的安装探针服务器所属的权限分组。如果还未创建标签,可以依次单击基础设施 > 配置 > 标签管理,进入标签管理页面创建新标签。
全栈数据采集:开启后,UniAgent采集基础设施数据和Java等应用性能数据。如果禁用,UniAgent只会采集基础设施数据,不采集Java等应用性能数据。
选择Agent Collector,若Collector列表中有数据,可直接勾选(支持多选,但部署环境要一致),支持根据部署环境或IP地址进行模糊查询;
若Collector列表中没有数据,或想新增Collector,可单击新增Collector按钮进行添加(Collector部署方式请参见Collector部署)。
选用以下方式之一下载UniAgent安装脚本(需勾选Collector才可以下载)。
方法一:单击点击生成,系统会生成一条命令,单击右侧的copy按钮后在目标服务器上执行这条命令。
方法二:网络不通时,可直接单击右侧下载按钮下载安装脚本,并将安装脚本传到目标服务器。
校验安装脚本。
单击右侧的copy按钮后,在目标服务器上执行校验命令。校验脚本的目的是保证安装脚本下载完整,如果脚本未下载完整系统会给出提示信息。
执行安装脚本
⚠️ 推荐使用root用户安装UniAgent。
安装命令:
sudo sh ./tingyun-agent-版本号.sh
卸载命令:
sudo /opt/tingyun-oneagent/uninstall.sh
⚠️ 如果没有root权限,使用非root用户安装 (2.5.2.0及以上版本)
与root用户安装的区别如下:
不支持监控容器化部署的应用
不支持开机自启动
不支持主机监控
仅支持监控使用安装探针用户启动的应用
仅支持Java、.NetCore、 Python、 Node.js应用监控
安装命令:
sh ./tingyun-agent-版本号.sh --none-privilege=true
卸载命令:
source ~/.tingyun/scripts/uninstall.sh
验证
使用root权限安装
安装目录默认为
/opt/tingyun-oneagent
。使用以下命令查看运行状态
##UinAgent相关命令CentOS 7及以上 sudo systemctl status tingyun-oneagent ##查看UniAgent状态 sudo systemctl start tingyun-oneagent ##启用UniAgent sudo systemctl stop tingyun-oneagent ##禁用UniAgent sudo systemctl restart tingyun-oneagent ##重启UniAgent ##UinAgent相关命令CentOS 7及以下 sudo service tingyun-oneagent status ##查看UniAgent状态 sudo service tingyun-oneagent start ##启用UniAgent sudo service tingyun-oneagent stop ##禁用UniAgent sudo service tingyun-oneagent restart ##重启UniAgent
请确保文件
/etc/ld.so.preload
内容为/lib64/libinterceptor.so
。默认 Nginx、Python、Node.js 监控是禁用的,如需监控,请修改
/opt/tingyun-oneagent/conf/interceptor.conf
,将nginx_enabled
或python_enabled
或nodejs_enabled
设置为 true。
- 使用非root用户安装
安装目录为`~/.tingyun`, 日志目录为`~/.tingyun/logs`
安装后脚本将尝试自动配置相关的环境变量,如果用户Home目录下存在`.bashrc` 或 `.bash_profile` 文件,则追加 `source ~/.tingyun/scripts/start.sh`,自动注入相关的环境变量,注意:`.bashrc`、`.bash_profile`是bash环境默认文件名,可以通过修改配置文件更改其位置或使用其他文件。最好根据特定系统的配置和实际情况进行验证和调整。
默认 Python、Node.js 监控是禁用的,如需监控,请修改 `~/.tingyun/conf/interceptor.conf`,将 `python_enabled` 或 `nodejs_enabled` 设置为 true。
重启需要监控的进程。
使用root权限安装后,在目标服务器重启需要监控的进程,即可自动嵌上探针,实现对应用的监控。️若是容器化部署的应用,例如docker部署,需重启容器才可以嵌上探针。
如果使用非root用户权限安装,需将下面脚本写入应用的启动脚本,然后重启应用进行监控。
source ~/.tingyun/scripts/start.sh # 自动注入探针 export TINGYUN_APP_NAME=your_app_name # 设置应用名
查看部署状态及应用信息
使用root权限安装后,在新增UniAgent部署页面最下方,单击查看部署状态按钮,可跳转到UniAgents管理页面,看到上述刚部署的服务器,且在该主机下有进程信息。如果有数据,说明UniAgent部署成功。在左侧导航栏中单击基础设施>主机监控,可以看到新生成的主机信息。在左侧导航栏中单击应用与微服务>业务系统,进入业务系统拓扑页面,左侧操作面板区下方的应用区可以看到新生成的应用。
如果使用非root用户权限安装,在左侧导航栏中单击应用与微服务>业务系统,进入业务系统拓扑页面,左侧操作面板区下方的应用区可以看到新生成的应用。
在Windows平台部署
环境信息确认
⚠️ 确认操作系统版本: 不支持 Windows 7 SP1 / Windows Server 2008 R2 以下版本的操作系统, 并且 Windows 7 SP1 和 Windows Server 2008 R2 需安装补丁KB3033929 并重启机器后才能安装。
⚠️ 确认和所选Collector的网络是否通畅
⚠️ 有可能由于安全软件的拦截,导致部分组件安装失败,请确保在安装过程中临时禁用安全软件或放开安全软件的限制。
部署步骤
登录基调听云悟空平台,在左侧导航栏中选择 管理 -> 部署状态 -> UniAgents管理
在 UniAgents管理 页签的右上角单击新增,选择Windows类型的探针,并配置UniAgents参数。
选择UniAgent版本:私有化部署时,UniAgent安装包需要通过超级管理员admin登录系统,提前进行上传,才能在此处显示版本号。
⚠️ 多网卡:当安装探针的服务器对外有多个IP时,可指定使用哪个IP与Collector进行通信。默认不指定IP的情况下,探针会自动获取网卡列表内第一个可用的IP。
例1:当安装探针的服务器有2个网卡,一个外网IP,一个内网IP,如果不指定IP,可能会造成自动获取的IP是外网IP,通讯产生外网网络流量。此时需要选中多网卡选项,指定IP为内网IP。
例2:当安装探针的服务器运行在虚拟机内部,通过NAT映射和Collector通讯,探针自动获取的IP是虚拟机内部IP,Infra Collector 无法拉取这个IP的主机探针数据。此时,需要选中多网卡选项,指定IP为虚拟机外部IP,并且NAT映射虚拟机外部 19109 端口 到虚拟机内部 19109端口,Infra Collector才能正常访问到这个服务器上的主机探针数据。
业务系统:这个参数影响应用与微服务中的业务系统名称。
当一个应用上传监控数据时,如果是首次上传,创建应用的同时会自动创建一个名称为本参数的业务系统,并将这个应用归属到这个业务系统内。
但如果系统中已经存在了同名的应用,即使在此配置了不同的业务系统名称,后面安装探针的服务器上产生的应用仍会归属到与其他UniAgent上同名应用的业务系统内。
用户可在应用与微服务 > 业务系统中维护业务系统与应用的关联关系。
标签:这个参数影响基础设施中的安装探针服务器所属的权限分组。如果还未创建标签,可以依次单击基础设施 > 配置 > 标签管理,进入标签管理页面创建新标签。
全栈数据采集:开启后,UniAgent采集基础设施数据和Java等应用性能数据。如果禁用,UniAgent只会采集基础设施数据,不采集Java等应用性能数据
选择Agent Collector,若Collector列表中有数据,可直接勾选(支持多选,但部署环境要一致),支持根据部署环境或IP地址进行模糊查询;
若Collector列表中没有数据,或想新增Collector,可单击新增Collector按钮进行添加(Collector部署方式请参见Collector部署)。
单击蓝色的下载字样,下载UniAgent安装包(需勾选Collector才可以下载)。
在目标服务器上解压安装
⚠️ 一定要先解压成目录,不能双击压缩文件直接执行
解压完成后会,子目录内会出现
tingyun-monitor-xxx.exe
的可执行文件,右键使用管理员模式进行安装如果需要使用脚本静默安装,请将下载后的安装包复制到目标机器,使用管理员权限执行以下PowerShell脚本
Expand-Archive -Force -LiteralPath 安装包路径\tingyunagent-windows-版本.zip -DestinationPath 解压路径 解压路径\windows_oneagent\tingyun-monitor-版本.exe /S
其中的
/S
代表静默安装完成部署后,检查UniAgent的运行状态。
⚠️ 安装探针时,需要在设备中安装驱动,并在GAC中和COM组件中安装组件, 有可能由于安全软件的拦截,导致部分组件安装失败,请确保在安装过程中临时禁用安全软件或放开安全软件的限制。
请确保名称为
TingyunMonitor
的服务处于正在运行
的状态。请确保
设备管理器
中UniAgent
类型的设备正常。请确保状态文件
C:\Program Files\tingyun\monitor\conf\agent_enabled
为true
。
请立即重启业务应用进行验证。
⚠️ 由于Windows系统上有各种权限设置及杀毒软件限制,可能会导致探针部署后,依赖的组件并未真正生效,从而产生故障,请立即重启业务应用验证探针的有效性。
⚠️ 尤其是通过IIS部署的网站,IIS进程会在到达特定的请求数量后或到达特定时间点后自动回收进程并重启,从而加载未经验证的探针,如果此时产生故障,表面看的现象是网站运维未对IIS进行任何操作,但产生了严重的后果。为避免这种情况的出现,完成部署并确认状态无误后,应立即重启IIS应用进行验证。
查看部署状态及应用信息
在新增UniAgent部署页面最下方,单击查看部署状态按钮,可跳转到UniAgents管理页面,看到上述刚部署的服务器,且在该主机下有进程信息。如果有数据,说明UniAgent部署成功。
在左侧导航栏中单击应用与微服务>业务系统,进入业务系统拓扑页面,左侧操作面板区下方的应用区可以看到新生成的应用。
在左侧导航栏中单击基础设施>主机监控,可以看到新生成的主机信息。
Java 安全性配置 (目前仅WebSphere容器安装UniAgent时涉及安全性配置)
如果您使用的是Java 2 Security或WebSphere管理安全性, 需要授予tingyun目录下所有jar文件的执行权限。可以通过修改java.policy文件启用授予全局安全性,也可以修改某个Server的server.policy文件只授权单个Server的权限。
授权所有Server
修改java.policy文件,文件路径大概为:
WAS_HOME/java/jre/lib/security/java.policy
将如下内容添加到java.policy中,
file:
后面的路径必须指定到tingyun-agent-java.jar的目录,并确保最后存在-
。其中的collector.address为Agent Collector的IP地址,如果您部署了多个Agent Collector,permission java.net.SocketPermission "Collector_IP","connect,accept,resolve";
需要复制出多行,然后将所有的Agent Collector的IP地址悉数配置在collector.address。grant codeBase "file:/opt/tingyun-oneagent/agent/java_${探针版本}/-" { permission java.security.AllPermission; permission java.net.SocketPermission "collector.address","connect,accept,resolve"; permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "getClassLoader"; };
重启应用WebSphere。
授权单个Server
修改server.policy文件,文件路径大概为:
WAS_HOME/AppServer/profiles/APP_SERVER_NAME/properties/server.policy
将如下内容添加到java.policy中,
file:
后面的路径必须指定到tingyun-agent-java.jar的目录,并确保最后存在-
。其中的collector.address为Agent Collector的IP地址,如果您部署了多个Agent Collector,permission java.net.SocketPermission "Collector_IP","connect,accept,resolve";
需要复制出多行,然后将所有的Agent Collector的IP地址悉数配置在collector.address。grant codeBase "file:/opt/tingyun-oneagent/agent/java_${探针版本}/-" { permission java.security.AllPermission; permission java.net.SocketPermission "collector.address","connect,accept,resolve"; permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "getClassLoader"; };
重启应用WebSphere。
⚠️ 每个Server最终的安全性都取决于java.policy
和server.policy
的并集,切勿在多个文件配置同样的授权。
policy文件的配置格式及语法可参考Default Policy Implementation and Policy File Syntax。