Что?
На сколько я понял по вопросам и ответам на Stack Overflow и форуме монге: монгу кто-то дергает из вне и заставляет все данные исчезнуть. А следствии монго небезопасна в сети 🤔
Что?
Почему? У меня есть пользователь с паролем и логином
Kirilll
Тут либо авторизацию включать, либо закрывать в инсайд сети под впнами
Сотрудник 236
Стоит пароль🤔
Врубай логгирование и следи.
Den
В гитхабе mongodb_exporter есть все примеры и флаги
да в итоге помогло по этому темплейту mongodb-uri://exporter:pass123@192.168.10.2:27017,192.168.10.3:27017,192.168.10.4:27017
Эрл
router.post('/api/files/download', async (req, res) => { const bucket = new GridFSBucket(db); const downloadStream = bucket.openDownloadStream(new ObjectId('661525377134b70d1f0c976c')); downloadStream.on('error', () => console.log('error cant take file')); downloadStream.on('file', (file) => { console.log(file); res.set({ 'Content-Type': 'audio/wave', }); }); downloadStream.pipe(res); }); Всем привет, как правильно передать этот файл
Никита
Всем добрый день, использую кафка коннектор для MongoDb и столкнулся с проблемой. У меня коннектор настроен на обновление документа в монго, если в кафку прилетает запись с тем же id, что и другое сообщение. Все работает нормально, если структура документа плоская и все поля имеют простое значение, а не вложенное. Но если нужно обновить вложенное значение, то он затирает все вложенные поля, кроме того, что обновилось. Кто-то знает как в коннекторе указать, чтобы он и вложенные структуры обновлял не перезатирая поля, которые не обновились. Сейчас использую вот такую конфигурацию { "collection": "testcollect", "connector.class": "com.mongodb.kafka.connect.MongoSinkConnector", "database": "testdb", "delete.on.null.values": "false", "document.id.strategy": "com.mongodb.kafka.connect.sink.processor.id.strategy.PartialValueStrategy", "document.id.strategy.partial.value.projection.list": "id", "document.id.strategy.partial.value.projection.type": "AllowList", "errors.deadletterqueue.topic.name": "default", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "key.converter.schemas.enable": "false", "mongo.errors.log.enable": "true", "mongo.errors.tolerance": "all", "name": "dist-mongo-sink-id", "tasks.max": "3", "topic.override.content.collection": "testcollect", "topics": "testcollect", "value.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter.schemas.enable": "false", "writemodel.strategy": "com.mongodb.kafka.connect.sink.writemodel.strategy.UpdateOneBusinessKeyTimestampStrategy" }
Нуриддин
Всем добрый день, использую кафка коннектор для MongoDb и столкнулся с проблемой. У меня коннектор настроен на обновление документа в монго, если в кафку прилетает запись с тем же id, что и другое сообщение. Все работает нормально, если структура документа плоская и все поля имеют простое значение, а не вложенное. Но если нужно обновить вложенное значение, то он затирает все вложенные поля, кроме того, что обновилось. Кто-то знает как в коннекторе указать, чтобы он и вложенные структуры обновлял не перезатирая поля, которые не обновились. Сейчас использую вот такую конфигурацию { "collection": "testcollect", "connector.class": "com.mongodb.kafka.connect.MongoSinkConnector", "database": "testdb", "delete.on.null.values": "false", "document.id.strategy": "com.mongodb.kafka.connect.sink.processor.id.strategy.PartialValueStrategy", "document.id.strategy.partial.value.projection.list": "id", "document.id.strategy.partial.value.projection.type": "AllowList", "errors.deadletterqueue.topic.name": "default", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "key.converter.schemas.enable": "false", "mongo.errors.log.enable": "true", "mongo.errors.tolerance": "all", "name": "dist-mongo-sink-id", "tasks.max": "3", "topic.override.content.collection": "testcollect", "topics": "testcollect", "value.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter.schemas.enable": "false", "writemodel.strategy": "com.mongodb.kafka.connect.sink.writemodel.strategy.UpdateOneBusinessKeyTimestampStrategy" }
Затирает? Что вы тут имеете ввиду
Никита
Удаляет поля внутри структуры вложенной, кроме той, которая обновилась
Никита
и вместо 5 полей внутри структуры, будет одно, которое обновилось
Сотрудник 236
Потому что идёт перезапись полей первого уровня, то что вы воспринимаете как "обновление".
Никита
А есть ли возможность не перезаписывать поля, которые не изменились внутри вложенной структуры?
Evgeniy
Добрый день! Пытаюсь поднять конфигурацию с шардами через docker compose. Иду последовательно. Создаю реплику с двумя config server. Указал replica key. Сервера поднялись. Но в логах вижу ошибку, что они не реплицируются. Подключаюсь к одному серверу через mongosh. Все нормально, подключился. Но попытка выполнить любую команду завершается неудачно. Выводит сообщение, что такая команда недоступна без авторизации. Пытался создать пользователя через скрипт инициалиализации, через переменные среды окружения - бесполезно. Вроде бы ошибок нет при запуске mongod, но подключить под этой учётной записью нельзя. Поясните пожалуйста концептуально. Как правильно создавать пользователя в config server. И можно ли получить доступ вообще через mongosh к config серверу. Или я впустую трачу время и к нему может подключиться только mongos? Смотрю видео, читаю статьи, а не выходит каменный цветок. Спасибо!
Нуриддин
Добрый день! Пытаюсь поднять конфигурацию с шардами через docker compose. Иду последовательно. Создаю реплику с двумя config server. Указал replica key. Сервера поднялись. Но в логах вижу ошибку, что они не реплицируются. Подключаюсь к одному серверу через mongosh. Все нормально, подключился. Но попытка выполнить любую команду завершается неудачно. Выводит сообщение, что такая команда недоступна без авторизации. Пытался создать пользователя через скрипт инициалиализации, через переменные среды окружения - бесполезно. Вроде бы ошибок нет при запуске mongod, но подключить под этой учётной записью нельзя. Поясните пожалуйста концептуально. Как правильно создавать пользователя в config server. И можно ли получить доступ вообще через mongosh к config серверу. Или я впустую трачу время и к нему может подключиться только mongos? Смотрю видео, читаю статьи, а не выходит каменный цветок. Спасибо!
rs.status() что пишет о втором сервере
Evgeniy
Пишет, что такую команду может выполнить только авторизованный пользователь
Нуриддин
Хм, вы зашли в базу админа от пользователя admin?
Нуриддин
Ну или любого пользователя с админскими приведениями там
Сергей
Всем привет! Решил я попробовать снять метрики с монги через этот экспортер https://github.com/percona/mongodb_exporter/?tab=readme-ov-file Создал пользователя,дал ему права -все как по инструкции.Запустил экспортер с сервера мониторинга к монге( А монга на винде а сервер мониторинга на debian) Вроде запустился экспортер(порты открыл) но в браузере ничего не кажет. Где я мог ошибиться? ) /mongodb_exporter --mongodb.uri="mongodb://Login:pwd@192.168.1.1:27017" --web.listen-address=:17001 level=info ts=2024-04-09T16:54:06.591Z caller=tls_config.go:274 msg="Listening on" address=[::]:17001 level=info ts=2024-04-09T16:54:06.591Z caller=tls_config.go:277 msg="TLS is disabled." http2=false address=[::]:17001
Нуриддин
Мне главное что вы написали после значения порта
Сергей
Эм а по какой ссылке в браузере смотрите
Да вот так пробовал http://192.168.1.1:17001/ и еще вот http://192.168.1.1:17001/metrics
Нуриддин
Нуриддин
Там должны быть метрики
Сергей
ФРагмент моего скриншота с ошибками)
Нуриддин
192.168.1.1 вы для примера дали? По-моему это адрес роутера по дефолту
Сергей
Да должны- я их ждал а их нет. Это для примера
Сотрудник 236
ФРагмент моего скриншота с ошибками)
Пишет же что нет доступа. Проверь работает что-нибудь на указанном порту. netstat -tna и ищи нужный порт
Сотрудник 236
Это для ipv6. Т.е. ты должен по этому адресу обратиться по протоколу ipv6. 192.168.1.1 это ipv4. Проверь настройки своего приложения (где указано какие порты и адреса слушать).
Сотрудник 236
Ну там на гитхабе порт 17001 указан. В ipv4 в списке его как раз таки нет.
Чел, ты где это запускаешь? На гитхабе или у себя на сервере? Ищи конфиги где лежат и там смотри. Можешь сразу по ipv6 заходить, судя по ответу netstat там на всех адресах ipv6 он ответит.
Сергей
Сотрудник 236
в настройки смотри, а не в доки
Сергей
Valeriya
Здравствуйте! Мы хотим почистить монго от старых записей ( старше 90 дней ) у нас replica set с 3 нод и у нас 3.8 терабайт данных ( в /var/lib/mongodb ) Очищаем базу от старых записей вот таким способом db.Clicks.deleteMany({ "callData.path": «/info-joomla», "callData.date": { $lt: new Date(new Date().getTime() - (86400000 * 90)) } }); db.Clicks.deleteMany({ "callData.path": «/info-drupal, "callData.date": { $lt: new Date(new Date().getTime() - (86400000 * 90)) } }); И после завершения этих двух запросов место на диске не освобождается , приходится запускать команду для compaction db.runCommand( { compact: ‘Clicks’ } ); После compaction место освобождается, но сама очистка происходит очень долго и достаточно сильно грузит I/O , так же сам compaction влияет на производительность, подскажите пожалуйста может быть есть способ сделать это более продуктивно? быстрее и с меньшей нагрузкой
Valeriya
Читайте тред https://t.me/mongodb_ru/136751
Спасибо! А все таки мне для освобождения диска нужно делать полный compaction? Или сама монга потом после очистки будет делать что то типо incremental compaction?
Valeriya
Почистить дисковое пространство от старых данных
Nick
Почистить дисковое пространство от старых данных
зачем, чтобы в мониторинге циферка красивая стала?
Valeriya
Сложно бекапить базу такого размера ну и как выяснилось данные старше 90 дней можно удалять
Valeriya
Так то наоборот циферка красивая когда в терабайтах отчет идет 🥲
Valeriya
Через percona backup manager
Nick
Через percona backup manager
а как на него влияет размер занимаемого места на диске? у вас логический или физ бэкап?
Vercello
Добрый день! Можете пожалуйста посоветовать хорошие книги по Mongo для новичка?
Kirilll
Добрый день! Можете пожалуйста посоветовать хорошие книги по Mongo для новичка?
https://ozon.ru/t/l3lqVZ4 Правда это для версии 4.2, но базу взять можно вполне отсюда Если есть у кого то обновленная тоже с радостью почитаю)
Сотрудник 236
Добрый день! Можете пожалуйста посоветовать хорошие книги по Mongo для новичка?
Курсы от самой монги. Там на инглише, но разберёшься.
Anuar
Ребят, всем привет. Такая проблемка появилась работал я значит с монгобд + мангус. И в один момент добавил новую коллекцию и бац вся бдшка удаляется.
Anuar
Я новый пользователь монго и хотел узнать как можно посмотреть логи ?
Kirilll
Кто-то тут писал, что через Атлас, вроде, такое может быть
Anuar
Через ui работаешь?
Да через ui создавал
Anuar
Потом делал запрос через свой фронт
Kirilll
Поищи тут в чате Кто-то писал Рекомендации юзать моргу локально и через консоль, как минимум))
Anuar
Окей
Anuar
Но это жесть
Anuar
Я испугался
Юлиан🦉
Привет. Есть необходимость прогонять на первый докер-композ деплой кучу комманд(инит реплики, конфиг, создание юзеров), при последующих хотелось бы ускорить процесс запуска. Как это лучше сделать?
Evgeniy
Подскажите пожалуйста для чего нужен логин/пароль указанные как INIT в параметрах окружения при создании контейнера. Контейнер создаётся. Mongod с ключом --auth запускается. Я могу подключиться через mongosh анонимно. Но не могу выполнить никакой команды, потому что не авторизованный. Но если я пытаюсь авторизоваться с помощью init логина/пароль получаю authorization failed. Может надо что-то в mongod.conf прописать? Что нужно сделать, чтобы подключиться к серверу?
Evgeniy
через addUser или createUser предварительно создавать польователя
Поясните, пожалуйста, это речь идёт про mongod.conf?
Юлиан🦉
Поясните, пожалуйста, это речь идёт про mongod.conf?
Нет, включаешь базу без аус, подключаешься, создаёшь юзера, перезапускаешься
Evgeniy
Не даёт. Говорит не авторизован
Evgeniy
Без флага тоже
Evgeniy
Понятно, вы меня натолкнули на идею. Спасибо
Тут и
Всем привет! Порекомендуйте пожалуйста курсы по монго. Чтобы были на уровне тех, что у postgres pro по постгре
Нуриддин
Лучше тех что уже есть на официальном сайте вряд-ли найдёте, разве только побочные курсы при освоении какого-то языка программирования
-
Всем привет! Порекомендуйте пожалуйста курсы по монго. Чтобы были на уровне тех, что у postgres pro по постгре
Официальная документация и их ютуб канал, если с английским туго, то яндекс в помощь
Val
Всем привет, кто поможет составить запрос группировки? Не могу осилить:(
Нуриддин