保姆级cat系统搭建过程

目录

动手开始之前说两个点:

1. jdk 版本

 2. 关于模块部署

开始动手:

1. 3个节点均安装jdk8,maven3,tomcat8,git

2. 设置环境变量:

3. 代码部署

4.  cat项目配置文件设置

 5.  启动tomcat,页面内修改相关配置

6. 登录控制台

7. 控制台配置设置


趁着闲下来的功夫,来尝试一下美团的cat系统。

简单介绍一下,CAT 是美团点评技术团队基于 Java 开发的实时应用监控平台,可提供全面的实时监控告警服务。它的一大优势是:实时,从数据生成到服务端处理结束是秒级别;大部分模块为分钟级统计。

这么大的一个系统,想要立马就搞懂还是有些难度,官方文档边介绍相关内容边介绍安装步骤,于个人而言操作起来不是很顺畅。遂有此文。来跟着笔者一步步走下去!

动手开始之前说两个点:

1. jdk 版本

 ​​​​​​官方文档(想看详细的介绍就点击此连接,其他本文不再赘述)说是服务端建议用jdk7,但在我的虚拟机编译打包的时候碰到了截图中的问题。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (attach-javadocs) on project cat-client: MavenReportException: Error while generating Javadoc: 
[ERROR] Exit code: 1 - javadoc: error - invalid flag: -Xdoclint:none
[ERROR] 
[ERROR] Command line was: /usr/java/jdk1.7.0_80/jre/../bin/javadoc @options @packages
[ERROR] 
[ERROR] Refer to the generated Javadoc files in '/data/appdatas/cat/cat-client/target/apidocs' dir.
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :cat-client

 这个时候换为jdk8就好了。不知道是不是官方文档没有及时更新过来的缘故!(官方文档在一开始建议用jdk7,释放的免编译版本是用jdk8编译的,需要jdk8,感觉应该是后面改用了jdk8。所以我觉得应该从一开始就用jdk8)

 2. 关于模块部署

自己动手尝试过的同学,或者搜其他部署文档的同学应该可以看出,模块还是挺多的,如果不仔细看官方文档,很容易忽略这段话:

 这句话很关键,点明部署关注cat-home下打出的war包即可。当采用集群部署的时候,控制每台机器角色的入口在跟服务端的控制台页面类似的URL下面,改为当前节点的IP,注意功能的开启和关闭即可。也既是说,不论集群版本、还是单机版本,其实最关键的部署节点就是服务端节点。其他的差不多。

跟着本文走下去,相信你也能比较顺利的在自己的机器上搭建出来。

本文部署的是集群版本:

集群节点节点IP
服务端172.16.13.111
节点1 172.16.13.58
节点2172.16.13.77

开始动手:

以下步骤,除非特别声明,否则都是在服务端节点上操作

1. 3个节点均安装jdk8,maven3tomcat8,git

# tomcat / maven 手动安装,此处不再介绍,文中有具体连接
# 笔者用的是orale jdk8
yum install git java-1.8.0-openjdk.x86_64

# 下载好apache-tomcat 二进制包后, 解压
tar apache-tomcat-8.5.81.tar.gz -C /usr/local/

1.1 tomcat 配置的修改

# tomcat的修改
# 可以先在控制节点修改,完成之后scp传送到其他节点
# 防止中文出现乱码
sed -i 's#connectionTimeout="20000"#URIEncoding="utf-8" connectionTimeout="20000"#g'\
 /usr/local/apache-tomcat-8.5.81/conf/server.xml
# 指定context path
sed -i 's#unpackWARs="true" autoDeploy="true#i\<Context path="/cat" docBase="cat" reloadable="true"/>#g'\
 /usr/local/apache-tomcat-8.5.81/conf/server.xml 

 1.2 mysql 的安装和设置

mysql 选择其中一个节点,只安装一个即可,并不用所有的节点都安装此服务。

# 把以下配置项放入到my.cnf中,否则可能无法正取识别中文

[client]
character_set_server=utf8mb4

[mysqld]
character_set_server = utf8mb4
max_allowed_packet = 1000M

这些配置完成后,启动mysql,并且创建一个名叫cat的数据库。

在clone代码完成之后,需要导入 script/CatApplication.sql。

2. 设置环境变量:

export CAT_HOME=/data/appdatas/cat/
CATALINA_OPTS="$CATALINA_OPTS -server -DCAT_HOME=$CAT_HOME -Djava.awt.headless=true -Xms25G -Xmx25G -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=10144m -XX:MaxNewSize=10144m -XX:SurvivorRatio=10 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=13 -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -Xloggc:/data/applogs/heap_trace.txt -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/applogs/HeapDumpOnOutOfMemoryError -Djava.util.Arrays.useLegacyMergeSort=true"

可以放到家目录下的.bash_profile,或者是添加到tomcat的启动脚本bin/startup.sh里。

3个节点均执行以下操作

mkdir /data
# 如果仅仅是测试环境,并且以root用户执行安装,无需担心写入问题
chmod -R 777 /data/
mkdir /data/appdatas
cd /data/appdatas

3. 代码部署

当前我按照的cat github版本是v4.0-RC1,git clone或者迅雷下载压缩包。

# 如果网络问题无法clone,下载压缩包也可
git clone https://github.com/dianping/cat.git
# 注意此处clone完成后,到对应节点执行导入SQL文件
mysql -uroot -Dcat < script/CatApplication.sql


# 打包
mvn clean install -DskipTests
cp cat-home/target/cat-home.war /usr/local/apache-tomcat-8.5.81/webapps/cat.war

4.  cat项目配置文件设置

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

注意修改对应的IP

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <server ip="172.16.13.111" port="2280" http-port="8080"/>
        <server ip="172.16.13.58" port="2280" http-port="8080"/>
        <server ip="172.16.13.77" port="2280" http-port="8080"/>
    </servers>
</config>

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

注意修改对应的IP、用户、密码

4.1、4.2 两步骤配置相同,修改完直接同步到其他两台机器即可,这部分都是项目本地的配置

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

 5.  启动tomcat,页面内修改相关配置

# 服务端节点再次执行以下两个命令
#### 命令开始
export CAT_HOME=/data/appdatas/cat/
CATALINA_OPTS="$CATALINA_OPTS -server -DCAT_HOME=$CAT_HOME -Djava.awt.headless=true -Xms25G -Xmx25G -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=10144m -XX:MaxNewSize=10144m -XX:SurvivorRatio=10 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=13 -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -Xloggc:/data/applogs/heap_trace.txt -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/applogs/HeapDumpOnOutOfMemoryError -Djava.util.Arrays.useLegacyMergeSort=true"
#### 命令结束

cd /usr/local/apache-tomcat-8.5.81/
sh bin/startup.sh && tailf logs/catalina.out
# 注意检查tomcat是否有报错

6. 登录控制台

 打开页面,注意修改IP地址对应IP,默认用户名:admin,默认密码:admin。

7. 控制台配置设置

以下两个配置均需在网页里修改,修改完成之后,需要重启对应的节点来使之生效,配置顺序无要求。

7.1 路由配置

配置地址:http://10.1.1.1:8080/cat/s/config?op=routerConfigUpdate

只需要在服务端修改一次即可,这部分数据会存入mysql中

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

7.2.  服务端配置

配置链接:http://{ip:port}/cat/s/config?op=serverConfigUpdate

<?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="172.16.13.58:8080,172.16.13.77:8080,172.16.13.111:8080"/>
      </properties>
      <storage  local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
        <!--
        <hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/" base-dir="user/cat/logview"/>
        <hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/" base-dir="user/cat/dump"/>
        <hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/" base-dir="user/cat/remote"/>
        -->
      </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="172.16.13.111">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="alarm-machine" value="true"/>
         <property name="send-machine" value="true"/>
      </properties>
   </server>
</server-config>

接下来,我们要试试用python来跑一遍,看看数据采集和大盘展示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建JavaWeb环境,您可以按照以下步骤进行操作: 1. 首先,您需要安装Java开发工具包(JDK)和Java运行环境(JRE)。这两个组件是Java开发和运行的基础。您可以从Oracle官网下载适合您操作系统的最新版本的JDK和JRE,并按照安装向导进行安装。 2. 安装完JDK和JRE之后,您可以选择一个集成开发环境(IDE)来编写和调试JavaWeb项目。其中,IntelliJ IDEA是一款非常流行的IDE,您可以从官方网站下载并安装它。 3. 在IDEA中创建一个新的JavaWeb项目。在创建项目时,您可以选择使用Maven构建工具来构建项目的框架。 Maven可以帮助您管理项目的依赖库,并自动构建项目结构。如果您不熟悉Maven,可以在创建项目时选择普通的JavaWeb项目。 4. 在项目中使用Servlet技术,您可以创建一个Servlet类来处理HTTP请求和响应。Servlet是JavaWeb开发的基础组件之一,用于处理用户请求并生成动态内容。您可以参考引用中的链接来了解Servlet的使用和生命周期。 5. 对于Web服务器的选择,由于您是用来学习的,您可以选择使用Apache Tomcat作为您的Web服务器。Tomcat是一个轻量级的JavaWeb服务器,易于安装和使用。您可以从Tomcat官方网站下载并安装适合您操作系统的版本。 6. 配置Tomcat服务器。在IDEA中,您可以将Tomcat服务器配置为您的项目的目标服务器。这样,您就可以使用IDEA自动部署和运行您的JavaWeb应用程序。 7. 开始编写您的JavaWeb应用程序。您可以根据您的项目需求选择合适的技术和框架来开发您的应用程序。如果您需要参考一个完整的JavaWeb项目来学习,您可以参考引用中提供的JavaWeb物资管理系统项目,其中包含了源码和部署说明。 请按照以上步骤进行JavaWeb环境搭建,并根据您的需求选择合适的技术和框架来开发您的应用程序。祝您成功!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [用IDEA写的第一个JavaWeb项目(保姆级)](https://blog.csdn.net/qq_64552181/article/details/130694575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [javaWeb物资管理系统项目源码.rar](https://download.csdn.net/download/weixin_44006731/87441071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值