mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
fix all homeworks in 03-sysadmin
This commit is contained in:
@@ -3,7 +3,9 @@
|
||||
|
||||
## Q/A
|
||||
|
||||
1. Создайте самостоятельно простой unit-файл для [node_exporter](https://github.com/prometheus/node_exporter)
|
||||
### Задача 1
|
||||
|
||||
> Создайте самостоятельно простой unit-файл для [node_exporter](https://github.com/prometheus/node_exporter)
|
||||
|
||||
Для начала необходимо установить `node_exporter` в систему. Для этого воспользуемся [официальным гайдом](https://prometheus.io/docs/guides/node-exporter/#installing-and-running-the-node-exporter),
|
||||
а именно:
|
||||
@@ -119,7 +121,9 @@ sudo systemctl status prometheus_node_exporter
|
||||
<...>
|
||||
```
|
||||
|
||||
2. Приведите несколько опций, которые вы бы выбрали для базового мониторинга хоста по CPU, памяти, диску и сети.
|
||||
### Задача 2
|
||||
|
||||
> Приведите несколько опций, которые вы бы выбрали для базового мониторинга хоста по CPU, памяти, диску и сети.
|
||||
|
||||
По умолчанию в `node_exporter` включено достаточно много различной информации (~1000 строк). Поэтому, на мой взгляд,
|
||||
для начала стоит включить только следующие флаги:
|
||||
@@ -130,7 +134,9 @@ sudo systemctl status prometheus_node_exporter
|
||||
* `--collector.os` - отображение информации об операционной системе
|
||||
* `--collector.time` - отображение информации о текущем системном времени
|
||||
|
||||
3. Ознакомьтесь с метриками, которые по умолчанию собираются `Netdata`, и с комментариями, которые даны к этим метрикам.
|
||||
### Задача 3
|
||||
|
||||
> Ознакомьтесь с метриками, которые по умолчанию собираются `Netdata`, и с комментариями, которые даны к этим метрикам.
|
||||
|
||||
`netdata` отображает следующие метрики:
|
||||
* `cpu` - утилизация CPU по всем ядрам
|
||||
@@ -143,12 +149,16 @@ sudo systemctl status prometheus_node_exporter
|
||||
|
||||
Доступны так же подробные графики по каждой из категорий.
|
||||
|
||||
4. Можно ли по выводу `dmesg` понять, осознает ли ОС, что загружена не на настоящем оборудовании, а на системе виртуализации?
|
||||
### Задача 4
|
||||
|
||||
> Можно ли по выводу `dmesg` понять, осознает ли ОС, что загружена не на настоящем оборудовании, а на системе виртуализации?
|
||||
|
||||
В `dmesg` можно найти следующий вывод `Detected virtualization oracle.` от `systemd`. Таким образом да, можно понять, что система осознаёт,
|
||||
что находится внутри виртуальной машины, а не на физическом оборудовании.
|
||||
|
||||
5. Как настроен `sysctl fs.nr_open` на системе по-умолчанию? Какой другой существующий лимит не позволит достичь такого числа?
|
||||
### Задача 5
|
||||
|
||||
> Как настроен `sysctl fs.nr_open` на системе по-умолчанию? Какой другой существующий лимит не позволит достичь такого числа?
|
||||
|
||||
```shell
|
||||
sysctl fs.nr_open
|
||||
@@ -159,7 +169,9 @@ fs.nr_open = 1048576
|
||||
Для текущей сессии bash можно посмотреть и изменить ограничение при помощи команды `ulimit -n`.
|
||||
Для конкретных групп и пользователей ограничения можно задать в файле `/etc/security/limits.conf`.
|
||||
|
||||
6. Запустите любой долгоживущий процесс в отдельном неймспейсе процессов; покажите, что ваш процесс работает под PID 1 через `nsenter`.
|
||||
### Задача 6
|
||||
|
||||
> Запустите любой долгоживущий процесс в отдельном неймспейсе процессов; покажите, что ваш процесс работает под PID 1 через `nsenter`.
|
||||
|
||||
Запустим процесс `bash` в изолированном пространстве имён:
|
||||
|
||||
@@ -195,10 +207,12 @@ root 21 0.0 0.3 8960 4000 pts/1 S 03:35 0:00 -bash
|
||||
root 52 0.0 0.3 10616 3252 pts/1 R+ 03:36 0:00 ps aux
|
||||
```
|
||||
|
||||
7. Найдите информацию о том, что такое `:(){ :|:& };:`.
|
||||
Запустите эту команду в своей виртуальной машине. Некоторое время все будет "плохо", после чего (минуты) – ОС должна стабилизироваться.
|
||||
Вызов `dmesg` расскажет, какой механизм помог автоматической стабилизации.
|
||||
Как настроен этот механизм по-умолчанию, и как изменить число процессов, которое можно создать в сессии?
|
||||
### Задача 7
|
||||
|
||||
> Найдите информацию о том, что такое `:(){ :|:& };:`.
|
||||
> Запустите эту команду в своей виртуальной машине. Некоторое время все будет "плохо", после чего (минуты) – ОС должна стабилизироваться.
|
||||
> Вызов `dmesg` расскажет, какой механизм помог автоматической стабилизации.
|
||||
> Как настроен этот механизм по-умолчанию, и как изменить число процессов, которое можно создать в сессии?
|
||||
|
||||
Команда - это `fork bomb`, которую можно разделить на следующие блоки:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user