SQL審計平臺之Archery安裝
阿新 • • 發佈:2021-07-20
一、簡介
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/
其它配置操作請參照官方文件。