Cat(2):下载与安装

news2024/9/21 2:44:11

1 github源码下载

要安装CAT,首先需要从github上下载最新版本的源码。

官方给出的建议如下:

  • 注意cat的3.0代码分支更新都发布在master上,包括最新文档也都是这个分支
  • 注意文档请用最新master里面的代码文档作为标准,一些开源网站上面一些老版本的一些配置包括数据库等可能遇到不兼容情况,请以master代码为准,这份文档都是美团点评内部同学为这个版本统一整理汇总。内部同学已经核对,包括也验证过,如果遇到一些看不懂,或者模糊的地方,欢迎提交PR。

所以本次学习中将会使用master分支的3.0版本。CAT的官方github地址:

https://github.com/dianping/cat/tree/master

打开页面之后,进行如下操作:

也可以在git bash控制台使用命令进行下载:

git clone https://github.com/dianping/cat.git

2 模块介绍

  • cat-client: 客户端,上报监控数据
  • cat-consumer: 服务端,收集监控数据进行统计分析,构建丰富的统计报表
  • cat-alarm: 实时告警,提供报表指标的监控告警
  • cat-hadoop: 数据存储,logview 存储至 Hdfs
  • cat-home: 管理端,报表展示、配置管理等

3 服务端安装

CAT服务端的环境要求如下:

  • Linux 2.6以及之上(2.6内核才可以支持epoll),线上服务端部署请使用Linux环境,Mac以及
  • Windows环境可以作为开发环境,美团点评内部CentOS 6.5
  • Java 6,7,8,服务端推荐使用jdk7的版本,客户端jdk6、7、8都支持
  • Maven 3及以上
  • MySQL 5.6,5.7,更高版本MySQL都不建议使用,不清楚兼容性
  • J2EE容器建议使用tomcat,建议使用推荐版本7..或8.0.*
  • Hadoop环境可选,一般建议规模较小的公司直接使用磁盘模式,可以申请CAT服务端,500GB磁盘或者更大磁盘,这个磁盘挂载在/data/目录上

数据库安装

数据库的脚本文件 script/CatApplication.sql

mysql -uroot -Dcat < CatApplication.sql

说明:

数据库编码使用utf8mb4,否则可能造成中文乱码等问题

应用打包

  • 源码构建
  1. 在cat的源码目录,执行 mvn clean install -DskipTests
  2. 如果发现cat的war打包不通过,CAT所需要依赖jar都部署在 http://unidal.org/nexus/
  3. 可以配置这个公有云的仓库地址到本地Maven配置(一般为~/.m2/settings.xml),理论上不需要配置即可,可以参考cat的pom.xml配置:
<repositories>
    <repository>
        <id>central</id>
        <name>Maven2 Central Repository</name>
        <layout>default</layout>
        <url>http://repo1.maven.org/maven2</url>
    </repository>
    <repository>
        <id>unidal.releases</id>
        <url>http://unidal.org/nexus/content/repositories/releases/</url>
    </repository>
</repositories>

  • 官方下载

1. 如果自行打包仍然问题,请使用下面链接进行下载:

http://unidal.org/nexus/service/local/repositories/releases/content/com/dianping/cat/cat-home/3.0.0/cat-home-3.0.0.war

2. 官方的cat的master版本, 重命名为cat.war进行部署,注意此war是用jdk8,服务端请使用jdk8版本

3.1 linux源码安装

使用资料中提供的虚拟机打开,输入对应的账号和密码: root/itcast。

查看IP地址

使用命令查看当前虚拟机的IP地址:

ip addr

我当前虚拟机的IP地址为192.168.222.153。

程序对于/data/目录具体读写权限

  1. 要求/data/目录能进行读写操作,如果/data/目录不能写,建议使用linux的软链接链接到一个固定可写的目录。所有的客户端集成程序的机器以及CAT服务端机器都需要进行这个权限初始化。(可以通过公司运维工具统一处理)
  2. 此目录会存一些CAT必要的配置文件以及运行时候的数据存储目录。
  3. CAT支持CAT_HOME环境变量,可以通过JVM参数修改默认的路径。
mkdir /data
chmod -R 777 /data/

配置/data/appdatas/cat/client.xml ($CAT_HOME/client.xml)

mkdir -p /data/appdatas/cat
cd /data/appdatas/cat
vi client.xml

编写程序运行盘下的/data/appdatas/cat/client.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <!--下面的IP地址替换为主机的IP地址-->
        <server ip="192.168.222.153" port="2280" http-port="8080"/>
    </servers>
</config>

配置/data/appdatas/cat/datasources.xml($CAT_HOME/datasources.xml)

vi datasources.xml

<?xml version="1.0" encoding="utf-8"?>
<data-sources>
    <data-source id="cat">
        <maximum-pool-size>3</maximum-pool-size>
        <connection-timeout>1s</connection-timeout>
        <idle-timeout>10m</idle-timeout>
        <statement-cache-size>1000</statement-cache-size>
        <properties>
            <driver>com.mysql.jdbc.Driver</driver>
            <url><![CDATA[jdbc:mysql://192.168.222.132:3306/cat]]></url> <!-- 请替换为真实数据库URL及Port -->
            <user>root</user> <!-- 请替换为真实数据库用户名 -->
            <password>123456</password> <!-- 请替换为真实数据库密码 -->
            <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
        </properties>
    </data-source>
</data-sources>

安装mysql

虚拟机上已经使用docker安装了mysql,直接启动即可。

docker start mysql

使用sqlyog等工具测试连接,账号密码root/123456,端口号为3306。

创建数据库,导入sql脚本

导入cat\script\CatApplication.sql初始化脚本。

安装tomcat

虚拟机中已经安装了对应tomcat并且上传了cat的war包,目录位置:

/root/deploy/apache-tomcat-8.5.50/webapps

以下操作已完成:

修改中文乱码 tomcat conf 目录下 server.xml

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="utf-8" connectionTimeout="20000" redirectPort="8443" /> <!-- 增加 URIEncoding="utf-8" -->

启动tomcat:

cd /root/deploy/apache-tomcat-8.5.50/bin

./startup.sh

服务端配置

配置链接:http://192.168.222.153:8080/cat/s/config?op=serverConfigUpdate

输入账号密码admin/admin进行登录

以下所有IP地址为127.0.0.1内容,均修改为实际的IP地址!

输入以下内容:

<?xml version="1.0" encoding="utf-8"?>
<server-config>
   <server id="default">
      <properties>
         <property name="local-mode" value="false"/>
         <property name="job-machine" value="false"/>
         <property name="send-machine" value="false"/>
         <property name="alarm-machine" value="false"/>
         <property name="hdfs-enabled" value="false"/>
         <property name="remote-servers" value="192.168.222.153:8080"/>
      </properties>
      <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="2" local-logivew-storage-time="1" har-mode="true" upload-thread="5">
         <hdfs id="dump" max-size="128M" server-uri="hdfs://192.168.222.153/" base-dir="/user/cat/dump"/>
         <harfs id="dump" max-size="128M" server-uri="har://192.168.222.153/" base-dir="/user/cat/dump"/>
         <properties>
            <property name="hadoop.security.authentication" value="false"/>
            <property name="dfs.namenode.kerberos.principal" value="hadoop/dev80.hadoop@testserver.com"/>
            <property name="dfs.cat.kerberos.principal" value="cat@testserver.com"/>
            <property name="dfs.cat.keytab.file" value="/data/appdatas/cat/cat.keytab"/>
            <property name="java.security.krb5.realm" value="value1"/>
            <property name="java.security.krb5.kdc" value="value2"/>
         </properties>
      </storage>
      <consumer>
         <long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50">
            <domain name="cat" url-threshold="500" sql-threshold="500"/>
            <domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/>
         </long-config>
      </consumer>
   </server>
   <server id="192.168.222.153">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="true"/>
         <property name="alarm-machine" value="true"/>
      </properties>
   </server>
</server-config>

配置链接:http://192.168.222.153:8080/cat/s/config?op=routerConfigUpdate

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="192.168.222.153" backup-server-port="2280">
   <default-server id="192.168.222.153" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="默认" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="192.168.222.153"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="192.168.222.153" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>

完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/888413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8月14-15日上课内容 LVS负载均衡的群集

知识点&#xff1a; 本章结构: 企业群集概述 集群的含义&#xff1a; 1、群集的含义 ①、Cluster、集群、群集 ②、由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供一个访问入口&#xff08;域名与IP地址&#xff09;&#xff0c;相当于一台大型计算机。…

TypeScript相关面试题

typeScript 1.什么是TypeScript?是什么&#xff1f;特性&#xff1f;区别&#xff1f; 2.TypeScript数据类型&#xff1f;3.说说你对 TypeScript 中枚举类型的理解&#xff1f;应用场景&#xff1f;4.说说你对 TypeScript 中接口的理解&#xff1f;应用场景&#xff1f;使用方…

面试题. 分割链表

给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1&#xff1a; 输入&#xff1a;head [1,4,3,2,5,2], x 3 输出&a…

C#学习....

1.基础 //引用命名空间using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;//项目名或者命名空间 namespace _01_MY_First_Demo {//Program类class Program{//程序的主入口或者Main函数static void Main(S…

大模型是什么?大模型可以在哪些场景应用落地?

大模型是什么&#xff1f;大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域&#xff0c;大模型通常是指具有数百万到数十亿参数的神经网络模型。 大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域&#xff0c;大模型通常是…

实验三十、压控振荡电路的测量

一、题目 利用 Multisim 分析图1所示电路&#xff0c;测试各项指标参数。 图 1 压控振荡电路 图1\,\,压控振荡电路 图1压控振荡电路 二、仿真电路 仿真电路如图2(a)所示&#xff0c;其中 A 1 \textrm A_1 A1​ 采用通用型集成运放 LM324AJ&#xff0c; A 2 \textrm A_2 A2​…

Java进阶(2)——结合源码深入理解final关键字,修饰数据,方法,类

目录 引出深入理解final关键字final修饰数据基本数据类型对象的引用空白final final修饰方法final修饰类总结 引出 1.在java源码中较多使用final修饰数据&#xff0c;比如ArrayList的初始长度&#xff1b; 2.final关键字修饰对象的引用的特点理解&#xff1b; 3.了解一下空白fi…

地址在数据线和地址线上怎么传?

如下图所示&#xff0c;对于地址总线&#xff0c;其传输方向是单向的&#xff0c;是只能由CPU发出&#xff0c;即只能用于CPU选择主存地址或I/O端口地址&#xff0c;并不能从主存或IO端口发到CPU。 相关题目&#xff1a; 在系统总线的数据线上&#xff0c;不可能传输的是&am…

试卷去痕迹app分享,轻松擦除答案痕迹

在考试中&#xff0c;不小心写错答案是常有的事情。如果你是用铅笔写的&#xff0c;那么你可以直接用橡皮擦擦除。但如果你是用钢笔或圆珠笔写的&#xff0c;该怎么办呢&#xff1f;现在有一些APP可以帮助你擦除答案&#xff0c;以下是一些值得尝试的APP分享。 1.拍试卷 拍试卷…

堆叠聚合模型与单独的逻辑回归模型处理非平衡数据的比较

堆叠聚合模型与单独的逻辑回归模型处理非平衡数据的比较 堆叠聚合模型的设计是通过训练多个模型&#xff0c;然后使用原模型&#xff0c;将多个模型的输出结果整合在一起以实现更准确的预测。这叠聚合模型在多个临床场景上都表现出优于单一模型的效能[1]。是构建临床预测模型过…

java之juc二

JMM 请你谈谈对Volatile的理解 Volatile是jvm提供的轻量级的同步机制&#xff08;和synchronized差不多&#xff0c;但是没有synchronized那么强大&#xff09; 保证可见性不保证原子性禁止指令重排 什么是JMM JMM&#xff1a;java内存模型&#xff0c;不存在的东西&#…

UE_移动端测试使用

教程流程&#xff1a; 参照官方文档-android篇&#xff1a; https://docs.unrealengine.com/5.1/zh-CN/android-development-requirements-for-unreal-engine/https://docs.unrealengine.com/5.1/zh-CN/android-development-requirements-for-unreal-engine/ AS下载&#xf…

点云滤波介绍

一、介绍 1、Filtering a PointCloud using a PassThrough filter 2、Downsampling a PointCloud using a VoxelGrid filter 3、Removing sparse outliers using StatisticalOutlierRemoval 4、Projecting points using a parametric model 数据集&#xff1a;链接&#x…

mysql mysql 容器 忽略大小写配置

首先能够连接上mysql&#xff0c;然后输入下面这个命令查看mysql是否忽略大小写 show global variables like %lower_case%; lower_case_table_names 0&#xff1a;不忽略大小写 lower_case_table_names 1&#xff1a;忽略大小写 mysql安装分为两种&#xff08;根据自己的my…

移动端身份证识别技术的应用,告别手动录入证件信息

随着移动互联网的的发展&#xff0c;越来越多的公司都推出了自己的移动APP&#xff0c;这些APP多数都涉及到个人身份证信息的输入认证&#xff08;即实名认证&#xff09;&#xff0c;如果手动去输入身份证号码和姓名&#xff0c;速度非常慢&#xff0c;且用户体验非常差。为了…

MotionBERT:人体运动表征

MotionBERT&#xff1a;A Unified Perspective on Learning Human Motion Representations解析 摘要1. 简介2. Related Work2.1 学习人体运动表征2.2 3D人体姿态估计2.3 基于骨骼的动作识别2.3 人体网格恢复 3. Method3.1 Overview3.2 网络架构Spatial BlockTemporal BlockDual…

MybatisPlus整合p6spy组件SQL分析

目录 p6spy java为什么需要 如何使用 其他配置 p6spy p6spy是一个开源项目&#xff0c;通常使用它来跟踪数据库操作&#xff0c;查看程序运行过程中执行的sql语句。 p6spy将应用的数据源给劫持了&#xff0c;应用操作数据库其实在调用p6spy的数据源&#xff0c;p6spy劫持到…

Python项目中怎么实现异步任务和定时任务

这里写目录标题 一、异步任务:二、定时任务:三、Celery介绍特点:Celery由三部分构成:工作原理:安装Celery选择一个Broker:RabbitMQKafka和RabbitMQ的区别:定义一个任务定义第二个任务定义一个生产者(producer) 来 调用异步任务启动celery服务定义一个获取结果的类定时任…

Activiti6

一、Activiti介绍与搭建开发环境 二、运行官方例子 三、编写第一个Activiti程序 3.1 流程部署 代码 /*** 部署流程* 涉及到的表有&#xff1a; * 1.act_ge_bytearray 两条记录&#xff0c;一条xml数据&#xff0c;一条png图片信息 * 2.act_re_deployment 一条记录 * 3.a…

BBS项目day02、注册、登录(登录之随机验证码)、退出登录、密码加密加盐、首页(导航条、模态框,修改密码)

一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…