Cat 설치 및 사용(Meituan 오픈 소스 모니터링)

1. 고양이 소스코드 다운로드 및 패키징

1. 미러 웹사이트에서 cat의 소스 코드와 cat에 필요한 종속 패키지를 다운로드합니다.

다운로드 주소: https://hub.fastgit.org/dianping/cat

고양이 소스 코드: 마스터 분기 코드 다운로드;

cat 종속성 패키지: mvn-repo 분기 코드 다운로드;

 

내 gitee 코드 저장소에서 cat 소스 코드 및 종속성 패키지를 다운로드할 수도 있습니다.

고양이 소스 코드:

고양이 종속성 패키지:

 

2. Cat the war 패키지를 현지에서 구매하세요.

1) 먼저 다운로드한 cat 소스 프로젝트의 이름을 cat으로 변경합니다.

 

2) 설명서의 설명을 읽고 cat 프로젝트의 루트 디렉터리에 있는 README.md 파일을 찾습니다.

README.md 설명:

  • 1. 루트 디렉토리의 cat-client 모듈은 더 이상 유지되지 않으며 다음 주요 버전 업데이트에서 제거됩니다. 새 Java 클라이언트 참조: lib/java; --Operation: cat 루트 디렉터리의 pom.xml에서 cat-client 모듈 삭제(delete <module>cat-client</module>)
  • 2. cat-home 모듈을 사용하여 관리단, 서버단 및 알람 서비스를 모두 배포할 수 있습니다.
  • 3. 기타 모듈:
    • - 통합: cat 및 일부 타사 도구에 의해 통합된 콘텐츠(이 부분의 일부는 커뮤니티에서 제공하고 일부는 공식적으로 제공됨) -
      lib: Java, C/C++, Python, Node.js를 포함한 CAT 클라이언트 , Go
      - 스크립트: CAT 데이터베이스 스크립트

 

3) cat 프로젝트에서 컴파일 명령 실행 

컴파일 명령:

mvn clean compile

 

报错1:아티팩트 org.unidal.framework:foundation-service:jar:2.5.0을 찾을 수 없습니다.

[ERROR] Failed to execute goal on project cat-core: Could not resolve dependencies for project com.dianping.cat:cat-core:jar:3.0.0: The following artifacts could not be resolved: org.unidal.framework:foundation-ser
vice:jar:2.5.0, org.unidal.framework:web-framework:jar:2.4.0, org.unidal.framework:dal-jdbc:jar:2.4.0: Could not find artifact org.unidal.framework:foundation-service:jar:2.5.0 in alimaven (http://maven.aliyun.com/
nexus/content/groups/public) -> [Help 1]

솔루션: 다운로드한 mvn-repo 브랜치의 압축을 풀고 로컬 .m2 웨어하우스에 넣습니다.

로컬 mvn-repo 분기의 압축을 풀고 org 디렉토리를 추출합니다.

org 디렉토리를 로컬 .m2 웨어하우스에 복사합니다.

 

그런 다음 컴파일 명령을 실행합니다.

报错2:org.codehaus.plexus:plexus-container-default:jar:3.1.0 찾기 실패

[ERROR] Failed to execute goal org.unidal.maven.plugins:codegen-maven-plugin:2.5.8:dal-model (generate data model) on project cat-core: Execution generate data model of goal org.unidal.maven.plugins:codegen-maven-p
lugin:2.5.8:dal-model failed: Plugin org.unidal.maven.plugins:codegen-maven-plugin:2.5.8 or one of its dependencies could not be resolved: Failure to find org.codehaus.plexus:plexus-container-default:jar:3.1.0 in h
ttp://maven.aliyun.com/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of alimaven has elapsed or updates are forced -> [Help 1]

솔루션: .m2 웨어하우스에서 pom 파일 codegen-maven-plugin-2.5.8.pom의 org.unidal.maven.plugins:codegen-maven-plugin:2.5.8 버전을 찾아 아이디어로 열고 상위 참조의 기본값 및 점프 default-2.5.8.pom 파일로 이동하여 파일의 Foundation-service.version을 버전 3.1.0에서 버전 4.0.0으로 수정합니다.

<parent>
      <groupId>org.unidal.maven.plugins</groupId>
      <artifactId>default</artifactId>
      <version>2.5.8</version>
</parent>

 <foundation-service.version>4.0.0</foundation-service.version>

 

컴파일 명령을 다시 실행하십시오. JDK11 버전에서 발생할 수 있는 문제는 다음과 같습니다.

오류 3: 패키지 sun.misc가 기호 클래스 BASE64Encoder를 찾을 수 없습니다.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project cat-consumer: Compilation failure: Compilation failure:
[ERROR] /D:/Nikey/Project/Repository/gitee/cat/cat/cat-consumer/src/main/java/com/dianping/cat/consumer/util/InvidStringBuilder.java:[21,16] 找不到符号
[ERROR] 符号:   类 BASE64Encoder
[ERROR] 位置: 程序包 sun.misc

솔루션: InvidStringBuilder.java 클래스를 찾으십시오.

  • import sun.misc.BASE64Encoder;를 import org.apache.commons.codec.binary.Base64로 교체;
  • return 문을 return "Base64"로 바꿉니다. + Base64.encodeBase64(key.getBytes());
//import sun.misc.BASE64Encoder;
import org.apache.commons.codec.binary.Base64;
//			return "Base64." + new BASE64Encoder().encodeBuffer(key.getBytes()).trim();
			return "Base64." + Base64.encodeBase64(key.getBytes());

 

컴파일 명령 다시 실행: 컴파일 성공

 

4) cat 루트 디렉토리에서 설치 명령 실행

설치 명령을 실행합니다.

mvn clean install -DskipTests

报错:아티팩트 org.unidal.framework:test-framework:jar:2.4.0을 찾을 수 없습니다.

[ERROR] Failed to execute goal on project cat-core: Could not resolve dependencies for project com.dianping.cat:cat-core:jar:3.0.0: Could not find artifact org.unidal.framework:test-framework:jar:2.4.0 in alimaven
(http://maven.aliyun.com/nexus/content/groups/public) -> [Help 1]

해결 방법: cat 루트 디렉터리의 pom.xml 파일에 있는 test-framework 버전을 2.5.0으로 수정합니다.

 

그런 다음 설치 명령을 실행합니다.

설치에 성공하면 다음 경로에서 war 패키지를 다운로드하고 cat-home-3.0.0.war을 cat.war로 변경합니다.

C:\Users\nikey.lee\.m2\repository\com\dianping\에 D:\Nikey\Project\Repository\gitee\cat\cat\cat-home\target\cat-alpha-3.0.0.war 설치 고양이\고양이-집\3.0.0\고양이-집-3.0.0.war
 

5) 각 모듈의 구체적인 유효 폼 정보 보기

cat 루트 디렉토리에서 명령 실행: cat.txt를 열면 cat-home에서 정의한 버전을 볼 수 있습니다.

mvn help:effective-pom > cat.txt

 

2. 서버 설치 및 구성

1. 환경 준비

  • 톰캣: 아파치-톰캣-8.5.68
  • mysql: mysql5.7.22
  • jdk1.8
  • meituan cat 소스 코드로 만든 war 패키지: cat.war

 

2. CAT 데이터베이스 설치

1) MySQL Workbench 도구를 사용하여 로컬 mysql 데이터베이스에 연결

2) 데이터베이스를 생성하고 데이터베이스 이름은 cat이고 데이터베이스 코드는 utf8mb4를 사용합니다. 그렇지 않으면 중국어 문자가 깨져 보이는 등의 문제가 발생할 수 있습니다.

CREATE SCHEMA `cat` DEFAULT CHARACTER SET utf8mb4 ;

3) cat 프로젝트의 스크립트 디렉토리에 있는 sql을 cat 데이터베이스에 복사하고 다음을 실행합니다.

스크립트 디렉토리: CatApplication.sql

실행할 cat 데이터베이스에 sql을 복사하고 데이터 테이블을 초기화합니다.

 

MySQL 시스템 매개 변수 max_allowed_packet의 기본 구성이 작기 때문에 서버에서 허용하는 데이터 패킷의 크기를 제한할 수 있습니다.때때로 큰 삽입 및 업데이트는 max_allowed_packet 매개 변수에 의해 제한되어 실패합니다.따라서 수정해야 합니다. max_allowed_packet 값 수정 후 mysql을 다시 시작해야 합니다.

mysql 설치 디렉터리에서 구성 파일을 수정합니다(없으면 직접 생성): C:\Program Files\MySQL\MySQL Server 5.7\my.ini

[mysqld]
port=3306
max_allowed_packet=1000M

[client]
port=3306

mysql을 다시 시작하십시오 .

net stop mysql
net start mysql

MySQL Workbench 도구를 사용하여 로컬 mysql 데이터베이스에 연결하고 다음 명령을 실행합니다.

show VARIABLES like '%max_allowed_packet%';

 

3. 고양이 구성 파일

Tomcat이 설치된 디스크 디렉터리에 다음 두 디렉터리를 만들고 읽기 및 쓰기 권한을 부여합니다. 내 Tomcat은 D 드라이브에 설치되므로 D 드라이브에 다음 두 디렉터리를 만듭니다.

  • D:\데이터\앱데이터\고양이
  • D:\데이터\앱로그\고양이

D:\data\appdatas\cat 디렉터리에서 client.xml, datasources.xml, server.xml 구성 파일을 추가합니다.

client.xml 구성 파일

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
          <!-- 服务端地址, 端口固定-->
		  <!-- 如果有多个Server, 就继续增加相应的节点配置 -->
		  <!-- 这是告诉客户端应该去链接哪个服务端,从哪个服务端里获取配置信息 ,相关源码也在 DefaultClientConfigManager中 -->
		 <server ip="127.0.0.1" port="2280" http-port="8080" />
    </servers>
</config>

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://127.0.0.1:3306/cat]]></url>  <!-- 请替换为真实数据库URL及Port  -->
            <user>root</user>  <!-- 请替换为真实数据库用户名  -->
            <password>root</password>  <!-- 请替换为真实数据库密码  -->
            <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
        </properties>
    </data-source>
</data-sources>

 

4. Tomcat이 고양이 프로젝트를 시작합니다.

cat.war을 tomcat의 webapps 디렉토리에 복사한 다음 tomcat을 시작하십시오.

명령을 실행하여 tomcat 시작: D:\Tool\apache-tomcat-8.5.68\bin\startup.bat

mysql 버전 8.0을 사용하는 경우 tomcat을 시작한 후 오류가 보고됩니다.

성공적으로 시작한 후 http://127.0.0.1:8080/cat/r 을 방문하십시오.

 

5. 실제 필요에 따라 서버 구성 및 클라이언트 라우팅 수정

관리자/관리자로 로그인

 

IP 주소를 수정하려면 [서버 구성] 페이지로 이동하십시오.

링크 주소: http://127.0.0.1:8080/cat/s/config?op=serverConfigUpdate

 

IP 주소를 수정하려면 [클라이언트 라우팅] 페이지에 들어가십시오.

링크 주소: http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdate

 

3. 클라이언트 통합 사례

springboot 및 cat 통합 사례 작성

1. 소스코드를 통해 로컬웨어하우스에 cat-client 설치

고양이 클라이언트의 소스 경로: D:\cat\lib\java

소스 경로를 입력한 후 mvn clean install -DskipTests 명령을 실행합니다.

설치가 성공적으로 완료되면 cat-client-3.0.0.jar 패키지가 로컬 웨어하우스에 존재합니다.

로컬 저장소 C:\Users\nikey.lee\.m2\repository\com\dianping\cat\cat-client\3.0.0\cat-client-3.0.0.jar

 

오류가 보고된 경우: 대상 옵션 1.5는 더 이상 지원되지 않습니다. 버전 1.6 이상을 사용해주세요.

해결 방법: pom 파일을 수정하고 속성 레이블에 컴파일된 버전 번호를 추가한 다음 설치 명령을 실행하여 성공적으로 설치합니다.

pom 파일 경로: D:\cat\lib\java\pom.xml

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

추천

출처blog.csdn.net/nikeylee/article/details/117712209