В результате выполнения этого задания вы:
- Познакомитесь со средством сбора метрик node_exporter и средством сбора и визуализации метрик NetData. Такого рода инструменты позволяют выстроить систему мониторинга сервисов для своевременного выявления проблем в их работе.
- Построите простой systemd unit файл для создания долгоживущих процессов, которые стартуют вместе со стартом системы автоматически.
- Проанализируете dmesg, а именно часть лога старта виртуальной машины, чтобы понять, какая полезная информация может там находиться.
- Поработаете с unshare и nsenter для понимания, как создать отдельный namespace для процесса (частичная контейнеризация).
- Убедитесь, что у вас установлен Netdata c ресурса с предподготовленными пакетами или
sudo apt install -y netdata
.
- Документация по systemd unit файлам
- Документация по параметрам sysctl
-
На лекции мы познакомились с node_exporter. В демонстрации его исполняемый файл запускался в background. Этого достаточно для демо, но не для настоящей production-системы, где процессы должны находиться под внешним управлением. Используя знания из лекции по systemd, создайте самостоятельно простой unit-файл для node_exporter:
- поместите его в автозагрузку,
- предусмотрите возможность добавления опций к запускаемому процессу через внешний файл (посмотрите, например, на
systemctl cat cron
), - удостоверьтесь, что с помощью systemctl процесс корректно стартует, завершается, а после перезагрузки автоматически поднимается.
-
Ознакомьтесь с опциями node_exporter и выводом
/metrics
по-умолчанию. Приведите несколько опций, которые вы бы выбрали для базового мониторинга хоста по CPU, памяти, диску и сети. -
Установите в свою виртуальную машину Netdata. Воспользуйтесь готовыми пакетами для установки (
sudo apt install -y netdata
).После успешной установки:
- в конфигурационном файле
/etc/netdata/netdata.conf
в секции [web] замените значение с localhost наbind to = 0.0.0.0
, - добавьте в Vagrantfile проброс порта Netdata на свой локальный компьютер и сделайте
vagrant reload
:
config.vm.network "forwarded_port", guest: 19999, host: 19999
После успешной перезагрузки в браузере на своем ПК (не в виртуальной машине) вы должны суметь зайти на
localhost:19999
. Ознакомьтесь с метриками, которые по умолчанию собираются Netdata и с комментариями, которые даны к этим метрикам. - в конфигурационном файле
-
Можно ли по выводу
dmesg
понять, осознает ли ОС, что загружена не на настоящем оборудовании, а на системе виртуализации? -
Как настроен sysctl
fs.nr_open
на системе по-умолчанию? Определите, что означает этот параметр. Какой другой существующий лимит не позволит достичь такого числа (ulimit --help
)? -
Запустите любой долгоживущий процесс (не
ls
, который отработает мгновенно, а, например,sleep 1h
) в отдельном неймспейсе процессов; покажите, что ваш процесс работает под PID 1 черезnsenter
. Для простоты работайте в данном задании под root (sudo -i
). Под обычным пользователем требуются дополнительные опции (--map-root-user
) и т.д. -
Найдите информацию о том, что такое
:(){ :|:& };:
. Запустите эту команду в своей виртуальной машине Vagrant с Ubuntu 20.04 (это важно, поведение в других ОС не проверялось). Некоторое время все будет "плохо", после чего (минуты) – ОС должна стабилизироваться. Вызовdmesg
расскажет, какой механизм помог автоматической стабилизации.
Как настроен этот механизм по-умолчанию, и как изменить число процессов, которое можно создать в сессии?
В качестве решения ответьте на вопросы и опишите каким образом эти ответы были получены
В личном кабинете отправлена ссылка на .md файл в вашем репозитории.
Зачет - выполнены все задания, ответы даны в развернутой форме, приложены соответствующие скриншоты и файлы проекта, в выполненных заданиях нет противоречий и нарушения логики.
На доработку - задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки.