部署点评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”监控功能中,会发现监控的名字和方法。

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后,提交刷新实时页面,数据又回来了!

<?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>
时间: 2024-07-29 04:58:07

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

部署点评Cat监控项目

在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目. 首先,到项目的Git网页下载整个项目: https://github.com/dianping/cat 接着就是进入这个项目的目录,运行打包安装命令: mvn clean install -DskipTests  (需要maven) 执行完成后,运行 CAT 安装插件命令: mvn cat:install 会提示输入

springmvc+dubbo+mybatis 接入大众点评 CAT 监控平台

CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控.关于CAT的具体介绍可移步到CAT官网进行查阅. CAT平台的搭建可移步到「搭建大众点评CAT监控平台」. 1. 开发环境 Windows Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Dubbo 2.6 Spring 4.3 2. 客户端配置 客户端应用程序接入CAT需要在系统的特定路径中部署client.xml配置文件.Windows

搭建大众点评CAT监控平台

AT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控.关于CAT的具体介绍可移步到CAT官网进行查阅. 环境清单CentOS 7 Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Tomcat 7.0 安装 CAT下载CAT安装包: # wget -O cat-home-2.0.0.war http://unidal.org/nexus/service/local/repositories/rel

深入详解美团点评CAT跨语言服务监控(一) CAT简介与部署

前言: CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,除了与点评RPC组件融合的很好之外,他将会能与Spring.MyBatis.Dubbo 等框架以及Log4j 等结合,支持PHP.C++.Go等多语言应用,基本接入了美团点评上海侧所有核心应用.目前在中间件(MVC.RPC.数据库.缓存等)框架中得到广泛应用,为美团点评各业务线提供系统的性能指标.健康状况.监控告警等,在微服务监控领域也是非常有用的一套组件.支撑这美团每天450亿的消息,50TB的数据监控,应用于 700

大众点评实时监控系统CAT的那些坑

首先,感谢大众点评开源监控系统CAT.CAT是一款非常使用的功能建全的监控系统.作为一个知名的开源软件,真的是太差了. 想把CAT用起来,没有多年的Java经验是不行的.先吐槽一下,再写一篇如何用的文章. 从 https://github.com/dianping/cat 开始,就会碰到种种"坑". 第一坑,https://github.com/dianping/cat 上显示持续集成是失败的.(因为build的使用要用aliyun 的 maven 源才行.) 尝试用master编译成

基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题

背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视. 所以在我们前端开发完成后,会有一些列的web应用的上线验证,如自测.QA测试.code review 等,以确保 应用能在生产上没有事故. 但是事以愿违,很多时候我们都会接受的客户的一些线上问题,这些问题有时候可能你是自己开发的原因本身存 在的问题,这样的问题一般能够在测试环境重现,我们很快的能定位到问题关键位置.但是,很多时候有一些问题, 我们在测试中并未发现,可是在线上却有部分人出现了,问题确确实

20.20 告警系统主脚本;20.21 告警系统配置文件;20.22 告警系统监控项目

1. 要求:我们的机器角色多种多样,但是所有机器上都要部署同样的监控系统,也就说所有机器不管什么角色,整个程序框架都是一致的,不同的地方在于根据不同的角色,定制不同的配置文件. 2. 程序架构: bin下是:主程序 conf下是:配置文件 shares下是:各个监控脚本 mail下是:邮件引擎 log下是:日志 20.20 告警系统主脚本 约定:所有脚本都放在 /usr/local/bin目录下! shell项目-告警系统main.sh 1. 在/usr/local/bin/目录下,创建一个mo

cat监控平台环境搭建

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

Ansible-playbook批量添加zabbix监控项目、同步配置信息(二)

前言 在上一篇教程中我们已经实现了使用ansible-playbook批量在远程主机上部署zabbix客户端并正常运行,现在我们再次通过ansible-playbook给客户端主机批量增加zabbix监控项目配置(创建监控项目示例:自动发现远程主机监听的TCP端口.监控远程主机的TCP连接数状态). Ansible-playbook 配置 在原有的基础目录上创建一个configure角色以及ansible的各个模块任务目录列表,通过ansible-playbook调用入口文件zabbix_con