10.12.2022
Общие сведения:
Читатели узнают, как настроить размер MongoDB, используемой UniFi.
UniFi использует MongoDB для хранения информации о логах пользователей, контроллера и т.п. База данных может достигать больших размеров, хотя UniFi ограничивает авто-удаление для аудита.
Мы предлагаем скрипт, который поможет очистить базу данных.
Скрипт
// keep N-day worth of data
days=30;
dryrun=true;
use ace;
collectionNames = db.getCollectionNames();
for (i=0; i < collectionNames.length; i++) {
name = collectionNames[i];
query = null;
if (name.indexOf('stat')==0 || name.indexOf('event')==0 || name.indexOf('alarm')==0) {
query = {time: {$lt:new Date().getTime()-days*86400*1000}};
}
if (name.indexOf('session')==0) {
query = {assoc_time: {$lt:new Date().getTime()/1000-days*86400}};
}
if (name.indexOf('user')==0) {
query = {last_seen: {$lt:new Date().getTime()/1000-days*86400}};
}
if (query) {
count = db.getCollection(name).find(query).count();
print((dryrun ? "[dryrun] " : "") + "pruning " + count + " entries from " + name + "... ");
if (!dryrun)
db.getCollection(name).remove(query);
}
}
if (!dryrun) db.repairDatabase();
Убедитесь, что скрипт верный перед тем, как выполнить следующую команду:
mongo --port=27117 < prune.js
По умолчанию, MongoDB находится в режиме 'dryrun' и сообщит о том, что сделала.
Возврат к списку