Настройка базовых метрик мониторинга
В данной инструкции приведено руководство по настройке базовых метрик мониторинга.
Установка Ansible
Примечание
Все последующие команды выполняем в открытой консоли.
Установите (если не установлен) ansible версии 2.6.xxx:
Вариант через python и virtualenv:
Установите virtualenv:
1$ sudo python3 -m pip install virtualenv
Создайте окружение и активируем его:
1$ virtualenv --prompt="ansible" ansible-venv 2$ source ansible-venv/bin/activate
Установите Ansible. Ссылка на установку.
1$ ansible-venv/bin/python3 -m pip install 'ansible>=2.6,<2.7'
Вариант через пакетный менеджер системы:
Для ОС DEBIAN выполните команды:
1$ sudo apt-get install software-properties-common 2$ sudo apt-add-repository ppa:ansible/ansible 3$ sudo apt-get update 4$ sudo apt-get install ansible-2.6
Для ОС REDHAT выполните команды:
1$ sudo yum install ansible-2.6
Получение репозитория с ролями мониторинга
Выполните клонирование репозитория с ролями мониторинга.
1# SSH
2$ git clone git@gitlab.test.loc:pos/monitoring.git
3# HTTP/HTTPS
4$ git clone http://gitlab.test.loc/pos/monitoring.git
Настройка мониторинга
Для каждого стенда в любом удобном текстовом редакторе опишите инвентарь по пути от текущего репозитория:
1$ vim inventori/<наименование стенда>/<наименование стенда>.yml
Для образца можно взять уже описанный инвентарь и описать аналогично, заменив содержимое на свои хосты текущего стенда.
Для каждого стенда в любом удобном текстовом редакторе опишите переменные для экспортеров и prometheus.
В **all** опишите глобальные переменные для всех сервисов мониторинга.
1$ vim inventori/<наименование стенда>/group_vars/all.yml
Для описания специфичной группы хостов или сервисов можно описать отдельные уточняющие переменные. Например для группы **monitoring**, где будут ставиться специфичные экспортеры:
1$ vim inventori/<наименование стенда>/group_vars/monitoring.yml
Для образца можно взять уже описанные переменные других стендов и описать аналогично, заменив содержимое на свои значения для текущего стенда.
Развертывание мониторинга
:large_orange_diamond: Замените в последующих командах переменную $USER на своего пользователя на стенде !
:large_orange_diamond: Замените в последующих командах путь к инвентарю соответствующего стенда !
:large_orange_diamond: Замените в последующих командах, где указаны, целевые хосты соответствующие инвентарю/стенду !
:large_orange_diamond: Если идет ssh аутентификация - не по ключу, а по паролю (Например, нет ключа у пользователя или не со своего компьютера доступ), необходимо к каждой команде добавить ключ --ask-pass !
:large_orange_diamond: После каждого выполнения следующих команд, проверяйте в конце статус выполнения. Статус 'Failed' должен быть равен 0 !
На все хосты из инвентаря ставится **Telegraf** агент для сбора системных и инфраструктурных метрик:
1# Установка на все из списка all инвентаря
2$ ansible-playbook -i inventory/dev/dev.yml playbooks/telegraf.yml -u $USER -K -v --diff
3# Установка на конкретный хост из инвентаря
4$ ansible-playbook -i inventory/dev/dev.yml playbooks/telegraf.yml -u $USER -K -v --diff --limit oapi-as-dev1.ufd.loc
На хост мониторинга добавьте экспортеры по сборам метрик из инфраструктурного ПО:
Экспортер для сбора метрик Kafka - **Burrow**
1# Здесь указан хост мониторинга dev стенда. Заменить на хост текущего стенда. 2$ ansible-playbook -i inventory/dev/dev.yml playbooks/burrow.yml -u $USER -K -v --diff --limit oapi-mon-dev1.ufd.loc
Экспортер для сбора метрик Elasticsearch - **elasticsearch-exporter**
1# Здесь указан хост мониторинга dev стенда. Заменить на хост текущего стенда. 2$ ansible-playbook -i inventory/dev/dev.yml playbooks/elasticsearch-exporter.yml -u $USER -K -v --diff --limit oapi-mon-dev1.ufd.loc
Экспортер для сбора HTTP метрик **blackbox-exporter**
1# Здесь указан хост мониторинга dev стенда. Заменить на хост текущего стенда. 2$ ansible-playbook -i inventory/dev/dev.yml playbooks/blackbox-exporter.yml -u $USER -K -v --diff --limit oapi-mon-dev1.ufd.loc
На хост с Prometheus установите правила обработки метрик:
1$ ansible-playbook -i inventory/dev/dev.yml playbooks/alert-rules.yml -u $USER -K -v --diff --limit oapi-mon-dev1.ufd.loc --ask-pass
Для просмотра метрик по техническому состоянию виртуальных машин, значений CPU/ОЗУ/Сети/Диска в заданный момент времени под нагрузкой и без необходимо авторизоваться в Grafana.