From 17645cb71798369c9ffd6520ffc131c892c1b8a0 Mon Sep 17 00:00:00 2001 From: dannc Date: Thu, 29 Sep 2022 10:32:06 +0700 Subject: [PATCH] homework 10.2: complete tasks 1-2 --- readme.md | 1 + src/homework/10-monitoring/10.2/readme.md | 126 ++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 src/homework/10-monitoring/10.2/readme.md diff --git a/readme.md b/readme.md index a514612..be8c3ed 100644 --- a/readme.md +++ b/readme.md @@ -48,3 +48,4 @@ * [09.5. Teamcity](/src/homework/09-ci/9.5) * [09.6. Gitlab](/src/homework/09-ci/9.6) * [10.1. Зачем и что нужно мониторить](/src/homework/10-monitoring/10.1) +* [10.2. Системы мониторинга](/src/homework/10-monitoring/10.2) diff --git a/src/homework/10-monitoring/10.2/readme.md b/src/homework/10-monitoring/10.2/readme.md new file mode 100644 index 0000000..d244a74 --- /dev/null +++ b/src/homework/10-monitoring/10.2/readme.md @@ -0,0 +1,126 @@ +Выполнение [домашнего задания](https://github.com/netology-code/mnt-homeworks/blob/MNT-13/10-monitoring-02-systems/README.md) +по теме "10.2. Системы мониторинга" + +## Q/A + +### Задание 1 + +> Опишите основные плюсы и минусы pull и push систем мониторинга + +#### Pull-модель + +Плюсы: +* явное определение сервисов, с которых собираются данные, то есть отсутствие данных, +получаемых из неожиданных мест +* возможность контролировать периодичность сбора метрик +* возможность защитить методы получения метрик на стороне сервисов различными способами (basic-аутентификация,tls-сертификаты, клиентские сертификаты) +* простая модель получения данных, которая подразумевает упрощённые методы отладки + +Минусы: +* необходимость изменять конфигурацию сборщика для добавления новых сервисов либо сконфигурировать autodiscovery +* при нагрузке на сервис есть вероятность, что сборщик не сможет получить метрики + +#### Push-модель + +Плюсы: +* для начала сбора метрик достаточно установить агента +* возможность использовать протокол udp для отдачи метрик + +Минусы: +* агент - дополнительная точка отказа. Таким образом, есть вероятность, +что сервис работает в штатном режиме, а вот агент перестал работать. +* сложная отладка отправки метрик + +### Задание 2 + +> Какие из ниже перечисленных систем относятся к push модели, а какие к pull? А может есть гибридные? +> +> * Prometheus +> * TICK +> * Zabbix +> * VictoriaMetrics +> * Nagios + +| Сервис | Модель | Дополнительный комментарий | +|-----------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Prometheus | pull | есть механизм [pushgateway](https://prometheus.io/docs/practices/pushing/), у которого prometheus собирает метрики по pull-модели | +| TICK | push | | +| Zabbix | hybrid | основная модель - pull (сбор данных с агентов), но есть возможность использовать push-модель через [zabbix-sender](https://www.zabbix.com/documentation/5.2/ru/manual/concepts/sender) | +| VictoriaMetrics | hybrid | | +| Nagios | hybrid | есть агенты, которые работают по pull-модели, но так же есть поддержка push-модели по протоколу `SNMP` | + +### Задание 3 + +> Склонируйте себе [репозиторий](https://github.com/influxdata/sandbox/tree/master) и запустите TICK-стэк, +> используя технологии docker и docker-compose.(по инструкции ./sandbox up ) +> +> В виде решения на это упражнение приведите выводы команд с вашего компьютера (виртуальной машины): +> +> - curl http://localhost:8086/ping +> - curl http://localhost:8888 +> - curl http://localhost:9092/kapacitor/v1/ping +> +> А также скриншот веб-интерфейса ПО chronograf (`http://localhost:8888`). + +// todo + +### Задание 4 + +> Изучите список [telegraf inputs](https://github.com/influxdata/telegraf/tree/master/plugins/inputs). +> - Добавьте в конфигурацию telegraf плагин - [disk](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/disk): +> +> ``` +> [[inputs.disk]] +> ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] +> ``` +> +> - Так же добавьте в конфигурацию telegraf плагин - [mem](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/mem): +> +> ``` +> [[inputs.mem]] +> ``` +> +> - После настройки перезапустите telegraf. +> +> - Перейдите в веб-интерфейс Chronograf (`http://localhost:8888`) и откройте вкладку `Data explorer`. +> - Нажмите на кнопку `Add a query` +> - Изучите вывод интерфейса и выберите БД `telegraf.autogen` +> - В `measurments` выберите mem->host->telegraf_container_id , а в `fields` выберите used_percent. +> Внизу появится график утилизации оперативной памяти в контейнере telegraf. +> - Вверху вы можете увидеть запрос, аналогичный SQL-синтаксису. +> Поэкспериментируйте с запросом, попробуйте изменить группировку и интервал наблюдений. +> - Приведите скриншот с отображением +> метрик утилизации места на диске (disk->host->telegraf_container_id) из веб-интерфейса. + +### Задание 5 + +> Добавьте в конфигурацию telegraf следующий плагин - [docker](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/docker): +> +> ``` +> [[inputs.docker]] +> endpoint = "unix:///var/run/docker.sock" +> ``` +> +> Дополнительно вам может потребоваться донастройка контейнера telegraf в `docker-compose.yml` дополнительного volume и +> режима privileged: +> ``` +> telegraf: +> image: telegraf:1.4.0 +> privileged: true +> volumes: +> - ./etc/telegraf.conf:/etc/telegraf/telegraf.conf:Z +> - /var/run/docker.sock:/var/run/docker.sock:Z +> links: +> - influxdb +> ports: +> - "8092:8092/udp" +> - "8094:8094" +> - "8125:8125/udp" +> ``` +> +> После настройки перезапустите telegraf, обновите веб интерфейс и приведите скриншотом список `measurments` в +> веб-интерфейсе базы telegraf.autogen . Там должны появиться метрики, связанные с docker. +> +> Факультативно можете изучить какие метрики собирает telegraf после выполнения данного задания. + +// todo