cat-监控失效,并且没有写日志到cat日志文件

2,573 阅读3分钟

问题

首先,cat监控管理系统里没有任何东西。为什么?因为monitor/cat.log文件没有任何内容,所以在cat监控系统里看不到对应项目的监控。

在本地启动项目,monitor/cat.log文件也没有任何内容。

所以,原因是因为monitor/cat.log文件没有任何内容导致的。

具体是什么原因导致monitor/cat.log文件没有任何内容?

如何排查问题

看cat启动日志。

在哪里看?cat有独立的启动日志文件(在/data/applogs/cat目录)。但是,mac和linux,找不到cat独立的启动日志文件,因为因为默认路径是禁止写数据的,不能写数据到默认日志(cat启动日志,不是数据日志)路径,所以项目启动时候也可以看到报错:

java.io.FileNotFoundException: /data/applogs/cat/cat_20200611.log (No such file or directory)  //这条日志说明,不能写数据到/data/applogs/cat目录。

解决方法

修改默认路径 //具体是通过vm参数

-DCAT_HOME="/Users/gongzhihao/Documents/ys/cat"


再次启动项目

在cat独立的启动日志文件里可以看到cat启动日志

[06-11 18:46:52.144] [INFO] [DefaultModuleContext] Current working directory is /Users/gongzhihao/Downloads/apache-tomcat-7.0.96-ys/bin
[06-11 18:46:52.151] [INFO] [CatClientConfigManager] Can't find app.name from app.properties. //在配置文件app.properties里,找不到配置项app.name
[06-11 18:46:52.165] [INFO] [DefaultModuleContext] Thread group(cat) created.
[06-11 18:46:52.165] [INFO] [DefaultModuleContext] Starting thread(cat-MyMessageSender) ...
[06-11 18:46:57.198] [INFO] [DefaultMessageManager] Cat Message is throttled! Times:1

原因

之前配置apollo配置中心的时候,配置了app.id(apollo使用)这个配置项。但是,不小心把配置项app.name(cat使用)删除了。

解决方法

添加配置项即可。

在哪里添加?在配置文件app.properties里添加配置app.name导致的。

app.name = 项目名字

再次启动项目

cat-启动成功的日志

[06-11 19:01:22.525] [INFO] [DefaultModuleContext] Current working directory is /Users/gongzhihao/Downloads/apache-tomcat-7.0.96-ys/bin
[06-11 19:01:22.534] [INFO] [CatClientConfigManager] Find domain name XXX-manager-service from app.properties. //现在找到了配置项。这个配置项,其实就是每个项目在cat里的名字,cat根据项目名字来监控不同的项目。
[06-11 19:01:22.559] [INFO] [DefaultModuleContext] Thread group(cat) created.

[06-11 19:01:22.560] [INFO] [DefaultModuleContext] Starting thread(cat-MyMessageSender) ...
[06-11 19:01:22.577] [INFO] [DefaultModuleContext] Starting thread(cat-StatusUpdateTask) ...
[06-11 19:01:22.579] [INFO] [DefaultModuleContext] Starting thread(cat-2) ...

总结

monitor/cat.log文件没有任何内容,原因一般都是因为配置文件app.properties里没有配置app.name导致的。

app.name = 项目名字

如何知道cat是否启动成功?

1.看cat的启动日志文件

这个是最正确的,而且有异常,也可以看到。

2.项目本身的启动日志

cat被赖加载 //这个只是说明被加载了,但是可能没有写日志到cat数据日志文件。


总共有哪几种日志文件?

1.项目本身的启动日志 //比如,tomcat启动日志
这里可以看到cat被懒加载,说明cat客户端被加载了

2.cat的启动日志文件 //独立的日志文件
这里可以看到是否启动成功,和启动失败的异常信息

3.cat-数据日志文件 //独立的日志文件
cat客户端,从项目收集到的日志信息

参考

github.com/dianping/ca…