Docker化CAT监控系统

栏目: 服务器 · 发布时间: 6年前

内容简介:CAT是点评开源的监控系统,可以统计到粒度非常细,而且也支持hadoop,可以应对企业应用。CAT底层使用的是MySQL,需要预先初始化数据库,而且还附带了几个配置文件,总之并不是一个war包就可以启动的。为了本地快速调试和集成,还是Docker化一下吧。为了简单起见就只准备一个单机模式的镜像。

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具