部署点评Cat监控项目

在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目。

首先,到项目的Git网页下载整个项目:

https://github.com/dianping/cat

接着就是进入这个项目的目录,运行打包安装命令:

mvn clean install -DskipTests  (需要maven)

执行完成后,运行 CAT 安装插件命令:

mvn cat:install

会提示输入MySQL数据库的连接信息,账户和密码。可能会提示缺少\data\appdatas\cat 目录,手动添加就可以了。

最后进入cat-home目录:cd cat-home,运行mvn jetty:run

没有任何错误的提示就可以启动了。在浏览器输入地址:

localhost:2281会进入界面,这个界面有说明文档还要演示效果等,没什么用,关掉。

 

进入项目,拷贝/cat-home/target/cat-alpha-1.3.6-SNAPSHOT.war这个文件到tomcat的webapps里面,修改名字成:cat.war。在tomcat所在的盘根目录需要有data文件夹,里面有:

\data\appdatas\cat和\data\applogs\cat 文件夹,没有的话就手动创建。

\data\appdatas\cat文件夹里面的内容在mvn cat:install这个步骤会自动创建出来client.xml、datasources.xml和server.xml三个文件,datasources.xml是数据库连接信息,不用改变的话就无需修改,client.xml和server.xml两个文件里,有多少台服务器,就要写多少台服务器的地址上去。由于我是在本机上做实验,所以就只有一台机器的地址。

client.xml文件只需改红色框内的内容就可以了:

server.xml文件改红色框的内容,有多台机器,就像红框下面注释的那样改就可以了。

修改完,启动tomcat(bin\startup.bat)

 

没有任何问题,我们可以根据提示在\data\applogs\cat目录中查看到日志。

 

 

在浏览器里面输入http://localhost:8080/cat/r,可以看到CAT下面部署后的界面。左上角的“实时”功能才是我们最需要的!

 

 

点击后发现都是demo的实例,可以查看相应的代码来学习怎么使用。

 

 

在项目的home模块里面的test部分,有个com.dianping.cat.demo.TestStorageMessage类,里

面的代码在我们的界面都可以找到对应的效果。

如sendSQLMsg这个方法,在界面的“Event”监控功能中,会发现监控的名字和方法。

 

[java] view plain copy

 

  1. private void sendSQLMsg(String name, String domain, String method, String serverIp) throws InterruptedException {  
  2.         Transaction t = Cat.newTransaction("SQL", "sql.method");  
  3.   
  4.         Cat.logEvent("SQL.Method", method);  
  5.         Cat.logEvent("SQL.Database", String.format(JDBC_CONNECTION, serverIp, name));  
  6.   
  7.         MessageTree tree = Cat.getManager().getThreadLocalMessageTree();  
  8.   
  9.         ((DefaultMessageTree) tree).setDomain(domain);  
  10.         Thread.sleep(500 + new Random().nextInt(1000));  
  11.         int nextInt = new Random().nextInt(3);  
  12.   
  13.         if (nextInt % 2 == 0) {  
  14.             t.setStatus(Transaction.SUCCESS);  
  15.         } else {  
  16.             t.setStatus(String.valueOf(nextInt));  
  17.         }  
  18.   
  19.         t.complete();  
  20.     }  

 

对应代码里面的这两行名称:

 

[java] view plain copy

 

  1. Cat.logEvent("SQL.Method", method);  
  2. Cat.logEvent("SQL.Database", String.format(JDBC_CONNECTION, serverIp, name));  

 

因此,我们可根据这个很容易地学习怎么使用。因为Cat项目已经启动了,整个机器都在监控的范围内,编写的项目有指定受cat项目监控便可实现实时监控,分析我们代码的执行效果了。

新建一个工程,在工程里面加入cat-home\target\cat-home-1.3.6-SNAPSHOT\WEB-INF\lib里面的所有jar包,暂时不知道哪些有用,哪些没用,所以全部加入工程中是没错的了。

在工程里面编写一个类,内容如下:

[java] view plain copy

 

  1. public class MyTest {  
  2.     public static void main(String[] args) {  
  3.         Transaction t = Cat.newTransaction("TEST", "test.method");  
  4.   
  5.         Cat.logEvent("Method_test", "good");  
  6.         Cat.logEvent("Method_event", "bad");  
  7.   
  8.         int nextInt = new Random().nextInt(3);  
  9.   
  10.         if (nextInt % 2 == 0) {  
  11.             t.setStatus(Transaction.SUCCESS);  
  12.         } else {  
  13.             t.setStatus(String.valueOf(nextInt));  
  14.         }  
  15.   
  16.         t.complete();  
  17.     }  
  18. }  

 

运行,发现很快就结束了!输入提示看日志。

打开日志,发现有如下提示:

[plain] view plain copy

 

  1. [07-20 22:05:34.780] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-0) ...  
  2. [07-20 22:10:08.922] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-1) ...  
  3. [07-20 22:20:00.677] [INFO] [DefaultModuleContext] Current working directory is C:\hadoop_java  
  4. [07-20 22:20:00.699] [INFO] [DefaultClientConfigManager] Global config file(\data\appdatas\cat\client.xml) found.  
  5. [07-20 22:20:00.700] [INFO] [DefaultClientConfigManager] Can't find app.properties in /META-INF/app.properties  
  6. [07-20 22:20:00.711] [WARN] [DefaultTransportManager] CAT was DISABLED due to not initialized yet!  

 

提示很明白,就是没有app.properties这个文件,在项目的说明文档里面也有说到,这个文档主要是指定监控的Cat项目的。因为我们的监控项目改为了cat.war来启动了,所以就在源代码的目录下添加META-INF文件夹,里面添加app.properties这个文件,内容就是很简单的:

app.name=cat

这个名称和浏览器里面的domain对应,如果要改成其他名称,那么这个domain的值也要改成对应的名称。

 

注意:META-INF文件夹必须改为源文件的指定格式的。

 

再次运行代码,有如下效果,程序不会自动关闭了,说明在监控中……

查看日志,一切正常:

[plain] view plain copy

 

  1. [07-20 22:25:58.541] [INFO] [ChannelManager] Connected to CAT server at /127.0.0.1:2280  
  2. [07-20 22:25:58.543] [INFO] [ChannelManager] success when init CAT server, new active holderactive future :/127.0.0.1:2280 index:0 ip:127.0.0.1 server config:null  
  3. [07-20 22:25:58.545] [INFO] [DefaultModuleContext] Thread group(cat) created.  
  4. [07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender-ChannelManager) ...  
  5. [07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender) ...  
  6. [07-20 22:25:58.547] [INFO] [DefaultModuleContext] Starting thread(cat-merge-atomic-task) ...  
  7. [07-20 22:25:58.557] [INFO] [DefaultModuleContext] Starting thread(cat-StatusUpdateTask) ...  

 

刷新cat页面,发现新建了一个Transaction

 

和两个event事件了!

到此,应用cat实时监控系统部署成功,剩下的事情就是慢慢研究代码怎么更好地使用Cat了!

 

 ==========================================================

有时会发现实时监控页面什么数据都没有显示了,查看日志记录,会发现一大堆找不到10.0.0.1:2280的错误:

这需要我们点击右上角的登陆,用账号和密码都是catadmin来登陆,在“配置”的最后一项“全局告警配置”的“客户端路由”里面改为127.0.0.1:2280后,提交刷新实时页面,数据又回来了!

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="127.0.0.1" backup-server-port="2280">
   <default-server id="127.0.0.1" port="2280" enable="true" weight="1.0"/>
</router-config>  

http://blog.csdn.net/u011439289/article/details/46988993#

 

 

 

 

 

时间: 2024-12-10 18:48:58

部署点评Cat监控项目的相关文章

cat监控平台环境搭建 专题

项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提示: git git@github.com:dianping/cat.git mvn-repo 当你直接把这条命令贴到terminal里执行时,会提示命令无效,正确的姿势如下: 1.先安装jdk 1.7或Jdk1.8[现在已经支持jdk1.8了] 这点很重要,cat项目的开发时间比较早,当时估计jd

java-jboss下部署多个struts2项目?

问题描述 jboss下部署多个struts2项目? 最近需要在一个jboss下部署两个struts2写的项目,我将两个项目均放在deploy目录中,但启动报错说ObjectFactory with the name xwork has already been loaded by bean,估计jar包冲突,如果这样的话,该怎么在一个jboss下启动这两个项目,还望CSDN大神指点. 解决方案 http://my.oschina.net/xiaohong/blog/28151

关于maven远程部署多模块web项目到tomcat失败问题

问题描述 关于maven远程部署多模块web项目到tomcat失败问题 主模块: <?xml version=""1.0"" encoding=""UTF-8""?><project xmlns=""http://maven.apache.org/POM/4.0.0"" xmlns:xsi=""http://www.w3.org/2001/XMLSc

如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目

原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio 2012 Visual Studio Express 2012 for Web 与 的Visual Studio 2010 Visual Studio Web发布更新 与 的Visual Web Developer 2010 Express Visual Studio Web发布更新 您可以部署到任

tomcat5-类加载机制 Tomcat5 shared目录下加载的Spring如何管理Tomcat中部署的多个项目

问题描述 类加载机制 Tomcat5 shared目录下加载的Spring如何管理Tomcat中部署的多个项目 20C 我们知道Tomcat5.x类加载体系结构如下:不同的类加载器加载不同路径上的类或jar包. Bootstrap | System | Common / Catalina Shared / Webapp1 Webapp2有这样一个场景,在Tomcat5.x下部署了10个项目,每个项目都是用Spring来组织和管理的,可以吧Spring放到Tomcat的Common或Shared目

我在服务器上部署了一个监控,结果服务器都关了,监控还是显示正常,测试ping服务器还是通的

问题描述 我在服务器上部署了一个监控,结果服务器都关了,监控还是显示正常,测试ping服务器还是通的 我在服务器上部署了一个监控,结果服务器都关了,监控还是显示正常,测试ping服务器还是通的 解决方案 ip有重复吧,实际ping的是另外一台机器. 是不是有相同设置的备用机? 解决方案二: 是不是服务器外有防火墙,ping的是防火墙的转换地址呢 解决方案三: 你ping的是网关ip么>你的监控是实时的吗 解决方案四: 最好的监控是否alive还是自己在应用层发送和接受心跳来判断 解决方案五: 我

javaee-java项目的部署在linux上,项目的有些功能会失效

问题描述 java项目的部署在linux上,项目的有些功能会失效 java项目部署到linux服务器上, 在本地(windows7)下 ,正常运行 可是部署到linux上 项目中有些功能会失效 比如 我做的定时器定时备份数据就没执行 失效的功能前几天还可以,就今天突然不行了 ,,,我想是不是linux被修改了一些配置导致的吧 这是为什么呢????? 来个大神指教指教哇 小弟多谢!!!! 解决方案 查查环境,jdk的版本是否匹配,如果你的项目编译的jdk版本高于linux的版本,那当然是有问题的.

ssh-求大神帮我看看已经部署好的WEB项目为什么不能访问?

问题描述 求大神帮我看看已经部署好的WEB项目为什么不能访问? 今天想尝试着开发一个SSH框架的网页,我照着教程把SSH的配置都弄好了之后,我把我自己设计好的首页导了进去 .我也按照教程配置好tomcat,并将这个项目已经成功部署到了我所选择的tomcat下的webapps中.但是我启动tomcat 后却无法访问这个首页页面.我检查了N次,确定URL没有打错,8080也没有被占用,web.xml里面是设置好欢迎页面的,tomcat启动是正常的,能显示那个猫,并且我试着访问webapps里面本来就

如何把现有javaSE视频监控项目中获取视频服务器视频数据的方法植入Web项目中?

问题描述 附件是一个NetBeans javaSE Swing 视频监控项目的源码,实现的功能是可以从软件客户端获取Launch LC8300视频服务器监控视频流.现在我想做一个Web应用程序,要能实现和它一样的功能(填写IP地址获取视频服务器中的监控视频流并在浏览器中显示),请问具体应该如何做呢? 问题补充:最好能把src中ClientDemo.java帮我分析下.谢谢不吝赐教. 解决方案 本地没有安装NetBeans,没仔细看楼主的代码.感觉要实现相同的功能,是和C/S这和应用程序实现一样,