• CAT监控以及依赖MySQL,tomcat和JDK安装


    CAT 简介

    • CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。
    • CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
    • CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算。

    CAT官方参考文档:

    HOME · dianping/cat Wiki · GitHub

    CAT的服务端安装参考文档:

    readme_server · dianping/cat Wiki · GitHub

    下面是单机安装CAT以及他需要依赖的JDK,tomcat,mysql

    一.JDK安装

    参考:Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序_unix21的博客-CSDN博客 

    下面是jdk-8u221安装,下载好jdk以后

    解压

    #tar zxvf ./jdk-8u221-linux-x64.tar.gz -C /usr/lib/jdk
    #cd ./jdk/jdk1.8.0_221

    设置环境变量

    打开/etc/profile文件
    #vim /etc/profile

    1. export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_221
    2. export JRE_HOME=/usr/lib/jdk/jdk1.8.0_221/jre
    3. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    4. export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    #source /etc/profile

    验证JDK安装完成

    #java -version

     

    二.tomcat安装

    下载tomcat(https://tomcat.apache.org/download-80.cgi)
    #wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz
    #cd /usr/local/
    #mkdir tomcat
    #tar -zxvf apache-tomcat-8.5.82.tar.gz
    #cd  ./apache-tomcat-8.5.82/bin
    #./startup.sh

    启动
    #/usr/local/tomcat/apache-tomcat-8.5.82/bin/startup.sh

    测试
    http://localhost:8080/

    #重启tomcat服务需要先关闭再启动就行
    #/usr/local/tomcat/apache-tomcat-8.5.82/bin/shutdown.sh 

    三.安装MySQL  

    下载MySQL :: Download MySQL Community Server (Archived Versions)

     

    #tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

    先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:
    #groups mysql
    添加用户组和用户
    #groupadd mysql && useradd -r -g mysql mysql

    创建数据目录并赋予权限
    #mkdir -p /data/mysql
    #chown mysql:mysql -R /data/mysql

    修改配置文件  vim /etc/my.cnf (没有就新建)

    1. [mysqld]
    2. bind-address=0.0.0.0
    3. port=3306
    4. user=mysql
    5. basedir=/usr/local/mysql-5.7.35
    6. datadir=/data/mysql
    7. socket=/tmp/mysql.sock
    8. log-error=/data/mysql/mysql.err
    9. pid-file=/data/mysql/mysql.pid
    10. #character config
    11. character_set_server=utf8mb4
    12. symbolic-links=0
    13. explicit_defaults_for_timestamp=true
    14. max_allowed_packet = 1024M

    注意max_allowed_packet默认很小只有4M需要改大一点,我这是已经安装好之后查出来的。

    改之后的:


    #mv /usr/local/mysql/mysql-5.7.35 /usr/local/mysql-5.7.35

    #cd /usr/local/mysql-5.7.35/bin/
    #./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.35/ --datadir=/data/mysql/ --user=mysql --initialize

    查看初始密码
    #cat /data/mysql/mysql.err
     A temporary password is generated for root@localhost: ccGoWk*/l2NO
     
    启动mysql
    #cp /usr/local/mysql-5.7.35/support-files/mysql.server /etc/init.d/mysql
    #service mysql start
    #service mysql restart
    ----
    log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
    没有找到日志文件,在相应的目录下创建日志文件后,赋予相应的权限
    #mkdir /var/log/mariadb/
    #vi /var/log/mariadb/mariadb.log
    #chown -R mysql.mysql /var/log/mariadb/mariadb.log
    ----

    登陆
    #/usr/local/mysql-5.7.35/bin/mysql -u root -p

    第一次需要设置数据库的密码 ,把原始的数据库密码更改一下

    更改密码的方法:

    mysql> SET PASSWORD = PASSWORD('你的密码'); 这句话重新设置一次密码!

    刷新规则允许外部访问
    >use mysql      #选择访问mysql库
    >update user set host = '%' where user = 'root';      #使root能再任何host访问
    >FLUSH PRIVILEGES;       #刷新

    退出
    #quit

    重启服务    
    #service mysql restart

    用户权限之创建新用户并给授权指定的数据库权限
    创建mysql新用户
    CREATE USER 'test'@'%' IDENTIFIED BY '123';
    备注上面@后的命令解释

    '%' - 所有情况都能访问
    ‘localhost’ - 本机才能访问
    ’111.222.33.44‘ - 指定 ip 才能访问
    3.给用户授予权限
    grant all on 数据库名.数据库表 to 用户名@'%'  identified by "密码";
    备注

    all 可以替换为 select,delete,update,create,drop
    数据库名 所有的 用*
    数据库表 所有的 用*
     

     四.安装CAT

    基本参考这个就行,readme_server · dianping/cat Wiki · GitHub

    但是这里是集群部署,而且有些地方不注意会浪费时间。

    #mkdir /data
    #chmod -R 777 /data
    #mkdir -p /data/appdatas/cat

    #cd /data/appdatas/cat

    在/data/appdatas/cat/目录下创建配置文件,client.xml,datasources.xml,server.xml这三个

    server.xml可以不用,会用默认文件,如果你要安装HDFS存报表需要。 

    #touch client.xml
    #touch datasources.xml
    #touch server.xml

    client.xml

    1. "1.0" encoding="utf-8"?>
    2. <config mode="client">
    3. <servers>
    4. <server ip="你的内网IP" port="2280" http-port="8080"/>
    5. servers>
    6. config>

    datasources.xml

    1. "1.0" encoding="utf-8"?>
    2. id="cat">
    3. 3
    4. 1s
    5. 10m
    6. 1000
    7. com.mysql.jdbc.Driver
    8. root
    9. 你的密码
    10. true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]>

     下载war包部署是最简单的,也可以自己安装包编译。

     下载3.1.0即可:

    Releases · dianping/cat · GitHub

    Release V3.1.0 · dianping/cat · GitHub

    直接下载也行:

    https://github.com/dianping/cat/releases/download/3.1.0/cat-home.war

    下载好以后改为cat.war。

    数据库脚本
    https://github.com/dianping/cat/blob/3.1.0/script/CatApplication.sql
    https://raw.githubusercontent.com/dianping/cat/3.1.0/script/CatApplication.sql

    需要在MySQL建立一个cat的空数据库,然后导入脚本即可。 

    将cat.war放入tomcat的webapps:

    重启tomcat即可,如果一起都对会出现CAT的页面,如果有哪里不对需要和前面仔细检查,特别是数据库连接和用户名密码不能错。

    提示出问题的服务端需要修改配置。 

     修改配置:

    http://localhost:8080/cat/s/config?op=serverConfigUpdate
    http://localhost:8080/cat/s/config?op=routerConfigUpdate

    配置里127.0.0.1的IP 要改为实际内网IP,重启tomcat

    这次提示CAT服务端正常了。

    五.程序接入CAT客户端

    cat/README.zh-CN.md at master · dianping/cat · GitHub

    maven配置: 

    1. <dependency>
    2. <groupId>com.dianping.catgroupId>
    3. <artifactId>cat-clientartifactId>
    4. <version>3.1.0version>
    5. dependency>

     如果是windows那么需要配置程序所在的盘的根目录下,例如D盘D:\data\appdatas\cat放置client.xml,关于client.xml在前面安装CAT部分已经有。

  • 相关阅读:
    解决centos stream 9 使用jenkins自动化部署Vue项目无权限问题
    【GIT版本控制】--协作流程
    FastAPI 学习之路(二十)接口文档配置相关
    java面向对象进阶
    产品管理系统(MVC设计模式)——第一个Javaee项目
    hanniman 1v1 咨询
    OA项目之会议通知(查询&是否参会&反馈详情)
    【CNN-GRU预测】基于卷积神经网络-门控循环单元的单维时间序列预测研究(Matlab代码实现)
    权限提升-Linux脏牛内核漏洞&SUID&信息收集
    SpringBoot自动配置原理
  • 原文地址:https://blog.csdn.net/21aspnet/article/details/126377109