部署
前提条件
在部署探针前,需要先确保本地浏览器时间与服务器时区、时间都一致。若有多个服务器,则要保证本地浏览器、多个服务器的时区、时间都一致。否则,可能会影响数据的准确性,例如拓扑不正确等。
UniAgent方式部署
当服务器上存在多种语言的应用时,推荐使用UniAgent安装,安装步骤请参见UniAgent部署说明。
UniAgent安装包内集成了Java/PHP/.NET/.NET Core/Node.js/Python 多个语言的探针,安装后不需要手工修改应用的配置文件,所有嵌入探针的动作均由UniAgent自动完成,并且可以自动监控Docker容器内的应用。
UniAgent方式默认仅支持应用编译成dll的方式,如果应用编译成为exe或bin,需修改./conf/interceptor.conf文件
例如:.NetCore应用编译为了netcore-demo.exe应用, 如果想监控netcore-demo.exe,修改C:\Program Files\tingyun\monitor\conf\interceptor.conf文件
netcore.namelist=w3wp,dotnet,netcore-demo.exe
- Windows操作系统
修改./conf/interceptor.conf文件,保存配置文件,通过“任务管理器”或“服务”重启TingyunMonitor服务,最后重启netcore-demo.exe应用。
- Linux操作系统
修改./conf/interceptor.conf文件,保存配置文件,然后重启netcore-demo应用。
独立探针Windows部署
-
下载安装包 tingyun-agent-netcore-版本.exe。
-
双击安装包,配置license和collector地址,选择安装路径,进行安装。
-
更改.NET应用启动脚本,在应用启动脚本内增加call安装路径
\tingyun-enable.bat。例如,原.NET应用启动脚本如下:...
dotnet c:\interpub\myapp\myapp.dll假设探针安装在C:\Program Files(x86)\Networkbench.COM\NetCore Profiler更改后的dotnet应用启动脚本如下:
...
call "C:\Program Files(x86)\Networkbench.COM\NetCore Profiler\tingyun-enable.bat"
dotnet c:\interpub\myapp\myapp.dll -
重启应用。
-
如果应用采用部署到IIS上的模式,请同时安装.NET探针(tingyun-agent-dotnet-版本.exe),并启动.NET探针图形化界面NBUI.EXE,点击“禁用监控”然后再点击“启用监控”。
独立探针Linux部署
-
下载安装包tingyun-agent-netcore-版本.bin。
-
运行tingyun-agent-netcore-版本.bin,配置license和collector地址,选择安装路径,进行安装。
[user@localhost tmp]$ chmod +x tingyun-agent-netcore-版本.bin
[user@localhost tmp]$ sudo ./tingyun-agent-netcore-版本.bin
unzip to /usr/lib/tingyun-dotnet ...
Enter license key (请录入授权码):
Enter collector address (请录入collector地址):支持静默安装,运行安装包时,使用选项--license和--collector。
sudo ./tingyun-agent-netcore-版本.bin --license=123-456-789 --collector=192.168.1.8:7665 -
更改应用启动脚本,在应用启动脚本内增加tingyun-enable。
-
如果使用root权限安装探针
在应用启动脚本内增加
.tingyun-enable。例如,原.NET应用启动脚本如下:...
dotnet /opt/myapp/myapp.dll更改后的应用启动脚本如下:
...
.tingyun-enable
dotnet /opt/myapp/myapp.dll -
如果使用普通用户权限安装探针
在应用启动脚本内增加
./安装路径/bin/tingyun-enable。例如,原.NET应用启动脚本如下:...
dotnet /opt/myapp/myapp.dll假设探针安装在/opt/tingyun/下,更改后的dotnet应用启动脚本如下:
...
./opt/tingyun/bin/tingyun-enable
dotnet /opt/myapp/myapp.dll -
如果使用systemd维护应用
在systemd配置文件内将探针环境变量增加到environment配置后面。
例如,原.NET应用配置文件如下:
[Service] ExecStart=/usr/bin/dotnet /opt/myapp/myapp.dll Type=notify Restart=on-failure
更改后的.NET应用配置文件如下:
> **说明**:以下仅是举例说明,请酌情按照自己的实际情况修改。其中CORECLR_PROFILER_PATH指定的路径必须和探针路径一致。
```sh
[Service]
ExecStart=/usr/bin/dotnet /opt/myapp/myapp.dll
Type=notify
Restart=on-failure
Environment=CORECLR_ENABLE_PROFILING=1
Environment=CORECLR_PROFILER="{8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}"
Environment=CORECLR_PROFILER_PATH="/usr/lib/tingyun-dotnet/tingyun_profiler.so"通知systemd重新加载配置文件
systemctl daemon-reload-
如果使用supervisor维护应用
在supervisor配置文件内将探针环境变量增加到environment配置后面。
例如,原.NET应用配置文件如下:
[program:superset]
command=dotnet /opt/myapp/myapp.dll
autostart=true
startsecs=1
autorestart=true
environment=ASPNETCORE_ENVIRONMENT=PRODUCT更改后的.NET应用配置文件如下:
说明:以下仅是举例说明,请酌情按照自己的实际情况修改。其中CORECLR_PROFILER_PATH指定的路径必须和探针路径一致。
[program:superset]
command=dotnet /opt/myapp/myapp.dll
autostart=true
startsecs=1
autorestart=true
environment=ASPNETCORE_ENVIRONMENT=PRODUCT,
CORECLR_ENABLE_PROFILING=1,
CORECLR_PROFILER="{8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}",
CORECLR_PROFILER_PATH="/usr/lib/tingyun-dotnet/tingyun_profiler.so"通知supervisor重新加载配置文件
supervisorctl reread
supervisorctl update
-
-
重启应用。
独立探针Docker部署
-
下载安装包tingyun-agent-netcore-版本.bin到Dockerfile目录。
-
更改Dockerfile。
说明:脚本仅是举例说明,请酌情按照自己的实际情况修改。
FROM microsoft/dotnet:3.1.0-aspnetcore-runtime
# web application
RUN mkdir /app
WORKDIR /app
COPY publish /app
ENV ASPNETCORE_URLS http://*:5000
# install tingyun agent
COPY tingyun-agent-netcore-版本号.bin /tmp
RUN chmod +x /tmp/tingyun-agent-netcore-版本号.bin
RUN /tmp/tingyun-agent-netcore-版本号.bin --license=\${TINGYUN_LICENSE} --collector=\${TINGYUN_APM_COLLECTOR}
RUN rm -f /tmp/tingyun-agent-netcore-版本号.bin
# run web application with tingyun agent
RUN echo "#! /bin/bash" > /app/run.sh
RUN echo ". tingyun-enable" >> /app/run.sh
RUN echo "export TINGYUN_APP_NAME=demo" >> /app/run.sh
RUN echo "dotnet /app/demo.dll" >> /app/run.sh
RUN chmod +x /app/run.sh
ENTRYPOINT ["/app/run.sh"]或
FROM microsoft/dotnet:3.1.0-aspnetcore-runtime
# web application
RUN mkdir /app
WORKDIR /app
COPY publish /app
ENV ASPNETCORE_URLS http://*:5000
# install tingyun agent
COPY tingyun-agent-netcore-版本号.bin /tmp
RUN chmod +x /tmp/tingyun-agent-netcore-版本号.bin
RUN /tmp/tingyun-agent-netcore-版本号.bin --license=\${TINGYUN_LICENSE} --collector=\${TINGYUN_APM_COLLECTOR}
RUN rm -f /tmp/tingyun-agent-netcore-版本号.bin
# setup env for tingyun agent
ENV CORECLR_ENABLE_PROFILING 1
ENV CORECLR_PROFILER {8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}
ENV CORECLR_PROFILER_PATH /usr/lib/tingyun-dotnet/tingyun_profiler.so
# setup application name
ENV TINGYUN_APP_NAME=demo
# run web application with tingyun agent
ENTRYPOINT ["dotnet", "/app/demo.dll"] -
重新编译镜像。
docker build -t demo:1.0 . -
运行镜像。
docker run -e TINGYUN_LICENSE=授权码 -e TINGYUN_APM_COLLECTOR=collector地址:端口 demo:1.0