1. 程式人生 > 其它 >SQL審計平臺之Archery安裝

SQL審計平臺之Archery安裝

一、簡介

Archery是一個開源的SQL稽核查詢平臺,基於python開發。支援多資料庫的SQL上線和查詢,同時支援豐富的MySQL運維功能,底層基於goInception|inception兩個開源審計元件。Archery功能導圖部署文件

二、安裝

1.安裝pyenv和virtualenv

具體步驟請參考:Centos7安裝pyenv和virtualenv

2.準備虛擬環境

建立虛擬環境並激活

pyenv virtualenv 3.6.4 venv4archery
pyenv activate venv4archery

3.下載解壓

wget https://github.com/hhyo/archery/archive/v1.8.0.tar.gz
tar xvf v1.8.0.tar.gz
cd Archery-1.8.0/

4.安裝依賴

yum依賴

pip依賴

 pip install -r requirements.txt

報錯1

ModuleNotFoundError: No module named 'setuptools_rust'

解決辦法

pip install --upgrade pip

報錯2

ModuleNotFoundError: No module named 'Crypto'

解決辦法

pip install pycrypto

5.修改配置

vi archery/settings.py

# 關閉debug模式
DEBUG = False
# 該專案本身的mysql資料庫地址
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'archery',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3357',
        '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://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": ""
        }
    },
    "dingding": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": ""
        }
    }
}

建議MySQL版本5.6以上否則下面步驟會報錯。

6.啟動準備

# 資料庫初始化
python3 manage.py makemigrations sql
python3 manage.py migrate 
# 資料初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
# 建立管理使用者
python3 manage.py createsuperuser

MySQL版本5.6會報錯,推薦使用5.7及以上版本
MySQLdb._exceptions.OperationalError: (1071, 'Specified key was too long)

7.啟動

source /opt/venv4archery/bin/activate
#啟動Django-Q,需保持後臺執行
python3 manage.py qcluster
#啟動服務
python3 manage.py runserver 0.0.0.0:9123  --insecure

8.訪問登陸

http://10.0.0.51:9123/

其它配置操作請參照官方文件。