Эта инструкция описывает, как настроить Moodle для хранения логов в отдельной базе данных.
-
Подключитесь к серверу MariaDB/MySQL:
mysql -u root -p
-
Создайте базу данных для логов:
CREATE DATABASE moodle_log DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
Создайте пользователя с нужными привилегиями:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER ON moodle_log.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;
-
Проверьте подключение:
mysql -u moodleuser -h 127.0.0.1 -p moodle_log
Создайте таблицу mdl_logstore_standard_log с помощью SQL-запроса:
CREATE TABLE mdl_logstore_standard_log (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
eventname VARCHAR(255) NOT NULL,
component VARCHAR(100) NOT NULL,
action VARCHAR(100) NOT NULL,
target VARCHAR(100) NULL DEFAULT NULL,
`objecttable` VARCHAR(50) NULL DEFAULT NULL,
`objectid` BIGINT(20) NULL DEFAULT NULL,
`crud` CHAR(1) NOT NULL,
`edulevel` TINYINT(1) NOT NULL,
contextid BIGINT(20) NOT NULL,
contextlevel TINYINT(3) NOT NULL,
contextinstanceid BIGINT(20) NOT NULL,
userid BIGINT(20) NOT NULL,
`courseid` BIGINT(20) NULL DEFAULT NULL,
`relateduserid` BIGINT(20) NULL DEFAULT NULL,
`anonymous` TINYINT(1) NOT NULL DEFAULT 0,
`other` LONGTEXT NULL DEFAULT NULL,
`timecreated` BIGINT(20) NOT NULL,
`origin` VARCHAR(10) NULL DEFAULT NULL,
`ip` VARCHAR(45) NULL DEFAULT NULL,
`realuserid` BIGINT(20) NULL DEFAULT NULL,
PRIMARY KEY (id),
INDEX eventname_idx (eventname),
INDEX courseid_idx (courseid),
INDEX userid_idx (userid),
INDEX contextid_idx (contextid),
INDEX contextlevel_idx (contextlevel),
INDEX contextinstanceid_idx (contextinstanceid),
INDEX timecreated_idx (timecreated)
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- Авторизуйтесь в Moodle как администратор.
- Перейдите в: Администрирование сайта > Плагины > Логи > Управление логами
- Найдите "Стандартное хранилище логов" и нажмите на иконку "Редактировать".
- Заполните параметры подключения:
| Поле | Значение |
|---|---|
| Таблица базы данных | mdl_logstore_standard_log |
| Постоянное соединение | Да |
| Подключение через Unix-сокет | Оставить пустым (если используется TCP/IP) |
| Порт базы данных | 3306 |
| Хост | 127.0.0.1 |
| Схема базы данных | moodle_log |
| Имя пользователя базы данных | moodleuser |
| Пароль базы данных | Укажите пароль, который был задан для пользователя moodleuser. |
| Сопоставление базы данных | Оставьте пустым (используется utf8mb4_unicode_ci по умолчанию). |
| Размер буфера | 512 (стоит увеличить до 512KB или 1MB для серверов с высокой нагрузкой). |
| Формат JSON | Сжатый текст (Compressed text). |
Сохраните изменения.
Moodle автоматически проверит соединение с новой базой данных. Если возникнут ошибки, проверьте настройки подключения, таблицу и права пользователя.
-
Размер буфера:
- Для тестовых стендов можно оставить 50KB.
- Для серверов с высокой нагрузкой используйте 512KB или 1MB.
-
Мониторинг и очистка логов: В админке Moodle можно настроить автоматическую очистку старых логов: Администрирование сайта > Сервер > Очистка данных
-
Диагностика подключения:
- Проверьте базу данных и пользователя через:
SHOW GRANTS FOR 'moodleuser'@'localhost';
- Убедитесь, что MariaDB слушает на нужном порту в файле
/etc/mysql/my.cnf.
- Проверьте базу данных и пользователя через:
Теперь логи Moodle должны записываться в новую базу данных moodle_log!
Для любых вопросов или уточнений обращайтесь.😊