Revise README for Alertmanager and Telegram bot details
Updated the README to reflect the addition of Alertmanager and Telegram bot integration, and removed redundant domain entry.
This commit is contained in:
@@ -19,11 +19,11 @@
|
|||||||
## Краткая архитектура 💡
|
## Краткая архитектура 💡
|
||||||
* Главный сервер (general_server): настраивается вручную, вписывается первым под группой `servers` в inventory-файл и настраивается в файле **general_server.yml**, который должен быть расположен в папке **host_vars**.
|
* Главный сервер (general_server): настраивается вручную, вписывается первым под группой `servers` в inventory-файл и настраивается в файле **general_server.yml**, который должен быть расположен в папке **host_vars**.
|
||||||
* Terraform идёт в облако Yandex Cloud и поднимает нужное количество серверов (настраивается в файле **variable.tf**). После развертывания серверов создает inventory-файл с настройками каждой машины в папке **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.
|
* Пароли и логины хранятся в папке **group_vars** в файле **vault.yml**, который, в свою очередь, зашифрован мастер-паролем хранилища Ansible Vault.
|
||||||
* Сразу настраивается basic_auth на всех сервисах: Grafana, Ansible, Node_Exporters.
|
* Сразу настраивается basic_auth на всех сервисах: Grafana, Node_Exporters.
|
||||||
* Стейт Terraform и ключи игнорируются Git.
|
* Стейт Terraform и ключи игнорируются Git.
|
||||||
* Подключение к серверам идёт строго по SSH-ключам.
|
* Подключение к серверам идёт строго по SSH-ключам.
|
||||||
|
|
||||||
@@ -33,7 +33,11 @@
|
|||||||
### Вам понадобится:
|
### Вам понадобится:
|
||||||
* Аккаунт Yandex Cloud с ключами. Можно получить тут: <a href="https://console.yandex.cloud" target="_blank" rel="noopener noreferrer">Консоль Yandex Cloud</a>. Поместите ключи в папку **terraform-infra**.
|
* Аккаунт Yandex Cloud с ключами. Можно получить тут: <a href="https://console.yandex.cloud" target="_blank" rel="noopener noreferrer">Консоль Yandex Cloud</a>. Поместите ключи в папку **terraform-infra**.
|
||||||
* Операционная система Linux с установленной на ней terraform, ansible и git. Команда для установки (работает на Ubuntu и Debian): `sudo apt update && sudo apt install -y ansible terraform git`
|
* Операционная система 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/`
|
* Клонируйте и перейдите в скачанный репозиторий командой: `git clone https://github.com/LeoR156/metrics-prometheus-grafana && cd metrics-prometheus-grafana/group_vars/all/`
|
||||||
* Откройте файл **vault.yml** и сотрите содержимое командой: `> vault.yml && nano vault.yml`.
|
* Откройте файл **vault.yml** и сотрите содержимое командой: `> vault.yml && nano vault.yml`.
|
||||||
@@ -48,8 +52,11 @@ prom_admin_password: "ваш_пароль_для_prometheus"
|
|||||||
exporter_user: "ваш_логин_для_exporters"
|
exporter_user: "ваш_логин_для_exporters"
|
||||||
exporter_password: "ваш_пароль_для_exporters"
|
exporter_password: "ваш_пароль_для_exporters"
|
||||||
|
|
||||||
|
domen: "ваш_домен" # Удалите строку, если нет.
|
||||||
email: "ваш_email"
|
email: "ваш_email"
|
||||||
domen: "ваш_домен"
|
|
||||||
|
telegram_bot_token: "токен_вашего_бота"
|
||||||
|
telegram_chat_id: "ваш_телеграм_id"
|
||||||
```
|
```
|
||||||
* Примените изменения: `Ctrl + X`, `Y` и `Enter`.
|
* Примените изменения: `Ctrl + X`, `Y` и `Enter`.
|
||||||
* Желательно применить шифрование командой: `ansible-vault encrypt vault.yml`. Придумайте и введите пароль.
|
* Желательно применить шифрование командой: `ansible-vault encrypt vault.yml`. Придумайте и введите пароль.
|
||||||
@@ -69,7 +76,7 @@ ansible_ssh_private_key_file: "путь_до_ssh_ключа"
|
|||||||
* Пару-тройку минут — и Ansible сделает свою работу!
|
* Пару-тройку минут — и Ansible сделает свою работу!
|
||||||
|
|
||||||
### Подключение и первый дашборд:
|
### Подключение и первый дашборд:
|
||||||
* Зайдите на IP главного сервера, порт 3001. Шаблон: `http://<IP_general_server>:3001`
|
* Зайдите на IP главного сервера, порт 3001. Шаблон: `http://<IP_general_server>:3001`. **Важно:** Если указывали домен, то переходите прямо на него.
|
||||||
* Введите логин и пароль от Grafana, который вы задавали ранее в файле **vault.yml**.
|
* Введите логин и пароль от Grafana, который вы задавали ранее в файле **vault.yml**.
|
||||||
* Зайдите на вкладку **Dashboards** слева экрана > нажмите **New** справа > нажмите **Import dashboard** > вставьте ID `1860` и нажмите **Load** > затем снова **Import**.
|
* Зайдите на вкладку **Dashboards** слева экрана > нажмите **New** справа > нажмите **Import dashboard** > вставьте ID `1860` и нажмите **Load** > затем снова **Import**.
|
||||||
|
|
||||||
@@ -78,6 +85,6 @@ ansible_ssh_private_key_file: "путь_до_ssh_ключа"
|
|||||||
***
|
***
|
||||||
|
|
||||||
# Планы дальнейшего развития проекта:
|
# Планы дальнейшего развития проекта:
|
||||||
* Разбить таски по ролям Ansible. >>> сделано :white_check_mark:
|
* ~~Разбить таски по ролям Ansible.~~ > сделано :white_check_mark:
|
||||||
* Добавить возможность получения SSL-сертификата ради безопасного HTTPS соединения. >>> сделано :white_check_mark:
|
* ~~Добавить возможность получения SSL-сертификата ради безопасного HTTPS соединения.~~ > сделано :white_check_mark:
|
||||||
* Прикрутить Alertmanager + Telegram Notifications.
|
* ~~Прикрутить Alertmanager + Telegram Notifications.~~ > сделано :white_check_mark:
|
||||||
|
|||||||
Reference in New Issue
Block a user