部署UniAgent

前提条件

  • 具有要部署UniAgent的服务器的管理员权限,并且防火墙的配置能保障UniAgent与Collector的通信。
  • 具有重启所有应用的权限,且重启应用时不能变更用户。
  • UniAgent所在目录预计所占最大空间为10GB。
  • 建议安装UniAgent的主机可用内存不小于500MB。
  • 在部署UniAgent之前,如果已经安装了Agent,需要先卸载已安装的Agent,再安装UniAgent。
  • UniAgent会监测所有的Java、PHP、和.NET Core进程,不想被监测的进程需要手动配置到黑名单里。
  • UniAgent对操作系统版本和Docker版本有要求,详情参照UniAgent支持列表
  • 不能和其他厂商的UniAgent同时安装。

在Linux平台部署

  1. 登录基调听云悟空平台。

  2. 在左侧导航栏中选择管理>部署状态

  3. UniAgents页面的右上角单击新增,新部署UniAgent。

  4. 选择Linux部署平台,下载安装脚本。

    1. 配置。

      • 选择CPU架构:目前支持x86/64和ARM64两种CPU架构。
      • 选择UniAgent版本:UniAgent安装包需要通过超级管理员admin登录系统,提前进行上传,才能在此处显示版本号。
      • 多网卡:当UniAgent所部署到的主机有多个网卡或有NAT IP映射时,用户可指定使用哪个IP与Collector进行通信。
      • 业务系统:在下拉菜单中选择UniAgent所属的业务系统。用户可在应用与微服务>业务系统中配置业务系统。
      • 标签:单击文本框,弹出标签选项,选择一个或多个标签对不同的监控类型进行区分。如果还未创建标签,可以依次单击基础设施>配置>标签管理,进入标签管理页面创建新标签。
      • 全栈数据采集:开启后,UniAgent对基础设施、服务端进行数据采集。如果禁用,UniAgent只会对基础设施进行数据采集。
    2. 选择Agent Collector,若Collector列表中有数据,可直接勾选(支持多选,但部署环境要一致),支持根据部署环境或IP地址进行模糊查询;若Collector列表中没有数据,或想新增Collector,可单击新增Collector按钮进行添加(Collector部署方式请参见Collector部署)。

    3. 选用以下方式之一下载UniAgent安装脚本(需勾选Collector才可以下载)。

      • 方法一:单击点击生成,系统会生成一条命令,单击右侧的copy按钮后在目标服务器上执行这条命令。

      • 方法二:网络不通时,可直接单击下图右侧下载按钮下载安装脚本,并将安装脚本传到目标服务器。

        image-20210825210331456

    4. 校验安装脚本。

      单击右侧的copy按钮后,在目标服务器上执行校验命令。校验脚本的目的是保证安装脚本下载完整,如果脚本未下载完整系统会给出提示信息。

  5. 执行安装脚本

    1. 推荐使用root用户安装UniAgent。

      请确保安装脚本在运行前具有可执行权限。在安装脚本所在目录,执行以下命令安装UniAgent。

       sudo sh ./tingyun-agent-版本号.sh
      

      配置应用名。也可以不配置应用名,不配置时,选用默认命名方式。应用命名规则详情参见应用命名规则

      说明:默认 Nginx、Python、Node.js 监控是禁用的,如需监控,请修改 /opt/tingyun-oneagent/conf/interceptor.conf,将nginx_enabled 或 python_enabled 或 nodejs_enabled 设置为 true。

      完成部署后,检查UniAgent的运行状态。

      • 请确保服务状态正常 sudo systemctl status tingyun-oneagent

      • 请确保文件/etc/ld.so.preload内容为/lib64/libinterceptor.so

    2. 如果没有root权限,使用非root用户安装 (2.5.2.0及以上版本)

      与root用户安装的区别如下:

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

      • 不支持开机自启动

      • 不支持主机监控

      • 仅支持监控使用安装探针用户启动的应用

      • 仅支持Java、.NetCore、 Python、 Node.js应用监控

        安装命令:

        sh ./tingyun-agent-版本号.sh --none-privilege=true
        

        卸载命令:

        source ~/.tingyun/scripts/uninstall.sh
        

        安装目录为~/.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。

  1. 重启需要监控的进程。

    1. 使用root权限安装后,在目标服务器重启需要监控的进程,即可自动嵌上探针,实现对应用的监控。若是容器化部署的应用,例如docker部署,需重启容器才可以嵌上探针。

    2. 如果使用非root用户权限安装,需将下面脚本写入应用的启动脚本,然后重启应用进行监控。

       source ~/.tingyun/scripts/start.sh        # 自动注入探针
       export TINGYUN_APP_NAME=your_app_name     # 设置应用名
      
  2. 查看部署状态及应用信息

    1. 使用root权限安装后,在新增UniAgent部署页面最下方,单击查看部署状态按钮,可跳转到UniAgents管理页面,看到上述刚部署的服务器,且在该主机下有进程信息。如果有数据,说明UniAgent部署成功。在左侧导航栏中单击基础设施>主机监控,可以看到新生成的主机信息。在左侧导航栏中单击应用与微服务>业务系统,进入业务系统拓扑页面,左侧操作面板区下方的应用区可以看到新生成的应用。

    2. 如果使用非root用户权限安装,在左侧导航栏中单击应用与微服务>业务系统,进入业务系统拓扑页面,左侧操作面板区下方的应用区可以看到新生成的应用。

在Windows平台部署

  1. 登录基调听云悟空平台。
  2. 在左侧导航栏中选择管理>部署状态
  3. UniAgents页面的右上角单击新增,新部署UniAgent。
  4. 选择Windows部署平台。

    1. 配置。

      • 选择UniAgent版本:私有化部署时,UniAgent安装包需要通过超级管理员admin登录系统,提前进行上传,才能在此处显示版本号。
      • 多网卡:当UniAgent所部署到的主机有多个网卡时,用户可指定使用哪个网卡与Collector进行通信。
      • 业务系统:在下拉菜单中选择UniAgent所属的业务系统。用户可在应用与微服务>业务系统中配置业务系统。
      • 标签:单击文本框,弹出标签选项,选择一个或多个标签对不同的监控类型进行区分。如果还未创建标签,可以依次单击基础设施>配置>标签管理,进入标签管理页面创建新标签。
    2. 选择Agent Collector,若Collector列表中有数据,可直接勾选(支持多选,但部署环境要一致),支持根据部署环境或IP地址进行模糊查询;若Collector列表中没有数据,或想新增Collector,可单击新增Collector按钮进行添加(Collector部署方式请参见Collector部署)。

    3. 单击蓝色的下载字样,下载UniAgent安装包(需勾选Collector才可以下载)。

    4. 将安装包放到目标主机,解压后,双击运行tingyun-monitor-VERSION.exe,部署UniAgent。

      如果需要使用脚本静默安装,请将下载后的安装包复制到目标机器,使用管理员权限执行以下PowerShell脚本

       Expand-Archive -Force -LiteralPath 安装包路径\tingyunagent-windows-版本.zip -DestinationPath 解压路径
      
       解压路径\windows_oneagent\tingyun-monitor-版本.exe /S
      

      安装探针时,需要在设备中安装驱动,并在GAC中和COM组件中安装组件

      有可能由于安全软件的拦截,导致部分组件安装失败,请确保在安装过程中临时禁用安全软件或放开安全软件的限制。

  5. 完成部署后,检查UniAgent的运行状态。

    • 请确保名称为TingyunMonitor的服务处于正在运行的状态。

    • 请确保设备管理器UniAgent类型的设备正常。

    • 请确保状态文件C:\Program Files\tingyun\monitor\conf\agent_enabledtrue

  6. 请立即重启业务应用进行验证

    由于Windows系统上有各种权限设置及杀毒软件限制,可能会导致探针部署后,依赖的组件并未真正生效,从而产生故障,请立即重启业务应用验证探针的有效性。

    尤其是通过IIS部署的网站,IIS进程会在到达特定的请求数量后或到达特定时间点后自动回收进程并重启,从而加载未经验证的探针,如果此时产生故障,表面看的现象是网站运维未对IIS进行任何操作,但产生了严重的后果。为避免这种情况的出现,完成部署并确认状态无误后,应立即重启IIS应用进行验证。

新增UniAgent部署页面最下方,单击查看部署状态按钮,可跳转到UniAgents管理页面,看到上述刚部署的服务器,且在该主机下有进程信息。如果有数据,说明UniAgent部署成功。

在左侧导航栏中单击应用与微服务>业务系统,进入业务系统拓扑页面,左侧操作面板区下方的应用区可以看到新生成的应用。

在左侧导航栏中单击基础设施>主机监控,可以看到新生成的主机信息。

安全性(Java 2 Security)配置

说明:目前仅WebSphere容器安装UniAgent时涉及安全性配置。

如果您使用的是Java 2 Security或WebSphere管理安全性, 需要授予tingyun目录下所有jar文件的执行权限。可以通过修改java.policy文件启用授予全局安全性,也可以修改某个Server的server.policy文件只授权单个Server的权限。

授权所有Server

  1. 修改java.policy文件,文件路径大概为:

    WAS_HOME/java/jre/lib/security/java.policy
    
  2. 将如下内容添加到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";
    };
    
  3. 重启应用WebSphere。

授权单个Server

  1. 修改server.policy文件,文件路径大概为:

    WAS_HOME/AppServer/profiles/APP_SERVER_NAME/properties/server.policy
    
  2. 将如下内容添加到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";
    };
    
  3. 重启应用WebSphere。

说明:每个Server最终的安全性都取决于java.policyserver.policy的并集,切勿在多个文件配置同样的授权。

policy文件的配置格式及语法可参考Default Policy Implementation and Policy File Syntax

© 2007-2023 北京基调网络股份有限公司 all right reserved,powered by Gitbook本文档更新于: 2024-04-19 15:02

results matching ""

    No results matching ""