Настроить систему мониторинга
Цель: детально мониторить активность всех серверов и процессов для анализа и своевременного уведомления/принятие решения по результатам. Мы хотим, что бы в случае падения сервисов – сервисы автоматически поднимались, в случае невозможности поднятия сервиса – приходило уведомление по SMS. Так же хотим более детально выявлять и анализировать по процессам сервисов, что бы оптимизировать сложные, тяжелые или высоконагрузочные процессы.
Предметы мониторинга:
- активность CPU (нагрузка, алерт на критическую нагрузку)
- дисковое пространство (использование, алерт на критическо малое оставшееся место)
- использование Ram (чем детальнее будет мониториться использование – тем лучше, если есть возможность – мониторитить прямо по процессам, которые используют и колько используют, алерт на критическое количество оставшейся Ram)
- мониторинг MongoDB (профайлинг, использование ram, количество операций и т.д., чем детальнее – тем лучше, алерты на ключевые события)
- мониторинг Nginx и Network (входящий-исходящий траффик, подозрения на ddos-атаки, переборы паролей и .д., скорость отклика страниц и сервисов, алерты на ключевые события)
- мониторинг RabbitMQ (кол-во процессов и очередей, нагрузки, время работы очередей, алерты на ключевые события)
Предметы контроля стабильности:
- доступность серверов извне
- работа python-процессов, скорость отклика, занимаемая память, используемый процессор, активность процессов
- работа RabbitMQ, скорость отклика, активность процессов
- работа MongoDB, скорость отклика, скорость средней операции, активность процессов
- работа дополнительных процессов (разберем детальнее необходимый список)
Контроль стабильности должен принимать решения о перезапуске зависших процессов, или запуске упавших процессов, принимать все усилия для самостоятельного запуска (с уведомлением о происшествии на почту) или, в случае, если не получилось самостоятельно справиться – с уведомлением по SMS на список телефонов.
Нужно предложить решения по подуктам, которые могут закрыть эти вопросы. Это может быть не один продукт, а несколько.