mysql-archery安装部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、部署Docker
    • 1.通过 uname -r 命令查看你当前的内核版本
    • 2 确保 yum 包更新到最新
    • 3 卸载旧版本
    • 4 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    • 5 设置yum源
    • 6、可以查看所有仓库中所有docker版本,并选择特定版本安装
    • 7 安装docker
    • 8 启动并加入开机启动
    • 9 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
    • 10.docker安装docker-compose
  • 二、安装archery(官网初始版本)
    • 1.拉git
    • 2.启动
    • 3.表结构初始化
    • 4.执行编译文件
    • 5.创建用户
    • 6.日志查看和问题排查
    • 7.访问
  • 三、根据个人需求进行调整
    • 1.archery插件安装的配置
    • 2.修改settings配置和goinception配置(前提为archery已经安装完)
    • 3.停止archery和goinception
    • 4.下掉容器
    • 5.修改docker-compose.yml文件并启动容器
    • 6.archery1.9.1版本的特别之处
  • 四、保存镜像,一劳永逸
    • 1.查看容器
    • 2.将容器制作为镜像
  • docker其他命令
    • 1.删除镜像
    • 2.删除容器
    • 3. goinception参数


前言

archery等sql审核工具来说,对DBA非常的重要,今天记录下archery的安装

一、部署Docker

1.通过 uname -r 命令查看你当前的内核版本

uname -r

2 确保 yum 包更新到最新

yum update

3 卸载旧版本

yum remove docker docker-common docker-selinux docker-engine

4 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 国外镜像一般很难访问,建议配置阿里云镜像、
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7 安装docker

yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
 # 安装指定版本的docker
yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io

8 启动并加入开机启动

systemctl start docker
systemctl enable docker

9 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

10.docker安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

二、安装archery(官网初始版本)

1.拉git

git clone https://github.com/hhyo/Archery.git

2.启动

#进入docker-compose文件夹
#启动
docker-compose -f docker-compose.yml up -d
# 如果有新加的容器,直接更改docker-compose.yml,然后运行上面的命令即可,已经启动的容器会跳过

:从docker-compose.yml中可以看到goinception或者inception的配置文件地址./inception/config.toml,如果想更改审核规则需要在这个配置文件里进行更改,然后重启

3.表结构初始化

docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql  
python3 manage.py migrate 

4.执行编译文件


#python3 manage.py compilemessages
#数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql

5.创建用户

python3 manage.py createsuperuser

6.日志查看和问题排查

docker logs archery -f --tail=10
/downloads/log/archery.log

7.访问

http://127.0.0.1:9123/

三、根据个人需求进行调整

1.archery插件安装的配置

默认配置:
https://github.com/hhyo/Archery/blob/master/src/docker-compose/docker-compose.yml
默认是几个插件都安装,不过一般会把redis和mysql拿下去进行独立的安装

2.修改settings配置和goinception配置(前提为archery已经安装完)

# 直接修改方案
docker exec -ti archery /bin/bash
cd /opt/archery/archery
vi settings.py

# 因为docker将文件映射了出来,所以可以直接修改Archery/src/docker-compose下的内容即可,初步需要修改的文件为

# 初步主要修改的文件包含以下两项
vim docker-compose/archery/settings.py
vim docker-compose/inception/config.toml
# (主要是备份的数据库和审核规则,这里不改会报错bad connection问题)

2.1 修改settings.py对应的mysql,redis内容

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'archery',
        'USER': '*****', # 这四项改成自己的mysql的用户名,密码,IP,端口
        'PASSWORD': '*****',
        'HOST': '*******',
        'PORT': '***',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4'
        },
        'TEST': {
            'NAME': 'test_archery',
            'CHARSET': 'utf8mb4',
        },
    }
}

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://*****:6379/0", # 这里改成自己的redis的IP
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": "******" # 这里改成自己的redis密码
        }
    },
    "dingding": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": ""
        }
    }
}

2.2 修改config.toml中goinception备份所使用的链接(避免bad connection)

# 修改之后重启goinception,这里需要注意的是arhcery前端界面的配置是不起作用的,一定要修改config.toml的配置,不然就会出现不备份可以执行成功,但是备份执行不成功的情况
[inc]
backup_host = ""
backup_port = 3306
backup_user = "archery"
backup_password = "****"

3.停止archery和goinception

# 这里要从刚刚的环境退出去,即在容器外操作
docker-compose|docker stop archery
docker-compose|docker stop goinception

4.下掉容器

docker-compose -f docker-compose.yml down

5.修改docker-compose.yml文件并启动容器

# 将docker-compose.yml文件中的redis和mysql相关部分删除掉,并把archery的mysql,redis相关部分换成自己的mysql,redis的IP,然后启动容器
eg:
dockerize -wait tcp://****:3306 -wait tcp://****:6379 -timeout 60s  /opt/archery/src/docker/startup.sh

docker-compose -f docker-compose.yml up -d

接下来正常操作即可

6.archery1.9.1版本的特别之处

6.1 1.9.1的版本开始用环境变量配置,位置是
/archery/src/docker-compose/.env

6.2 配置:配置域名访问报错:Forbidden (Origin checking failed - ***** does not match any trusted origins.): /authenticate/
配置CSRF_TRUSTED_ORIGINS=具体的域名

四、保存镜像,一劳永逸

1.查看容器

docker ps -a

内容如下
在这里插入图片描述

2.将容器制作为镜像

# 格式:docker  commit  -m  '镜像描述'  -a  '制作者'  容器名  镜像名
docker commit -m 'archery_use' -a 'dba' archery archery_dba_use

3.应用本地镜像

# 为了模拟,我们需要把之前的容器先下掉,然后查看本地镜像
docker images
# 从中找到我们要使用的镜像,然后启动
# 格式:docker  run  -dit  --name=容器名  镜像 id  /bin/bash
docker  run  -dit  --name=archery 6c68f8c7a2d6  /bin/bash

docker其他命令

1.删除镜像

docker rmi 2c9028880e58 #(镜像id)

2.删除容器

docker rm 2c9028880e58 #(容器id)

3. goinception参数

你可能感兴趣的:(Django,mysql,docker,mysql)