zoukankan      html  css  js  c++  java
  • 部署点评Cat监控项目

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

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

    https://github.com/dianping/cat

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

    mvn clean install -DskipTests  (需要maven)

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

    mvn cat:install

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

    最后进入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文件夹,里面有:

    dataappdatascat和dataapplogscat 文件夹,没有的话就手动创建。

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

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

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

    修改完,启动tomcat(binstartup.bat)

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

    在浏览器里面输入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 argetcat-home-1.3.6-SNAPSHOTWEB-INFlib里面的所有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(dataappdatascatclient.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#

     
  • 相关阅读:
    Spark1.0.0 源码编译和部署包生成
    Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装
    CentOS 64位上编译 Hadoop 2.6.0
    Centos 6.5 X64 环境下编译 hadoop 2.6.0 --已验证
    ubuntu 环境下编译 hadoop 2.6.0的简单方法
    在Linux上编译Hadoop-2.4.0实践与总结
    linux安装openssl
    ubuntu 安装 GCC 和 G++ C++ 开发环境
    ubuntu如何安装 adobe flash player或adobe插件
    linux编译64bitHadoop (eg: ubuntu14.04 and hadoop 2.3.0)
  • 原文地址:https://www.cnblogs.com/softidea/p/6842399.html
Copyright © 2011-2022 走看看