лучник
Автоматизированная операционная платформа SQL, основанная на создании, поддерживает рабочие заказы, аудиты, задачи времени, электронные письма, OSC и другие функции. Он также может настроить запрос MySQL, управление медленным запросом, управление сеансами и т. Д.
Оглавление
- Основные функции
- Спецификации дизайна
- Онлайн -опыт
- Установить
- Docker развертывание
- Ручная установка
- бегать
- Функциональная интеграция
- Онлайн -запрос и снижение чувствительности
- Медленное управление журналом
- Инструменты оптимизации SQL
- Alibaba Cloud RDS Management
- Q & A.
Язык развития и среда рекомендаций
python3.4及以上
django1.8.17
mysql : 5.6及以上
linux : 64位linux操作系统均可
Основные функции
- Автоматический обзор инициирует запуск SQL, представлены рабочие заказы, и создание автоматически проверяется. После прохождения обзора аудитор должен вручную просмотреть его.
- Ручной обзор
Начало автоматически рассмотрено рабочие заказы будут рассмотрены другими инженерами и разработками исследований и разработок или управляющими исследованиями и разработками. Операции DBA выполнят SQL
Зачем нам необходим ручной обзор?
Это следует за пониманием процесса в области онлайн -операций в области работы и технического обслуживания. Если инженер хочет обновить онлайн -базу данных SQL, лучше всего проверить ее другим инженером. Много раз, DBA не знает, что бизнес SQL не знает, поэтому лучше всего подходит для инженеров и разработчиков R & D вручную. Это концепция дизайна Archer - Обратные операторы могут отображаться в заказе на отображение данных Datablec
- Выполнять SQL регулярно
Рабочие заказы, утвержденные DBA, могут регулярно выполняться. Время выполнения может быть изменено до выполнения и может быть прекращено в любое время. - Выполнение PT-OSC поддерживает отображение PT-OSC выполнения, и вы можете нажать, чтобы прервать процесс PT-OSC
- Библиотека запросов MySQL, таблицы и ключевые слова автоматически завершают ограничения результатов запросов, экспорт результатов запроса, отображение структуры таблицы и дисплей с несколькими ресторанами
- MySQL Запрос Управление разрешением основано на заявлениях о создании запросов на основание. Запрос разрешений Поддержка, ограничивая применение, просмотр и управление разрешениями на запрос на уровне таблицы, поддержку конфигурации процесса аудита и многоуровневый аудит.
- Динамическая десенсибилизация MySQL -запроса основана на операторах запроса на основание основания, и она может достичь динамической десенсибилизации конфиденциальных данных в сочетании с конфигурацией поля десенсибилизации и правилами десенсибилизации (регулярные выражения).
- Медленное управление журналом основано на pt_query_digest of percona-toolkit для анализа и хранения медленных журналов и отображения их на веб-стороне.
- Уведомления по электронной почте могут быть настроены с помощью напоминаний по электронной почте для уведомления онлайн -приложений, приложений разрешений, просмотра результатов и т. Д., А также уведомить аномальный логин.
Спецификации дизайна
- Разумный дизайн базы данных и спецификации очень необходимы, особенно базы данных MySQL. Ядро не так мощно, как Oracle, DB2, SQL Server и другие базы данных. Требуется разумный дизайн, чтобы играть в своих сильных сторонах и избежать ваших слабостей. Интернет -индустрия имеет зрелые спецификации дизайна MySQL, и она написана следующим образом. Пожалуйста, попросите читателей обучить всех разработчиков бэкэнд этой спецификацией, прежде чем компания вышла в интернет, чтобы использовать систему Archer, чтобы они знали причину и почему.
Скачать ссылку https://github.com/jly8866/archer/blob/master/src/docs/mysql_db_design_guide.md
Основные файлы конфигурации
- Archer/Archer/settings.py
Принять докер
- Docker Image, ссылка вики
- Начало изображение: https://hub.docker.com/r/hhyo/inception
- Арчер Изображение: https://hub.docker.com/r/hhyo/archer
- Docker Image Production спасибо @小彩票线
Ручные шаги установки
- Подготовка окружающей среды
- Клонирование кода в локальный или загрузка пакета ZIP
git clone https://github.com/jly8866/archer.git - Установить основание
Проектная галерея
- Установите Python3, номер версии> = 3.4 (поскольку вам нужно изменить официальный модуль, используйте VirtualEnv или Venv, чтобы выделить среду отдельно!)
pip3 install virtualenv
virtualenv venv4archer --python=python3.4
- Установите необходимые связанные модули
source venv4archer/bin/activate
pip3 install -r requirements.txt
- Совместимый с модулем модуля PymySQL Информация о версии версии использует файл в каталоге src/docker/pymysql для замены /path/to/python3/lib/python3.4/site-packages/pymysql/ Соответствующий файл
Подготовьтесь перед началом
- Создайте таблицу базы данных самого лучника
- Изменить все адреса информации о Archer/Archer/funs.py, включая базы данных и частях incepation_xxx
- Создайте таблицу базы данных самого лучника через модель. Если это существующее обновление версии, используйте скрипт изменения в SRC/init_sql, чтобы изменить исходную ветвь базы данных v1.1.1. Пожалуйста, используйте v1.1.1-> v2.0.sql, чтобы изменить исходную главную ветвь. Пожалуйста, используйте Master-> v2.0.sql, чтобы изменить новую установку. Пожалуйста, используйте следующий метод для его инициализации следующим образом
python3 manage.py makemigrations sql
python3 manage.py migrate
- Создать пользователя root root root Admin (этот пользователь может войти в администрацию Django для управления моделью)
python3 manage.py createsuperuser - Есть два способа начать
(1) Используйте встроенный RunServer Django, чтобы запустить сервис, и рекомендуется не использовать его в производственной среде
bash debug.sh
(2) Используйте надзорный зал+nginx, чтобы запустить модуль установки обслуживания pip3 install gunicorn==19.7.1
Пример конфигурации NGINX server{
listen 9123; #监听的端口
server_name archer;
proxy_read_timeout 600s; #超时时间与gunicorn超时时间设置一致,主要用于在线查询
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host:9123; #解决重定向404的问题
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static {
alias /archer/static; #此处指向settings.py配置项STATIC_ROOT目录的绝对路径,用于nginx收集静态资源
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Start bash startup.sh - Официальный доступ к входу в систему с учетной записью администратора, созданной выше
http://XXXX:port/login/
Другие функции интеграции
Онлайн -запрос
- Изменить запрос на True в настройках
- На страницу [Фоновое управление данными]-[Конфигурация адреса библиотеки подчиненной библиотеки] добавить информацию о библиотеке рабов
- Перейдите в [Фоновое управление данными]-[Конфигурация рабочего процесса] Процесс конфигурации страницы
- Пользователи могут проводить онлайн -запросы после подачи заявления на получение разрешений и передачи обзора
- Если вам нужно использовать динамическую десенсибилизацию, измените DATA_MASKING_ON_OFF в настройках на TRUE и перейдите на страницу [Backend Data Management]-[Конфигурация десенсибилизации] для настройки правил и полей десенсибилизации.
Медленное управление журналом
- Slowquery изменяется на True в настройках
- Установите Percona-Toolkit (версия = 3.0.6), взяв CentOS в качестве примера
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum -y install percona-toolkit.x86_64
- Создайте медленные таблицы сбора журналов для базы данных Archer с помощью SRC/Script/mysql_slow_query_review.sql
- Развернуть SRC/Script/Analysis_slow_query.sh для каждой машины мониторинга. Обратите внимание, что
hostname="${mysql_host}:${mysql_port}" в скрипте согласуется с информацией о конфигурации главной библиотеки Archer, в противном случае соответствующие записи не будут отфильтрованы.
Инструмент оптимизации SQLADVISOR
- Установить SQLadvisor, адрес проекта
- Измените файл конфигурации sqladvisor в путь программы, путь должен быть завершен, например, '/opt/sqladvisor/sqladvisor/sqladvisor'
Alibaba Cloud RDS Management
- Измените файл конфигурации aliyun_rds_manage = true
- Установите модуль
pip3 install aliyun-python-sdk-core==2.3.5
pip3 install aliyun-python-sdk-core-v3==2.5.3
pip3 install aliyun-python-sdk-rds==2.1.1
- На странице [Backend Data Management]-[Ali Cloud Certification Information] добавьте информацию AccessKey облачной учетной записи Alibaba и перезапустите службу
- На странице [Конфигурация Ali Cloud RDS] [Ali Cloud Conture RDS] добавьте информацию о экземпляре, чтобы реализовать управление процессами и медленное управление журналами Alibaba Cloud RDS
Усиление бэкэнд администраторов, грубо-защищенное растрескивание
- В каталоге патчей имя django_1.8.17_admin_secure_archer.patch
- Используйте команды
patch python/site-packages/django/contrib/auth/views.py django_1.8.17_admin_secure_archer.patch
Интегрированный LDAP
- Измените файл конфигурации enable_ldap = true, установите соответствующий модуль, вы можете включить вход в учетную запись LDAP, взять CentoS в качестве примера
yum install openldap-devel
pip install django-auth-ldap==1.3.0
- Если используется LDAPS и является саморегистрированным сертификатом, вам необходимо открыть комментарий auth_ldap_global_options в настройках
- Конфигурации, начинающиеся с AUTH_LDAP в настройках, необходимо изменить в соответствии с их собственным LDAP, соответствующим
Системный опыт
Нажмите, чтобы испытать
| Роль | счет | пароль |
|---|
| администратор | лучник | лучник |
| инженер | инженер | лучник |
| Рецензент | аудитор | лучник |
| Дольдомер | дольдомер | лучник |
Некоторые проблемы решены
Просмотреть журнал ошибок
/tmp/default.log & /tmp/archer.err
Исключение отображения стиля страницы
- Runserver/Debug.sh начинается
Отладка закрыта в настройках, то есть от DEBUG = FALS - nginx+стрелочный/Startup.sh Start
Статическая конфигурация ресурса nginx неверна location /static {
alias /archer/static; #此处指向settings.py配置项STATIC_ROOT目录的绝对路径,用于nginx收集静态资源,一般默认为archer按照目录下的static目录
}
Управление пользователями
- Иногда пользовательская ошибка сообщается Nginx+Gunicorn/Startup.sh. Можно произойти развертывание нескольких работников. Проблема не была решена в настоящее время.
- Невозможно войти в систему (подтвердите, что имя пользователя и пароль верны)
Проверьте, является ли поле пользователя is_active 1
SQL онлайн
Кластер не отображает базу данных
Арчер по умолчанию по умолчанию будет отфильтровать некоторые системы системных данных, а список фильтров - это 'information_schema', 'performance_schema', 'mysql', 'test', 'sys'
Рецензент не показывает действительных пользователей, которые не являются рецензентором/роли DBA
После прохождения обзора нет кнопки выполнения
Процесс запуска SQL Archer: Инженер представляет SQL-> Review-Auditor-> выполнение DBA. Аудитор может только просмотреть данные, которые принадлежат его собственному обзору, и DBA выполняет все данные.
Обнаружение ошибки SQL
- недействительный литерал для int () с базой 10: 'Начало2'
Отрегулируйте PymySQL, чтобы сделать его совместимым с информацией о версии основания.
Используйте файл в каталоге src/docker/pymysql, чтобы заменить файл в comection/to/python3/lib/python3.4/site-packages/pymysql/ directory - Недействительная информация источника
Пароль не может включать * - Должен начинать как оператор Begin
Модуль Python3 PymySQL отправит заявление о предупреждениях Show в начало, в результате чего начало возврата ошибки «обязательно начинать оператор». Арчер сообщит, что файл в каталоге /path/to/python3/lib/python3.4/site-packages/pymysql/, чтобы заменить файл в каталоге /path/to/python3/lib/python3.4/site-packages/pymysql/ - Неправильное имя базы данных ''
Проверка начала не поддерживает подзадность - Неверная информация о удаленном резервном копировании
Начало не может подключиться к библиотеке резервного копирования
Не может генерировать оператор отката
- Проверьте конфигурацию, связанную с началом в файле конфигурации
- Проверьте разрешения начального аудита пользователей и пользователей резервного копирования, ссылка на разрешение
— inception备份用户
GRANT SELECT, INSERT, CREATE ON *.* TO 'inception_bak'
— inception审核用户(主库配置用户,如果要使用会话管理需要赋予SUPER权限,如果需要使用OSC,请额外配置权限)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'inception'
— archer在线查询用户(从库配置用户)
GRANT SELECT ON *.* TO 'archer_read'
- Проверьте формат Binlog, он должен быть row, binlog_row_image заполнен
- Проверьте, имеет ли таблица DML первичные ключи
- Проверьте, влияет ли оператор на данные
- Проверьте, включена ли библиотека резервного копирования для AutoCommit
- Проверьте, является ли это оператором обновления непрерывного таблицы
- Проверьте, является ли экземпляр выполнения MySQL
Правила десенсибилизации не действуют
- Проверьте, попадает ли поля десенсибилизации (чувствительно ли это к корпусу)
- Проверьте, может ли регулярное выражение правила десенсибилизации соответствовать данным. Если он не может соответствовать, исходный результат будет возвращен.
- Проверьте, выключен ли параметр CHECK_QUERY_ON_OFF, что приводит к тому, что начало не разрешает операторы, которые не чувствительны к чувствительности.
| Тип правила | Регулярные выражения, используемые для регулярной десенсибилизации, должны быть сгруппированы, а скрытые группы будут заменены на ****. | Группы, которые должны быть скрыты | Описание правила |
|---|
| Номер телефона | (. {3}) (.*) (. {4}) | 2 | Держите первые три и последние четыре |
| Идентификационный номер | (.*) (. {4}) $ | 2 | Спрятал последние четыре |
| банковская карта | (.*) (. {4}) $ | 2 | Спрятал последние четыре |
| Почта | (.*)@(.*) | 2 | Снимите суффикс |
Рецензент не может увидеть разрешение на запрос на подачу заявки на ожидающий заказ на работу
Список дел-заявки на запрос спрятан в значке сообщения в верхнем правом углу. Значок будет отображаться, когда будет рассмотрено информация. Вы можете ввести для просмотра данных.
Медленные журналы не отображаются
- Проверьте конфигурацию в скрипте и сохраните содержимое конфигурации имени HOSTNAM и ARCHER MAIL LIBRAION, и используются для фильтра ARCHER.
- Проверьте, соответствует ли информация о журнале, собранную таблицей MYSQL_SLOW_QUERY_REVIEW_HISTORY.
Временная задача не выполнена
- Проверьте, была ли создана соответствующая таблица Django-Apscheduler, вы можете использовать
python3 manage.py migrate , чтобы создать его
Контактная информация
- QQ Группа 1 Группа 524233225 (полная)
- QQ Group 2 Group 669833720