Если вы забыли / не знаете пароль администратора (admin) интерфейса сервера, его можно сбросить в значение по умолчанию (admin) путем правки базы данных:

root@qow-clients:/home/qow/logs# mongo qos_db
MongoDB shell version v4.4.10
...
---
> db.user.update({"username" : "admin"}, {$set:{"password" : "$2a$10$t5TI2p94yakRGIAOQygoUO258u.rTbohYR7Ix0CkVIChQwKXVhxHG",}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Состояние БД

Для контроля состояния БД используется страница Администрирование/Статистика БД или специальные средства администратора для MongoDB.

На странице "Статистика БД" можно увидеть коллекции и индексы базы данных и оценить их размер и состав. При необходимости индексы для выбранной коллекции можно пересоздать при помощи ссылки "recreate", доступной к колонке "Индексы".

Ограничение "глубины" хранения данных

Для предотвращения неконтролируемого разрастания БД используются TTL-индексы. Для коллекций созданы скрипты для пересоздания TTL-индексов (они же используются при переиндексации коллекций, упомянутой в предыдущем разделе). "Время жизни" данных. задается в секундах. При необходимости использовать определенные значения TTL (Time To Live, время жизни), администратор системы может задать их значения в диапазоне от 2592000 до 15552000 (30 - 180 дней)  при помощи параметра com.netams.database.ttl.seconds.

Например

com.netams.database.ttl.seconds=2628000

Если параметр com.netams.database.ttl.seconds не задан, будут использованы наши значения по умолчанию, удобные в большинстве случаев. При наличии корректного значения параметра после пересоздания индекса время жизни записей во всех коллекциях с TTL-индексами будет одинаковым.  

В случае отсутствия рекомендованного TTL-индекса в коллекции, на странице "Статистика БД" будет отображаться предупредительное сообщение для соответствующей коллекции. 


Пример страницы "Статистика БД" с отсутствующим рекомендованным индеком


Ограничение глубины хранения данных при помощи планировщика задач и индивидуальных настроек коллекций 

Возможна настройка числа дней хранения данных в отдельных коллекциях независимо от индексов и их настроек TTL 

Для ряда коллекций можно указать время хранения записей (поле "createdAt" сравнивается с текущей датой) в днях. При нажатии на ссылку "Редактировать" в колонке "Глубина хранения" для соответствующей коллекции открывается диалог для редактирования числа дней хранения записей. Непосредственно удаление записей выполняется фоновым процессом сервера, время срабатывания можно настроить при помощи параметра "com.netams.database.ttl.schedule.cron" в application.properties. Примеры значений;

0 2 * * * * - ежедневно в 2 часа 
0 * * * * * - каждый час
- - отключено (дефис, т.е. com.netams.database.ttl.schedule.cron=-)



Для каждой коллекции можно задать комбинацию настроек времени хранения, позволяющую хранить в одной коллекции данных разного типа в течение разного времени. Например:
настройки для хранения данных в коллекции accessPointSignalLevel. Записи без указания значения true в поле aggregated (обычные данные) сохраняются 14 дней, любые записи (независимо от того, что указано в aggregated) хранятся 180 дней. То есть, исходные данные сохраняем 2 недели, но агрегированные (их значительно меньше) сохраняем в течение полугода. При указании нескольких условий, они объединяются условием "И". С проверкой по "createdAt" тоже. То есть "aggregated = false AND createdAt < (now - 14 days)". 

  • Условие для TTL: aggregated = false
    Поле: createdAt TTL: 14days
  • Условие для TTL:
    Поле: createdAt TTL: 180days


  • No labels