Вопрос или проблема
У меня есть сервер Ubuntu 16.04 на OVH. Я запускаю mongod так: mongod -f /etc/mongod.conf &
Он выключается каждый день, и я не могу найти причину.
Я пытался проверить логи, но это огромный файл, и я не могу найти ничего полезного.
Может быть, вы можете мне помочь?
Вот mongo --version
Версия оболочки MongoDB v3.4.10
версия git: 078f28920cb24de0dd479b5ea6c66c644f6326e9
версия OpenSSL: OpenSSL 1.0.2g 1 Мар 2016
аллокатор: tcmalloc
модули: нет
среда сборки:
distmod: ubuntu1604
distarch: x86_64
target_arch: x86_64
Вот детали сервера
ЦП
Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz
Ядра : 8
Кэш : 8192KB
Оперативная память
2x 8192MB
Диски
2 x 240 ГБ
Материнская плата
P8B-M Series
А вот mongod.conf
# mongod.conf
# для документации всех опций см.:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Где и как хранить данные.
storage:
dbPath: /home/mongodb_data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# куда записывать данные логирования.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# сетевые интерфейсы
net:
port: 27017
bindIp: 127.0.0.1,10.17.0.10
#processManagement:
#security:
# authorization: enabled
#operationProfiling:
#replication:
replication:
replSetName: incredo
#sharding:
## Опции, доступные только для корпоративной версии:
#auditLog:
#snmp:
Может быть, ваши сценарии резервного копирования неразумны и потребляют ресурсы, из-за чего остальные службы сервера отключаются каждую ночь во время выполнения резервных копий.
Ответ или решение
Почему MongoDB отключается каждый день и как это исправить?
Понимание проблемы
Вы столкнулись с проблемой, когда ваш сервер MongoDB на базе Ubuntu 16.04 отключается ежедневно. Ваша конфигурация, логирование и спецификации сервера предоставляют важные подсказки для диагностики. Рассмотрим возможные причины отключения и пути их устранения.
Возможные причины отключения
-
Недостаток ресурсов: Как вы упомянули, в традиционно используемой конфигурации виртуальных машин ресурсы могут быть ограничены. Если в вашу инфраструктуру включены резервные копии, которые выполняются одновременно с MongoDB, это может вызывать перегрузку системы.
-
Процессы резервного копирования: Если у вас есть резервные скрипты, возможно, они требуют значительных ресурсов, что приводит к сокращению доступности памяти и процессора. Это может стать причиной неконтролируемого завершения работы mongod.
-
Ошибки и проблемы в конфигурации: Конфигурационные факторы, такие как неправильные значения в
mongod.conf
, или конфликтующие настройки сети могут также вызвать сбой работы сервера. -
Логи: Хотя вы указали, что логи велики и сложны для анализа, они могут содержать важные подсказки: ищите сообщения о сбоях, превышении ресурсов и других аномалиях.
Как диагностировать проблему
-
Проверка логов: Используйте команды для анализа логов и выделяйте сообщения об ошибках. Например, откройте лог с помощью
less
и используйтеgrep
для фильтрации ошибок.less /var/log/mongodb/mongod.log grep -iE 'error|fail|warn' /var/log/mongodb/mongod.log
-
Мониторинг серверных ресурсов: Настройте территорию мониторинга (например, с помощью
htop
или инструментов, таких какGrafana
иPrometheus
) для отслеживания использования CPU и RAM во время резервного копирования. -
Анализ доступа: Проверьте, подключается ли к вашему серверу слишком много клиентов, что может вызвать нагрузку на систему.
Процесс Исправления
-
Оптимизация резервного копирования:
- Измените расписание выполнения резервного копирования на время, когда нагрузка на сервер минимальна.
- Научитесь использовать инкрементные резервные копии, чтобы минимизировать объем данных, которые копируются каждый раз.
-
Настройка конфигурации MongoDB:
- Проверьте, правильны ли у вас параметры настройки хранилища (
dbPath
,journal
). - Рассмотрите возможность использования
WiredTiger
как движка хранения, если вы не используете его, так как он более эффективен в использовании памяти.
- Проверьте, правильны ли у вас параметры настройки хранилища (
-
Добавление ресурсов: Если проблема вызвана нехваткой ресурсов, подумайте о добавлении ОЗУ или более мощном процессоре. Это обеспечит стабильность работы вашего сервера.
-
Регулярное обслуживание: Периодическая проверка системных логов, обновление ПО и проверка на наличие уязвимостей поможет поддерживать сервер в рабочем состоянии.
Заключение
Ошибка, о которой вы сообщаете, может возникать по нескольким причинам, начиная от нехватки ресурсов и заканчивая неэффективными процессами резервного копирования. Систематический подход к диагностике и исправлению проблем позволит вам стабилизировать работу сервера MongoDB. Не забывайте о важности регулярного мониторинга и наладки конфигурации в зависимости от изменений в вашем окружении или нагрузке.