Настройка базовых метрик мониторинга

В данной инструкции приведено руководство по настройке базовых метрик мониторинга.

Установка Ansible

Примечание

Все последующие команды выполняем в открытой консоли.

  1. Установите (если не установлен) ansible версии 2.6.xxx:

    Вариант через python и virtualenv:

    1. Установите virtualenv:

      1$ sudo python3 -m pip install virtualenv
      
    2. Создайте окружение и активируем его:

      1$ virtualenv --prompt="ansible" ansible-venv
      2$ source ansible-venv/bin/activate
      
    3. Установите 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. Для каждого стенда в любом удобном текстовом редакторе опишите инвентарь по пути от текущего репозитория:

    1$ vim inventori/<наименование стенда>/<наименование стенда>.yml
    

    Для образца можно взять уже описанный инвентарь и описать аналогично, заменив содержимое на свои хосты текущего стенда.

  2. Для каждого стенда в любом удобном текстовом редакторе опишите переменные для экспортеров и prometheus.

    В **all** опишите глобальные переменные для всех сервисов мониторинга.

    1$ vim inventori/<наименование стенда>/group_vars/all.yml
    
  3. Для описания специфичной группы хостов или сервисов можно описать отдельные уточняющие переменные. Например для группы **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

На хост мониторинга добавьте экспортеры по сборам метрик из инфраструктурного ПО:

  1. Экспортер для сбора метрик 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
    
  2. Экспортер для сбора метрик 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
    
  3. Экспортер для сбора 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.