文档章节

部署点评Cat监控项目

江江的喵
 江江的喵
发布于 2015/08/28 09:33
字数 1460
阅读 80
收藏 1
点赞 1
评论 1

在项目中监控代码运行的状况,可以采用点评的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”监控功能中,会发现监控的名字和方法。

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));

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

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

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

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(\data\appdatas\cat\client.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这个文件,内容就是很简单的:

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的错误:

\

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

\

本文转载自:http://www.2cto.com/os/201507/422030.html

共有 人打赏支持
江江的喵
粉丝 2
博文 43
码字总数 4695
作品 0
浦东
程序员
加载中

评论(1)

喵小强
喵小强
13点赞!!
深度剖析开源分布式监控系统CAT的设计思路

自2014年开源以来,除了美团点评之外,CAT还在携程、陆金所、猎聘网、找钢网等多家互联网公司生产环境应用,项目的开源地址是http://github.com/dianping/cat。 背景介绍 CAT整个产品研发是从...

满小茂 ⋅ 2016/11/10 ⋅ 0

大众点评开源分布式监控平台 CAT 深度剖析

一、CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解。CAT不仅增强了CAL系统核心模型,还添加了更丰富的报表。自2...

王练 ⋅ 2016/10/31 ⋅ 11

大众点评运维架构详大揭秘!

今天分享专题大纲如图所示,从5个方面跟大家一起探讨: 1、点评运维团队的配置 目前我们运维分为4个组,相信跟大部分公司一样,运维团队分为:应用运维、系统运维、运维开发和监控运维,当然还...

让往事随风 ⋅ 2016/05/09 ⋅ 0

【干货】大众点评运维架构的图文详解

分享内容 今天分享专题大纲如图所示,从5个方面跟大家一起探讨: 1、点评运维团队的配置 目前我们运维分为4个组,相信跟大部分公司一样,运维团队分为:应用运维、系统运维、运维开发和监控运...

运维技术 ⋅ 2015/11/25 ⋅ 1

点评cat编译和基本使用

Cat介绍 Cat是一个汇总格式化日志的产品,他是大众点评的开源项目。 他的提供了自己的一套jar包,提供了记录日志的api,我们写代码的时候想对异常的处理整理记录以及想记录的sql执行时间、一...

xpbob ⋅ 2016/02/25 ⋅ 0

实时应用监控平台--CAT

CAT 由大众点评开发的,基于 Java 的实时应用监控平台,包括实时应用监控,业务监控。 CAT 支持的监控消息类型包括: Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库...

叶秀兰 ⋅ 2014/11/21 ⋅ 10

大众点评的软负载管理中间件--Camel

Camel 是大众点评开发的软负载一体解决方案,承担了F5硬负载层后的软负载工作。Camel已成为大众点评网络流量中必不可缺的一层。 关于Camel的部署及使用,请参考Camel in Action: 国内 国外 ...

leonindy ⋅ 2016/09/02 ⋅ 7

CAT —— 来自大众点评的实时应用监控平台

CAT 由大众点评开发的,基于 Java 的实时应用监控平台,包括实时应用监控,业务监控。

oschina ⋅ 2015/06/11 ⋅ 0

2016年2月5、6日:调研应用监控系统

这两天天气还不错,有风,空气好 (其实之前也一直写工作日志,只是多数和公司产品直接相关,就不便公开了) 这两天花了很多时间研究应用监控解决方案。这方面的例子有很多,Google 的 Dapp...

编走编想 ⋅ 2016/02/14 ⋅ 0

cat点评监控系统,有用过的进来帮下忙!!

请问一下cat点评监控系统可不可以改用oracle而不用mysql的?公司业务限制,了解的麻烦告知下,谢谢!!

envoyholy ⋅ 2016/09/05 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

看东方明珠新媒体如何基于阿里视频云,构建完整的视频OTT平台SaaS服务

摘要: 东方明珠新媒体如何基于阿里云,搭建了面向第三方的视频SaaS服务?6月8日,上海云栖大会视频专场中,东方明珠新媒体股份有限公司云计算中心的副总周少毅带来了《东方明珠视频云》为题...

阿里云云栖社区 ⋅ 26分钟前 ⋅ 0

C#调用WebService实例和开发 VS2013

简单的理解就是:webservice就是放在服务器上的函数,所有人都可以调用,然后返回信息。 Web Service的主要目标是跨平台的可互操作性。为了实现这一目标,Web Service 完全基于XML(可扩展标...

布衣大侠 ⋅ 29分钟前 ⋅ 0

基于FlumeNG+Kafka+ElasticSearch+Kibana的日志系统

环境准备 1.服务器概览 hostname ip 操作系统 说明 安装内容 node1.fek 192.168.2.161 centos 7 node1节点 nginx,jdk1.8, flumeNG, elasticsearch slave1 node2.fek 192.168.2.162 centos ......

张shieppp ⋅ 29分钟前 ⋅ 0

问答网站已成过去,深度问答社区才是当下

曾几何时,各类问答网站数不胜数,从百度知道这类综合型问答网站到各种垂直细分的问答网站,都有不少,但到了移动互联网时代,很明显的一大趋势是,网站整体的流量都在下滑,随着移动智能设备...

ThinkSNS账号 ⋅ 31分钟前 ⋅ 0

Android平台架构(ART)

Android平台架构(ART) 本文目的:准确表述Android平台架构 本文转载自[Android官网] 本文定位:学习笔记 学习过程记录,加深理解。也希望能给学习的同学一些灵感 本文更新时间:2018.06.22(...

lichuangnk ⋅ 34分钟前 ⋅ 0

看东方明珠新媒体如何基于阿里视频云,构建完整的视频OTT平台SaaS服务

摘要: 东方明珠新媒体如何基于阿里云,搭建了面向第三方的视频SaaS服务?6月8日,上海云栖大会视频专场中,东方明珠新媒体股份有限公司云计算中心的副总周少毅带来了《东方明珠视频云》为题...

猫耳m ⋅ 35分钟前 ⋅ 0

Java 动态代理 原理解析

概要 AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标...

轨迹_ ⋅ 37分钟前 ⋅ 0

js 获取当前时间

var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate...

夜醒者 ⋅ 43分钟前 ⋅ 0

windows删除或修改本地Git保存的账号密码

在win10或者win7都是一样的步骤: (一)进入控制面板(二)选择用户账户(三)选择管理你的凭据(四)选择Windows凭据(五)选择git保存的用户信息(六)选择编辑或者进...

果树啊 ⋅ 43分钟前 ⋅ 0

8个基本的Docker容器管理命令

前言: 在这篇文章中,我们将带你学习 8 个基本的 Docker 容器命令,它们操控着 Docker 容器的基本活动,例如 运行run、 列举list、 停止stop、 查看历史纪录logs、 删除delete 等等。文末福...

java高级架构牛人 ⋅ 45分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部