Docker化CAT监控系统

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2018/08/29/docker-cat/

CAT是点评开源的监控系统,可以统计到粒度非常细,而且也支持hadoop,可以应对企业应用。

CAT底层使用的是MySQL,需要预先初始化数据库,而且还附带了几个配置文件,总之并不是一个war包就可以启动的。

为了本地快速调试和集成,还是Docker化一下吧。为了简单起见就只准备一个单机模式的镜像。

首先是准备几个xml文件,因为是单机模式,就全部只想要127.0.0.1了。

<?xml version="1.0" encoding="utf-8"?>

<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd" xmlns="">
    <servers>
        <server ip="127.0.0.1" port="2280" http-port="8080"/>
    </servers>
</config>
<?xml version="1.0" encoding="utf-8"?>

<config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="false">

    <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7"
             local-logivew-storage-time="7">
    </storage>

    <console default-domain="Cat" show-cat-domain="true">
        <remote-servers>127.0.0.1:8080</remote-servers>
    </console>
</config>

最关键的就是数据库的准备了,CAT仓库准备了一个SQL文件。我的操作是在连接数据库的时候先检查数据库是否有表,没有就先建表。之后再替换datasource配置中的文件信息

#!/usr/bin/env bash

RESULT=`mysqlshow -u ${DATABASE_USER} --password=${DATABASE_PASSWORD} --port 3306 --host ${DATABASE_HOST} cat | grep -v Wildcard | grep -o dailygraph`
if [ "$RESULT" != "dailygraph" ]; then
    mysql -u ${DATABASE_USER} --password=${DATABASE_PASSWORD} --port 3306 --host ${DATABASE_HOST} cat < /app/Cat.sql
    echo 'Init database from Cat.sql'
fi

sed -i "s/jdbcHost/$DATABASE_HOST/g" /data/appdatas/cat/datasources.xml
sed -i "s/jdbcUser/$DATABASE_USER/g" /data/appdatas/cat/datasources.xml
sed -i "s/jdbcPassword/$DATABASE_PASSWORD/g" /data/appdatas/cat/datasources.xml

catalina.sh run

最终的使用方法如下:

version: '3'

services:
  database:
    image: mysql:5
    environment:
      - MYSQL_ROOT_PASSWORD=0
      - MYSQL_DATABASE=cat
  cat:
    image: htynkn/dianping-cat
    depends_on:
      - database
    ports:
      - 8080
    environment:
      - DATABASE_USER=root
      - DATABASE_HOST=database
      - DATABASE_PASSWORD=0

如果要快速体验的话可以用PWD: http://play-with-docker.com/?stack=https://raw.githubusercontent.com/htynkn/dockerfiles/master/dianping-cat/stack.yml

界面截图如下:

 

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2018/08/29/docker-cat/

发表评论