美文网首页
docker部署cat监控系统

docker部署cat监控系统

作者: 苏米西 | 来源:发表于2019-10-10 16:35 被阅读0次

    一、介绍

    CAT 简介

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

    Cat 产品价值

    • 减少故障发现时间
    • 降低故障定位成本
    • 辅助应用程序优化

    Cat 优势

    • 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中
    • 全量数据:全量采集指标数据,便于深度分析故障案例
    • 高可用:故障的还原与问题定位,需要高可用监控来支撑
    • 故障容忍:故障不影响业务正常运转、对业务透明
    • 高吞吐:海量监控数据的收集,需要高吞吐能力做保证
    • 可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统

    二、安装

    docker安装略

    1、下载cat

    地址:https://github.com/dianping/cat

    # mkdir -p /data/app/cat
    # cd /data/app/cat
    # git clone https://github.com/dianping/cat.git
    

    2、安装docker-compose

    # wget https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64
    # mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
    # chmod +x /usr/local/bin/docker-compose
    # docker-compose -v
    docker-compose version 1.22.0, build f46880fe
    

    3、编辑Dockerfile

    # cd /data/app/cat/cat/docker
    # vim Dockerfile
    FROM centos:centos7
    
    USER root
    
    #UTILITIES
    RUN yum install -y wget
    RUN yum install -y tar
    
    #JAVA (OPENJDK 8)
    ENV JAVA_VERSION 1.8.0
    
    RUN yum install -y java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
    
    ENV JAVA_HOME /usr/lib/jvm/java
    
    #TOMCAT 7
    ENV CATALINA_HOME /data/app/tomcat
    ENV PATH $CATALINA_HOME/bin:$PATH
    RUN mkdir -p "$CATALINA_HOME"
    WORKDIR $CATALINA_HOME
    
    
    ENV TOMCAT_MAJOR_VERSION 7
    ENV TOMCAT_MINOR_VERSION 7.0.96
    
    RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz && \
        tar zxf apache-tomcat-*.tar.gz && \
        mv apache-tomcat-${TOMCAT_MINOR_VERSION}/* . && \
        rm -rf apache-tomcat-*
    
    #MAVEN
    ENV MAVEN_VERSION_MAJOR 3
    ENV MAVEN_VERSION_MINOR 6.2
    
    RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-${MAVEN_VERSION_MAJOR}/${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}/binaries/apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}-bin.tar.gz
    RUN tar xvf apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}-bin.tar.gz
    RUN rm apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}-bin.tar.gz
    RUN mv apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}  /data/app/apache-maven
    ENV M2_HOME=/data/app/apache-maven
    ENV M2=$M2_HOME/bin
    ENV PATH=$M2:$PATH
    CMD java -version && mvn -version
    
    COPY . /root/workspace/cat
    WORKDIR /root/workspace/cat
    
    RUN set -ex && mvn clean install -DskipTests
    RUN cp cat-home/target/*.war $CATALINA_HOME/webapps/cat.war
    ADD docker/datasources.xml /data/appdatas/cat/datasources.xml
    ADD docker/datasources.sh /datasources.sh
    RUN sed -i "s/port=\"8080\"/port=\"8080\"\ URIEncoding=\"utf-8\"/g" $CATALINA_HOME/conf/server.xml
    
    EXPOSE 8080
    

    4、同步docker时区

    # vim docker-compose.yml
    在cat 和cat_mysql volumes 节点下添加
      - "/etc/localtime:/etc/localtime"
    
    
    # 如
    services:
      cat:
        container_name: cat
    
        ######## build from Dockerfile ###########
        build:
          context: ../
          dockerfile: ./docker/Dockerfile
        ######## End -> build from Dockerfile ###########
    
        environment:
          # if you have your own mysql, config it here, and disable the 'mysql' config blow
          - MYSQL_URL=cat-mysql # links will maintain /etc/hosts, just use 'container_name'
          - MYSQL_PORT=3306
          - MYSQL_USERNAME=root
          - MYSQL_PASSWD=
          - MYSQL_SCHEMA=cat
    
        working_dir: /app
        volumes:
          - "/etc/localtime:/etc/localtime"
          # 默认127.0.0.1,可以修改为自己真实的服务器集群地址
          - "./client.xml:/data/appdatas/cat/client.xml"
          # 默认使用环境变量设置。可以启用本注解,并修改为自己的配置
    #      - "./datasources.xml:/data/appdatas/cat/datasources.xml"
        command: /bin/sh -c 'chmod +x /datasources.sh && /datasources.sh && catalina.sh run'
        links:
          - mysql
        depends_on:
          - mysql
        ports:
          - "8080:8080"
          - "2280:2280"
    

    5、修改client.xml

    # vim client.xml
    # 修改为宿主机的ip地址
    <?xml version="1.0" encoding="utf-8"?>
    <config mode="client">
        <servers>
            <server ip="192.168.4.30" port="2280" http-port="8080"/>
        </servers>
    </config>
    

    6、运行

    1、初始化
    # docker-compose up -d
    
    2、导入表结构

    一次运行以后,数据库中没有表结构,需要通过下面的命令创建表

    # docker exec cat-mysql bash -c "mysql -uroot -Dcat < /init.sql"
    
    3、设置开机启动、防火墙
    # docker update --restart=always cat
    # docker update --restart=always cat-mysql
    # iptables -A INPUT -t tcp --dport 2280 -j ACCEPT
    # iptables -A INPUT -t tcp --dport 8080 -j ACCEPT
    

    7、访问

    url:http://ip:8080/cat
    config:用户:admin 密码:admin
    修改配置:红圈修改为宿主机ip

    1570695860394.png
    1570695860394.png
    注意:务必客户端与服务端时区以及时间统一
    另外还需要修改docker里面tomcat服务时区
    # docker exec -it cat bash
    # cd /data/app/tomcat/bin/
    # vim catalina.sh
    # 大概233行的样子
    JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Duser.timezone=Asia/shanghai"
    #加上时区运行
    # docker restart cat
    # docker ps
    

    相关文章

      网友评论

          本文标题:docker部署cat监控系统

          本文链接:https://www.haomeiwen.com/subject/sqjapctx.html