diff --git a/README.md b/README.md index e6da2cd..caacaf0 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,11 @@ ## Краткая архитектура 💡 * Главный сервер (general_server): настраивается вручную, вписывается первым под группой `servers` в inventory-файл и настраивается в файле **general_server.yml**, который должен быть расположен в папке **host_vars**. * Terraform идёт в облако Yandex Cloud и поднимает нужное количество серверов (настраивается в файле **variable.tf**). После развертывания серверов создает inventory-файл с настройками каждой машины в папке **host_vars**, чтобы запустить плейбук можно было без ручного ввода. -* Ansible получает готовую конфигурацию и идёт на general_server, чтобы поднять два контейнера: Prometheus и Grafana. Он динамически подставляет переменные из папки **group_vars**, чтобы контейнеры получили готовую конфигурацию. Затем он идёт на остальные сервера, ставит node_exporter с официального репозитория на GitHub, настраивает systemd-службу и автозапуск. +* Ansible получает готовую конфигурацию и идёт на general_server, чтобы поднять три контейнера: prometheus, grafana и alertmanager. Он динамически подставляет переменные из папки **group_vars**, чтобы контейнеры получили готовую конфигурацию. Затем он идёт на остальные сервера, ставит node_exporter с официального репозитория на GitHub, настраивает systemd-службу и автозапуск. ## Безопасность 🔒: * Пароли и логины хранятся в папке **group_vars** в файле **vault.yml**, который, в свою очередь, зашифрован мастер-паролем хранилища Ansible Vault. -* Сразу настраивается basic_auth на всех сервисах: Grafana, Ansible, Node_Exporters. +* Сразу настраивается basic_auth на всех сервисах: Grafana, Node_Exporters. * Стейт Terraform и ключи игнорируются Git. * Подключение к серверам идёт строго по SSH-ключам. @@ -33,7 +33,11 @@ ### Вам понадобится: * Аккаунт Yandex Cloud с ключами. Можно получить тут: Консоль Yandex Cloud. Поместите ключи в папку **terraform-infra**. * Операционная система Linux с установленной на ней terraform, ansible и git. Команда для установки (работает на Ubuntu и Debian): `sudo apt update && sudo apt install -y ansible terraform git` +* Токен вашего телеграмм бота и ваш личный ID. Можно получить здесь: [BotFather](https://t.me/BotFather). ID можно узнать здесь: [Get ID](https://t.me/userinfobot). +#### Не обязательно: +* Домен для получения ssl сертификата. +*** ### Конкретные действия для развёртывания: * Клонируйте и перейдите в скачанный репозиторий командой: `git clone https://github.com/LeoR156/metrics-prometheus-grafana && cd metrics-prometheus-grafana/group_vars/all/` * Откройте файл **vault.yml** и сотрите содержимое командой: `> vault.yml && nano vault.yml`. @@ -48,8 +52,11 @@ prom_admin_password: "ваш_пароль_для_prometheus" exporter_user: "ваш_логин_для_exporters" exporter_password: "ваш_пароль_для_exporters" +domen: "ваш_домен" # Удалите строку, если нет. email: "ваш_email" -domen: "ваш_домен" + +telegram_bot_token: "токен_вашего_бота" +telegram_chat_id: "ваш_телеграм_id" ``` * Примените изменения: `Ctrl + X`, `Y` и `Enter`. * Желательно применить шифрование командой: `ansible-vault encrypt vault.yml`. Придумайте и введите пароль. @@ -69,7 +76,7 @@ ansible_ssh_private_key_file: "путь_до_ssh_ключа" * Пару-тройку минут — и Ansible сделает свою работу! ### Подключение и первый дашборд: -* Зайдите на IP главного сервера, порт 3001. Шаблон: `http://:3001` +* Зайдите на IP главного сервера, порт 3001. Шаблон: `http://:3001`. **Важно:** Если указывали домен, то переходите прямо на него. * Введите логин и пароль от Grafana, который вы задавали ранее в файле **vault.yml**. * Зайдите на вкладку **Dashboards** слева экрана > нажмите **New** справа > нажмите **Import dashboard** > вставьте ID `1860` и нажмите **Load** > затем снова **Import**. @@ -78,6 +85,6 @@ ansible_ssh_private_key_file: "путь_до_ssh_ключа" *** # Планы дальнейшего развития проекта: -* Разбить таски по ролям Ansible. >>> сделано :white_check_mark: -* Добавить возможность получения SSL-сертификата ради безопасного HTTPS соединения. >>> сделано :white_check_mark: -* Прикрутить Alertmanager + Telegram Notifications. +* ~~Разбить таски по ролям Ansible.~~ > сделано :white_check_mark: +* ~~Добавить возможность получения SSL-сертификата ради безопасного HTTPS соединения.~~ > сделано :white_check_mark: +* ~~Прикрутить Alertmanager + Telegram Notifications.~~ > сделано :white_check_mark: