Open mgsky1 opened 2 years ago
感觉是日志根本没有生成,既然这里用了CAT home,还需要建立/data/appdatas和/data/applogs吗?
一样问题,不知道为啥
查看了/data/appdatas/cat/bucket/report 发现容器里面是有的
这个确实是有,但是我改了storage标签的base-dir,似乎没有起作用...
查看了/data/appdatas/cat/bucket/report 发现容器里面是有的
你尝试没 实机部署,我也没找到log日志
你尝试没 实机部署,我也没找到log日志
似乎搞不定...
你尝试没 实机部署,我也没找到log日志
稍微梳理了一下: 我本地部署的话,是有日志dump出来的
mgsky1@mgsky1deMacbookPro bucket % pwd
/Users/mgsky1/.cat/bucket
mgsky1@mgsky1deMacbookPro bucket % ls
dump report
mgsky1@mgsky1deMacbookPro bucket % cd dump
mgsky1@mgsky1deMacbookPro dump % ls
20220811
mgsky1@mgsky1deMacbookPro dump % ls 20220811/19
cat-172.25.130.18.dat cat-172.25.130.18.idx
tomcat会有对应的日志打印
[08-11 19:20:51.689] [INFO] [DefaultBlockDumperManager] Create block dumper 2022-08-11 19:00:00
[08-11 19:20:51.692] [INFO] [DefaultMessageDumperManager] create message dumper 2022-08-11 19:00:00
[08-11 19:20:51.730] [INFO] [Period] Starting 12 tasks in period [2022-08-11 19:00:00, 2022-08-11 19:59:59]
至于LogView为什么不会展示,是因为默认它会去请求一个远程连接,像这样
http://127.0.0.1:8080/cat/r/model/logview/cat/CURRENT?op=xml&messageId=cat-ac198212-461171-406&waterfall=false×tamp=1660215600000
这个链接你访问的话,是空的
关注一下RemoteLogViewService.java的invoke方法
InputStream in = Urls.forIO().connectTimeout(1000).readTimeout(5000).openStream(url.toExternalForm());
GZIPInputStream gzip = new GZIPInputStream(in);
String xml = Files.forIO().readFrom(gzip, "utf-8");
可以发现,这个链接返回的应该是一个xml,然后这个代码块被一个try...catch包裹,很显然,在这种情况下,肯定会有异常,源代码把异常吞掉了,所以我们是无感的。
@Override
public ModelResponse<String> invoke(ModelRequest request) {
ModelResponse<String> response = new ModelResponse<String>();
Transaction t = newTransaction("ModelService", getClass().getSimpleName());
try {
URL url = buildUrl(request);
t.addData(url.toString());
InputStream in = Urls.forIO().connectTimeout(1000).readTimeout(5000).openStream(url.toExternalForm());
GZIPInputStream gzip = new GZIPInputStream(in);
String xml = Files.forIO().readFrom(gzip, "utf-8");
int len = xml == null ? 0 : xml.length();
t.addData("length", len);
if (len > 0) {
String report = buildModel(xml);
response.setModel(report);
t.addData("hit", "true");
}
t.setStatus(Message.SUCCESS);
} catch (Exception e) {
t.setStatus(Message.SUCCESS);
} finally {
t.complete();
}
return response;
}
解决办法嘛,正在想...CAT用的是unidal,应该是老点评的框架了,官方给的Maven仓库也失效了(所以你会发现博客上很多人都是直接下war包,因为那个仓库404了啊!)...在想怎么解决
看看docker容器里的/data/applogs/cat/cat_2022XXX.log是否有报错 我的报错如下: [/tmp/snappy-1.1.4-libsnappyjava.so Error loading shared library ld-linux-x86-64.so.2: No such file or directory]
如果和我一样的话,在容器里执行: ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 我是这样logview就有数据了。
看看docker容器里的/data/applogs/cat/cat_2022XXX.log是否有报错 我的报错如下: [/tmp/snappy-1.1.4-libsnappyjava.so Error loading shared library ld-linux-x86-64.so.2: No such file or directory]
如果和我一样的话,在容器里执行: ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 我是这样logview就有数据了。
是用最新的版本吗?难道是我的环境是mac,出现了不兼容情况?
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
这个确实,我也可以了!!感谢!
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
这个确实,我也可以了!!感谢!
我代码版本4.0.1-RC 使用Dockerfile构建后,出现logview问题,同时时区也有问题。 请问你这个解决方案的代码版本是?
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
这个确实,我也可以了!!感谢!
我代码版本4.0.1-RC 使用Dockerfile构建后,出现logview问题,同时时区也有问题。 请问你这个解决方案的代码版本是?
没有用4.0,用得是3.x的版本
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
刚切换成3.x版本了,dump日志也生成了 bash-4.4# ls cat-springboot-demo-172.17.11.47.dat cat-springboot-demo-172.17.11.47.idx
我是配了集群版本,1个master节点和2个slave节点,刷新的时候debug了RemoteLogViewService的invoke,每次都是抛出EOFException
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
刚切换成3.x版本了,dump日志也生成了 bash-4.4# ls cat-springboot-demo-172.17.11.47.dat cat-springboot-demo-172.17.11.47.idx
我是配了集群版本,1个master节点和2个slave节点,刷新的时候debug了RemoteLogViewService的invoke,每次都是抛出EOFException 集群的我没有配置过...[尴尬]
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
刚切换成3.x版本了,dump日志也生成了 bash-4.4# ls cat-springboot-demo-172.17.11.47.dat cat-springboot-demo-172.17.11.47.idx 我是配了集群版本,1个master节点和2个slave节点,刷新的时候debug了RemoteLogViewService的invoke,每次都是抛出EOFException 集群的我没有配置过...[尴尬]
![Uploading image.png…]() dump出来的dat文件格式是cat-springboot-demo-172.17.11.47.dat cat-springboot-demo-172.17.11.47.idx 其中172.17.11.47为k8s集群内部的容器随机ip,但是RemoteLogViewService的invoke是按照我配置的host.ip去进行访问,我怀疑是不是这个ip不一致引起的读不到dat文件
使用最新的master分支进行docker部署,并没有开启HDFS,希望日志使用本地存储,服务端xml配置如下
这里的ip为容器ip
在项目中,使用SpringBoot进行Transaction打点
运行时控制台输出
这里的ip是宿主机ip,我用了一些手段使得它可以与容器联通
在我的CAT home下有如下文件
docker部署这边讲的也不是特别多,还希望能够帮助一下~