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数据库的连接信息,账户和password。可能会提示缺少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”监控功能中,会发现监控的名字和方法。


    private void sendSQLMsg(String name, String domain, String method, String serverIp) throws InterruptedException {
    		Transaction t = Cat.newTransaction("SQL", "sql.method");
    
    		Cat.logEvent("SQL.Method", method);
    		Cat.logEvent("SQL.Database", String.format(JDBC_CONNECTION, serverIp, name));
    
    		MessageTree tree = Cat.getManager().getThreadLocalMessageTree();
    
    		((DefaultMessageTree) tree).setDomain(domain);
    		Thread.sleep(500 + new Random().nextInt(1000));
    		int nextInt = new Random().nextInt(3);
    
    		if (nextInt % 2 == 0) {
    			t.setStatus(Transaction.SUCCESS);
    		} else {
    			t.setStatus(String.valueOf(nextInt));
    		}
    
    		t.complete();
    	}


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


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


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

    新建一个project。在project里面增加cat-home argetcat-home-1.3.6-SNAPSHOTWEB-INFlib里面的所有jar包,临时不知道哪些实用,哪些没用,所以所有增加project中是没错的了。

    在project里面编写一个类,内容例如以下:

    public class MyTest {
        public static void main(String[] args) {
            Transaction t = Cat.newTransaction("TEST", "test.method");
    
            Cat.logEvent("Method_test", "good");
            Cat.logEvent("Method_event", "bad");
    
            int nextInt = new Random().nextInt(3);
    
            if (nextInt % 2 == 0) {
                t.setStatus(Transaction.SUCCESS);
            } else {
                t.setStatus(String.valueOf(nextInt));
            }
    
            t.complete();
        }
    }

    执行。发现非常快就结束了!输入提示看日志。

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

    [07-20 22:05:34.780] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-0) ...
    [07-20 22:10:08.922] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-1) ...
    [07-20 22:20:00.677] [INFO] [DefaultModuleContext] Current working directory is C:hadoop_java
    [07-20 22:20:00.699] [INFO] [DefaultClientConfigManager] Global config file(dataappdatascatclient.xml) found.
    [07-20 22:20:00.700] [INFO] [DefaultClientConfigManager] Can't find app.properties in /META-INF/app.properties
    [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这个文件,内容就是非常easy的:

    app.name=cat

    这个名称和浏览器里面的domain相应。假设要改成其它名称,那么这个domain的值也要改成相应的名称。



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


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

    查看日志,一切正常:

    [07-20 22:25:58.541] [INFO] [ChannelManager] Connected to CAT server at /127.0.0.1:2280
    [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
    [07-20 22:25:58.545] [INFO] [DefaultModuleContext] Thread group(cat) created.
    [07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender-ChannelManager) ...
    [07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender) ...
    [07-20 22:25:58.547] [INFO] [DefaultModuleContext] Starting thread(cat-merge-atomic-task) ...
    [07-20 22:25:58.557] [INFO] [DefaultModuleContext] Starting thread(cat-StatusUpdateTask) ...

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


    和两个event事件了!

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

     

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

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

    这须要我们点击右上角的登陆,用账号和password都是catadmin来登陆。在“配置”的最后一项“全局告警配置”的“client路由”里面改为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>







  • 相关阅读:
    CSS盒子模型
    getContextPath、getServletPath、getRequestURI、request.getRealPath的区别
    MYSQL中的CASE WHEN END AS
    单点登录的精华总结
    git&github
    June 21st 2017 Week 25th Wednesday
    June 20th 2017 Week 25th Tuesday
    June 19th 2017 Week 25th Monday
    June 18th 2017 Week 25th Sunday
    June 17th 2017 Week 24th Saturday
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6756268.html
Copyright © 2011-2022 走看看