常见问题
Linux
1. 安装或卸载UniAgent时,对权限有哪些要求?
答:
- 用户需具有root权限,通过root权限进行安装和卸载。
- 如果系统内有SELinux模块,但安装时SELinux功能是被禁用的,在安装探针后如果启用SELinux功能,需重新安装UniAgent。
- 确保未被主机上安装的安全类软件阻拦。
2. 如何判断UniAgent是否安装成功?
答:
/opt目录下生成tingyun-oneagent目录。
安装过程输出日志如下:
[root@localhost opt]# sudo ./Tingyun-OneAgent.sh Unzip to /tmp/tingyun-oneagent-11037 ... Detected arch: X86_64 Detected glibc version: 2.17 Installation started, PID 11077. Copy files... Oneagent UUID: 030d3a76cf504f8afd836cf64f22b036 We detected that SELinux is disabled in your system so we're skipping module installation. Please note that if you enable SELinux later deep monitoring will stop working and you'll need to reinstall tingyun-oneagent. Setup preload settings... Symlink /lib/libinterceptor.so -> /opt/tingyun-oneagent/lib/libinterceptor.x86.so created Symlink /lib64/libinterceptor.so -> /opt/tingyun-oneagent/lib/libinterceptor.so created Verifying system compatibility... Compatibility is OK Refreshing dynamic linker run-time bindings using ldconfig Setup auto start service... Detected init system: systemd, version: systemd 219 Checking if agent is connected to the server... Connection status: success The installation has completed successfully #安装完成,开始启动OneAgent Starting oneagent... tingyun-oneagent service started Use the following commands to maintain the service. start : sudo systemctl start tingyun-oneagent stop : sudo systemctl stop tingyun-oneagent status : sudo systemctl status tingyun-oneagent uninstall: sudo /opt/tingyun-oneagent/uninstall.sh
3.支持在Docker容器里安装吗?
答:目前不需要直接将安装包拷贝到 Docker 里面进行安装。支持在宿主机上面安装,能自动监控Docker里面的应用。
4.有的进程未被UniAgent检测到的原因是什么?
答:可能是以下原因导致的:
- 监控技术不支持该进程,UniAgent的监控范围请参见支持列表。
- 确保服务器正在运行,进程已启动。
- UniAgent和基调听云悟空平台的交互有延迟,如果是这个原因,请稍后重试。
- 确保在报表部署管理>UniAgents页面,未禁用此进程。
5. 如何判断程序是否正常运行?
安装中提示以下信息,则运行正常。
Checking if agent is connected to the server... Connection status: success
安装完成后,执行
ps -ef|grep oneagent
命令,如果存在以下进程则运行正常。[root@localhost oneagent]# ps -ef|grep oneagent root 11739 1 0 12:04 ? 00:00:00 /bin/sh /opt/tingyun- oneagent/bin/watchdog start root 11756 11739 0 12:04 ? 00:00:10 /opt/tingyun-oneagent/bin/oneagent
登录基调听云悟空报表平台,在部署管理>UniAgents页面查看安装了UniAgent的主机信息如预期,则代表程序正常运行。
6.下载UniAgent时报401错误,如下:
[root@k8s-node2 opt]# wget -O Tingyun-OneAgent.sh 'http://10.128.5.245:8080/server-config/config/deploy/download/shellfile?version=1.1.0-beta2&token=fec88dd7-ad0b-49e0-a948-06969405d2fd'
--2020-11-03 16:57:48-- http://10.128.5.245:8080/server-config/config/deploy/download/shellfile?version=1.1.0-beta2&token=fec88dd7-ad0b-49e0-a948-06969405d2fd
Connecting to 10.128.5.245:8080... connected.
HTTP request sent, awaiting response... 401
Authorization failed.
原因:token过期,token的有效期为10分钟。
解决方法:刷新页面后重新获取下载链接。
7.Glibc版本低于2.12,提示安装失败
Unzip to /tmp/tingyun-oneagent-20277 …
Detected arch: X86_64
Detected glibc version: 2.11.3
Error: The glibc version: 2.11.3 detected on yout system isn’t supported.
Error: We need at least glibc 2.12
解决方法:
更换Glibc大于等于2.12版本的机器。
使用Java探针进行部署。
8.检测UniAgent和Agent Collector之间通信是否正常
以root权限运行以下命令:
/opt/tingyun-oneagent/bin/installtool --net-check
如果显示以下信息,表明通信正常。
9.与Agent Collector网络不通,报表上始终没有主机信息
提示以下信息时说明UniAgent与Agent Collector之间网络不通。
Setup auto start service...
Detected init system: systemd, version: systemd 219
Checking if agent is connected to the server...
Warning: Connection status: Error: http://10.128.5.245:7665/redirect?version=3.2.0&
license=GkfLmRm1PRkJGNjE => Connection refused
Warning: Please check the config in the /opt/tingyun-oneagent/conf/oneagent.yml or the
network status
解决方法:使UniAgent所在主机与Agent Collector主机之间网络通信恢复正常。
10.UniAgent与Agent Collector之间网络是正常的,但是报表上没有主机信息
解决方法:验证Agent Collector与DC之间的网络是正常的,并在报表的Collector列表中可以看到部署的Collector。
11. 出现问题后的修复措施
当UniAgent服务总是异常重启时,可使用如下命令查看服务日志。
sudo journalctl -f -u tingyun-oneagent
UniAgent发生异常时,可通过执行如下命令停止UniAgent服务。
systemctl stop tingyun-oneagent
12. Linux preload 预加载模块说明
Preload 技术是 Linux 系统自身支持的模块预加载技术,进程加载器在加载进程时,会在模块表中首先插入指定的预加载模块,然后再插入进程所依赖的其他模块,预加载模块在模块表的位置总是位于加载器之后,其它模块之前。
13.查看某进程是否加载了探针及探针日志的位置
查看进程是否加载探针:
cat /proc/1156/maps |grep tingyun
查看探针日志所在路径:
ls -l /proc/1156/fd |grep tingyun
Windows
1. 安装或卸载探针都需要什么权限?
需通过管理员权限进行安装和卸载。
安装或卸载过程中确保未被主机上安装的杀毒软件阻拦。
2. UniAgent的安装路径是什么?
安装路径为 C:\Program Files\tingyun\monitor
。
3.支持监控Docker容器内的应用吗?
目前不支持监控 Docker 容器里面的应用,仅支持监控直接部署在主机上的应用。
4.有的进程未被UniAgent检测到的原因是什么?
可能的原因:
- 监控技术不支持该进程,Windows UniAgent的监控范围目前仅支持:Java应用、.NET Web应用、.NET Core Web应用。
- 确保服务器正在运行,进程已启动。
- UniAgent和基调听云悟空平台的交互有延迟,如果是这个原因,请稍后重试。
- 确保在控制台部署管理>UniAgent页面未禁用此进程。
5. IIS网站对应的进程名是什么?
IIS网站的进程名为w3wp.exe,并且进程的用户名
等于网站的应用程序池
名称。
6. 如果一个进程没有被监控到,如何进行排查?
2.5.4.0及以上版本,可以先运行 C:\Program Files\tingyun\monitor\bin\manager.exe
,查看检测结果
查看系统服务运行是否正常。
杀毒软件可能阻拦了探针的系统服务,请确保名称为
TingyunMonitor
的服务处于正在运行
的状态。如果不存在名称为
TingyunMonitor
的服务,请重新安装探针,并在安装过程中确保未被杀毒软件阻拦。如果
TingyunMonitor
服务处于停止状态,请打开服务列表并启动此服务。查看
设备管理器
中UniAgent
类型的设备是否正常。不同操作系统
设备管理器
打开途径可能不同:计算机
->属性
->设备管理器
- 或
此电脑
->管理
->设备管理器
- 或
此电脑
->属性
->设备管理器
- 或
控制面板
->系统和安全
->设备管理器
- 或
控制面板
->硬件和声音
->设备管理器
杀毒软件可能阻拦了探针安装设备的操作,请确保
UniAgent
类型的设备运行正常。如果不存在类型为
UniAgent
的设备,请重新安装探针,并在安装过程中确保未被杀毒软件阻拦。如果存在类型为
UniAgent
的设备,需确认tingyunagent Device
图标没有黄色的叹号,且设备运行状态正常。如果设备图标带有黄色叹号,请确认操作系统版本,Windows 7 SP1、Windows Server 2008 R2 的系统需安装补丁KB3033929(https://www.microsoft.com/en-us/download/details.aspx?id=46148), 并重启操作系统才能生效。
查看驱动使用的注册表项是否由于权限原因没有写进去
打开注册表编辑器, 查看
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tingyunagent
正常情况下,应该包含以下项目:
尤其是下面几项:
| 名称 | 类型 | 数据 | | -------------- | -------------------------- | ----------------------------------------------- | | ExeMatchList | 可扩充的字符串类型 | tomcat7,tomcat8,tomcat9,java,w3wp,dotnet | | ImagePath | 可扩充的字符串类型 | \SystemRoot\System32\drivers\tingyunagent.sys | | LibInterceptor | 可扩充的字符串类型 | C:\Program Files\tingyun\monitor\lib\interceptor.dll |
查看通讯日志
C:\Program Files\tingyun\monitor\logs\oneagent\oneagent.log
日志内为和collector的通讯记录,查看是否因为网络或其他原因导致的通讯失败。
查看状态文件
C:\Program Files\tingyun\monitor\conf\agent_enabled
内容。当服务和collector通讯成功后,文件
C:\Program Files\tingyun\monitor\conf\agent_enabled
内容应该为true
。确认应用的进程已启动,如果是部署在IIS内的应用,还需要确认网站近期被访问过。
IIS内的网站启动后,如果没有访问,是不会启动进程的,并且如果近20分钟内没有访问,已启动的进程会被回收。
查看嵌码日志
C:\Program Files\tingyun\monitor\logs\oneagent\interceptor.log
日志内为被识别到的应用进程启动记录,包括进程pid,进程命令行等信息,日志类似如下:
2023-05-24 16:48:52.708 (2400) INFO Java Inject: C:\Java\jdk1.8.0_91\bin\java.exe -Xmx700m -jar "C:/lib/common.jar" 2023-05-24 17:04:21.350 (2104) INFO DotNET Inject: c:\windows\system32\inetsrv\w3wp.exe -ap ".NET v4.5" -v "v4.0" -l "webengine4.dll" -w "" -m 0 -t 20 -ta 0 2023-05-24 17:04:21.352 (2104) INFO netcore start Inject: c:\windows\system32\inetsrv\w3wp.exe -ap ".NET v4.5" -v "v4.0" -l "webengine4.dll" -w "" -m 0 -t 20 -ta 0
如果配置了进程黑名单,并且进程命令行匹配到了黑名单中任意一行,则此进程不会被嵌码,日志类似如下:
2023-05-24 16:48:52.706 (24000) INFO Blacklist Matched: Rule: AgentCollector Cmdline: C:\Java\jdk1.8.0_91\bin\java.exe -jar c:\AgentCollector.jar
如果上述几个步骤状态均正常,但进程重启后在
interceptor.log
内仍没有记录,可能是此进程不在Windows UniAgent的监控范围。默认仅监控java.exe(Java应用)、w3wp.exe(.NET Web应用)、dotnet.exe(.NetCore Web应用)如果需要监控上述列表之外的应用,需要修改
C:\Program Files\tingyun\monitor\conf\interceptor.conf
文件,并重启TingyunMonitor
服务例如:.NetCore应用编译为了netcore-demo.exe应用, 如果想监控netcore-demo.exe,修改
C:\Program Files\tingyun\monitor\conf\interceptor.conf
文件netcore.namelist=w3wp,dotnet,netcore-demo.exe
保存配置文件,通过“任务管理器”或“服务”重启
TingyunMonitor
服务然后重启netcore-demo.exe应用
7. 网站部署在IIS上,安装探针后出现偶尔访问比较慢的情况
通常.NET应用在进程重启阶段,由于需要嵌入探针并修改部分嵌码,导致响应明显比没有安装探针时慢。如果感觉到了网站反应慢,通常是由于IIS配置了进程回收机制,导致进程在工作期间回收重启,进而导致响应慢。
IIS的进程回收机制,通常有以下几种:
- 固定回收时间间隔:IIS默认的进程回收时间间隔是1740分钟,即29个小时。
- 按最大请求数回收:当一个进程处理到指定的进程数之后进行回收,默认为0,为不限制处理的请求数。
- 指定时间点回收:可以指定在固定的时刻进行回收,默认是没有的。
- 如果网站比较空闲,默认20分钟以内没有访问,进程也会被回收。
打开IIS管理器>应用程序池,选中想查看的进程池,点击高级设置>回收查看进程回收策略。
查看高级设置>进程模型里面的“闲置超时(分钟)”。
然后可以查看操作系统的事件日志,筛选“级别”等于 “信息”且“来源”等于 ".NET Runtime"的日志来确定应用都在哪个时间点重启了,是否和出现访问慢的时间点相符。
建议:
更改进程回收策略,设置为按照时间点进行回收,将进程重启时间点设置为业务低峰时期,例如晚上 2:00-4:00之间。
更改网站应用程序池的高级设置>进程模型里面的“闲置超时(分钟)”为200。