Мониторинг микросервисов flask с помощью prometheus

Бонус: исследуйте данные с помощью специальных фильтров

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

В этом бонусном разделе мы не будем использовать функцию «Исследовать» (может быть, в другой статье?), Мы будем использовать специальные фильтры.

С Grafana вы можете определять переменные, связанные с графиком . У вас есть много разных вариантов переменных: вы можете, например, определить переменную для вашего источника данных, которая позволит динамически переключать источник данных в запросе.

В нашем случае мы собираемся использовать простые  специальные фильтры для исследования наших данных.

Оттуда просто нажмите «Переменные» в левом меню, затем нажмите «Создать».

Взгляните на верхний левый угол приборной панели.

Фильтры!

Теперь предположим, что вам нужна производительность определенного процесса в вашей системе: возьмем, к примеру, сам Прометей.

Просто перейдите к фильтрам и посмотрите, как обновляется панель управления.

Теперь у вас есть прямой взгляд на то, как Prometheus ведет себя в вашем экземпляре.

Вы даже можете вернуться в прошлое и посмотреть, как ведет себя процесс, независимо от его pid!

Установка grafana в Unix/Linux

И так, я начну с установки свой графаны:

Хочу отметить следующее, — это то, что grafana слушает 3000-й порт и для удобства, я сейчас сделаю прокси на 80-й порт. Есть много прокси-сервисов, но я предпочитаю nginx. Я приведу статьи по установке nginx:

Nginx уже имеется в системе, и сейчас нужно создать конфиг для графаны:

# vim /etc/nginx/conf.d/grafana.conf

И прописываем:

server {
 	listen 80;
 	server_name grafana.local;
 	access_log /var/log/nginx/access-grafana.log;
 	error_log /var/log/nginx/error-frafana.log info;
	location / {
		proxy_pass http://127.0.0.1:3000;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP        $remote_addr;
            	proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
		}
}

Где:

grafana.local — это мое доменное имя ( я прописал в /etc/hosts свой IP и сопоставил его с grafana.local)

PS: Нужно прописать в исключения 3000-й и 80-й порты. Если используете iptables, то добавьте правило. Если SELinux, вот чтиво:

Собственно, — это все что нужно было сделать с nginx —  это и есть прокси. Переходим к конфигу графаны:

# vim /etc/grafana/grafana.ini

И приводим к виду:

data = /var/lib/grafana
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins


protocol = http
http_addr = 127.0.0.1
http_port = 3000
domain = localhost
root_url = http://localhost:3000

Вот такой конфиг заработает ( проверялось не одиножды)! Некоторые люди пишут, что можно выполнить следующую команду:

# setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server

Но я не проверял этого. Оставил на всякий случай.

Перезапускаем службы:

# service nginx restart
# service grafana-server

Переходим к установке и настройке дургих компонентов.

Интеграция Grafana Zabbix с использованием плагинов

Хотите узнать, как выполнить интеграцию с Grafana Zabbix с помощью плагинов Grafana? В этом уроке Grafana мы покажем вам, как установить и настроить Grafana Dashboards для Zabbix в первый раз.

Что такое Графана?

Grafana — это платформа с открытым исходным кодом для мониторинга, анализа и визуализации данных, которая поставляется с веб-сервером, позволяющим получать к нему доступ из любого места.

В веб-интерфейсе пользователи могут создавать информационные панели Grafana с панелями для представления метрик с течением времени.

На этой странице мы предлагаем быстрый доступ к списку уроков Grafana:

Учебное пособие по графане — интеграция с графаной Zabbix

Предположим, что у вас установлена работающая установка Grafana и Zabbix.

На консоли сервера Grafana используйте следующие команды, чтобы получить список всех плагинов Grafana.

Используйте следующую команду для установки плагина Grafana Zabbix.

После завершения установки плагина Grafana перезапустите сервис Grafana.

# grafana-cli plugins list-remote
# grafana-cli plugins install alexanderzobnin-zabbix-app
# service grafana-server restart

На панели инструментов Zabbix откройте меню Администрирование и выберите опцию Пользователи.

Нажмите на кнопку Создать пользователя.

Настройте новую учетную запись пользователя в качестве члена группы Zabbix Administrators.

Откройте вкладку «Разрешения» и выберите опцию Zabbix super Admin.

На панели инструментов Grafana откройте меню плагинов Grafana.

Включить плагин Grafana Zabbix.

На панели инструментов Grafana откройте меню источников данных Grafana.

Добавьте источник данных Zabbix.

На странице конфигурации источника данных Zabbix вам необходимо выполнить следующую настройку:

Введите правильный URL-адрес файла Zabbix api_jsonrpc.php.

В нашем примере мы ввели следующий URL:

http://34.220.49.29/zabbix/api_jsonrpc.php

Затем вам нужно выбрать версию Zabbix, к которой подключается Grafana, и ввести информацию для входа в Zabbix.

В нашем примере мы включили опцию Trends.

В нашем примере мы выбрали Zabbix версии 4.

В нашем примере мы ввели графическую учетную запись Zabbix и пароль kamisama123.

Нажмите кнопку Добавить, чтобы завершить настройку источника данных и проверить соединение Zabbix.

Пример Grafana Dashboard — Zabbix Dashboards

Теперь нам нужно добавить панель инструментов Grafana для Zabbix.

На экране конфигурации источника данных Zabbix перейдите на вкладку Dashboards.

Импорт 3 примеров панелей Zabbix, предлагаемых плагином Zabbix.

Чтобы получить доступ к панели инструментов Zabbix, вам нужно получить доступ к опции меню Grafana Dashboards.

В верхней части экрана найдите Dashboards с именем Zabbix.

Выберите панель управления Zabbix Server.

Вот пример панели инструментов Zabbix.

В верхней части экрана найдите Dashboards с именем Zabbix.

Поздравляем! Вы успешно интегрировали Zabbix в Grafana.

2019-04-03T15:35:54-03:00

Установка Grafana

Установить Grafana не просто, а очень просто. Я вообще не стал заморачиваться, так как мне она нужна только для одного дашборда. Поэтому запустил графану в докере.

Запустил Grafana на 3000 порту, сразу же установив несколько основных плагинов, в том числе тот, что нужен для интеграции с zabbix — alexanderzobnin-zabbix-app.

Если не хотите docker, то воспользуйтесь документацией по установке. Там нет никаких проблем, так как есть репозиторий с готовыми пакетами. Ставится все очень быстро и просто.

Я настроил доступ к web интерфейсу Grafana через nginx proxy_pass с помощью следующего конфига. Предварительно получил сертификат let’s encrypt.

Дальше можно идти в web интерфейс и логиниться. Логин и пароль по умолчанию в Grafana — admin / admin.

Установка и настройка Grafana. Тестирование Node Exporter

Скачиваем и устававливаем последнюю стабильную версию:

root@dedicated:~# apt-get install -y adduser libfontconfig1
root@dedicated:~# wget https://dl.grafana.com/oss/release/grafana_7.0.3_amd64.deb
root@dedicated:~# dpkg -i grafana_7.0.3_amd64.deb
root@dedicated:~# systemctl enable grafana-server
root@dedicated:~# systemctl start grafana-server
root@dedicated:~# systemctl status grafana-server

https://ip_address:3000/
login: admin
password: admin

После ввода стандартного логина и пароля, вам сразу же будет предложено ввести новый пароль и подтвердить его.

Первым делом интегрируем Prometheus в Grafana. Для этого во вкладке «Configuration» — «Data Sources» устанавливаем плагин Prometheus со следующими параметрами подключения:

Возвращаемся в панель Grafana, в меню слева выберем «+» -> «Create» -> «Import». Нажав «Upload .json file» выбираем наш скачанный дискавери. Дальнейшие настройки должны быть следующие:

 Выполнив все эти действия мы должны получить результат:

Примеры будут не полные, если мы не проведем базовое нагрузочное тестирование. Делаем это на чистой тестовой базе данных. В правом верхнем углу выберем обновление графиков 5 секунд и результат за последние 30 минут.

На хостовой машине установим утилиту и stress и запустим её:

root@dedicated:~# apt-get install stress
root@dedicated:~# root@dedicated:~# stress -c 2 -i 1 -m 1 --vm-bytes 256M -t 60s

или:

root@dedicated:~# apt-get install sysbench
root@dedicated:~# sysbench --test=cpu --cpu-max-prime=20000 ru

Ждем 60 секунд и посмотрим на некоторые наши графики:

Протестируем дисковую подсистему и удалим созданный файл:

root@dedicated:~# sysbench --test=fileio --file-total-size=2G prepare
root@dedicated:~# sysbench fileio --file-total-size=2G cleanup

Установка MYSQL/MariaDB в Unix/Linux

Я тоже не буду приводить подробности по установке, а приведу чтиво:

Установка MySQL на Debian/Ubuntu/Linux Mint

Установка MySQL 5.5 на RHEL / CentOS и Fedora

Установка MariaDB 10 на CentOS 7

Вот может еще пригодится:

Разрешить доступ к MySQL с определенной подсети в Unix/Linux

Сейчас, я создаю пользователя, базу и пароль:

Создаем базу и пользователя с паролем:

Заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> MYSQL и вводим свои данные. У меня выглядит вот так:

добавляем data source для grafana

PS: Нам говорят что данный плагин находится в тестовом виде и его не особо стоит пока-что юзать.

Нажимаем на «Add», потом на «Save & Test» и у вас будет уже mysql. Открываем когфиг:

И приводим к виду:

Перезапускаем grafana-server:

После чего, в созданной БД, будут созданы таблицы для работы с графаной.

PS: Это довольно хороший способ хранить хранить, т.к легко можно создать бэкап и ничего не потерять.

Как по мне — очень хорошее решение. Идем далее….

Автокликер для 1С Промо

Внешняя обработка, запускаемая в обычном (неуправляемом) режиме для автоматизации действий пользователя (кликер). ActiveX компонента, используемая в обработке, получает события от клавиатуры и мыши по всей области экрана в любом приложении и транслирует их в 1С, получает информацию о процессах, текущем активном приложении, выбранном языке в текущем приложении, умеет сохранять снимки произвольной области экрана, активных окон, буфера обмена, а также, в режиме воспроизведения умеет активировать описанные выше события. Все методы и свойства компоненты доступны при непосредственной интеграции в 1С. Примеры обращения к компоненте представлены в открытом коде обработки.

1 стартмани

Настраиваем Grafana

Открываем :3000 порт в первый и далеко не последний раз, вводим admin/admin, меню -> data sources -> + add data source.

  • name softrouter
  • default: +
  • type influxdb
  • url http://localhost:8086
  • database softrouter

Больше особо менять не надо.

Дальше Dashboards -> Create New -> Зелёная херня сбоку -> Add Panel -> Graph. Теперь временно забываем про графики и начинаем думать что бы нам такого пособирать из данных.

Собираем данные

Вообще данные в нашем случае делятся два вида — технические и бизнес.

Поскольку я обкатываю всё на нашем тестовом софтроутере, который служит нам на работе гейтом в инет, то начну с технических.

Применение обновленного ConfigMap

Если вы уже развернули ConfigMap в кластер и надо обновить, используя новую конфигурацию, можно изменить ранее использовавшийся файл ConfigMap, а затем применить команды, описанные ранее.

Для следующих сред Kubernetes:

  • Служба Azure Kubernetes (AKS)
  • Azure Stack или в локальной среде
  • Azure Red Hat OpenShift и Red Hat OpenShift версии 4.x

выполните команду .

Для кластера Azure Red Hat OpenShift версии 3.x выполните команду , чтобы открыть файл в редакторе по умолчанию, чтобы изменить и сохранить его.

Для вступления в силу изменений конфигурации может потребоваться несколько минут, и все omsagent объектов pod в кластере будут перезапущены. Перезапуск выполняется как пошаговый перезапуск для всех omsagent объектов pod, а не как одновременный перезапуск. По завершении перезапусков появится сообщение, подобное приведенному ниже, с таким результатом: .

Монитор-докер

7.1 конфигурация cadvisor

На сервере, на котором запущен контейнер докеров, установите, Чтобы собрать информацию о мониторинге докеров этой машины

7.2 может встретиться с одним, Контейнер cadvisor остановится позже, проверьте журнал

Тогда гугл вопрос, В результате кто-то обнаружил следующее:

оказался, А затем найдите решение, следующее решение найдено:

Проблема решена, готов к посещению.

7.3 Доступ

Открывать локально через браузер, конечно, может понадобиться, На рисунке ниже показан веб-интерфейс cAdvisor, данные обновляются в реальном времени, но не могут быть сохранены. Просмотр формата jsonmetrics

7.4 Настройка Prometheus

Измените файл конфигурации,Следующее

Перезапустите сервис prometheus.

7.5 Настройка графана

Скачайте шаблон и настройте его

Наконец:

Прикрепите другие файлы конфигурации:

Ссылка: https://www.cnblogs.com/Dev0ps/p/10546276.html https://blog.lucien.ink/archives/449/ https://www.linuxea.com/1922.html https://blog.csdn.net/BJUT_bluecat/article/details/84072966

Установка и запуск на Ubuntu / Debian

Установка

Добавляем репозиторий командой:

add-apt-repository «deb https://packages.grafana.com/oss/deb stable main»

Устанавливаем ключ для проверки подлинности репозитория графаны:

wget -q -O — https://packages.grafana.com/gpg.key | apt-key add —

Обновляем список портов:

apt-get update

Выполняем установку:

apt-get install grafana

… и отвечаем Y на запрос.

Настройка брандмауэра

По умолчанию, в Ubuntu брандмауэр не блокирует соединения. Но если в нашей системе он используется, необходимо добавить порт одной из команд:

а) при использовании iptables:

iptables -A INPUT -p tcp —dport 3000 -j ACCEPT

netfilter-persistent save

* если при вводе второй команды система выдаст ошибку, устанавливаем необходимый пакет командой apt-get install iptables-persistent.

б) при использовании ufw:

ufw allow 3000/tcp

ufw reload

Настройка и развертывание ConfigMaps в Azure Red Hat OpenShift версии 3

В этом разделе описаны требования и действия для успешной настройки файла конфигурации ConfigMap для кластера Azure Red Hat OpenShift версии 3.x.

Примечание

Для Azure Red Hat OpenShift версии 3.x в пространстве имен openshift-azure-logging создается файл шаблона ConfigMap. Он не настроен на активный сбор метрик или сбор данных от агента.

Предварительные требования

Прежде чем начать, убедитесь, что вы являетесь участником кластера Azure Red Hat OpenShift с ролью администратора пользовательского кластера, что позволяет настраивать параметры контейнерного агента и сбора метрик Prometheus. Чтобы убедиться, что вы являетесь участником группы osa-customer-admins, выполните следующую команду:

Результат должен выглядеть так:

Участник группы osa-customer-admins может внести в список ConfigMap с помощью следующей команды:

Результат должен выглядеть так:

Включение мониторинга

Выполните следующие действия, чтобы настроить файл конфигурации ConfigMap для кластера Azure Red Hat OpenShift версии 3.x.

  1. Чтобы собирать метрики Prometheus, измените yaml-файл ConfigMap, дополнив настройки. Шаблон ConfigMap уже существует в кластере Red Hat OpenShift версии 3. Выполните команду , чтобы открыть файл в текстовом редакторе.

    Примечание

    Заметку надо добавить в метаданные container-azm-ms-agentconfig ConfigMap для предотвращения сверки.

    • Для сбора из служб Kubernetes на уровне кластера, настройте файл ConfigMap, используя следующий пример.

    • Чтобы настроить сбор метрик Prometheus по определенному URL-адресу в кластере, настройте файл ConfigMap, используя следующий пример.

    • Чтобы настроить сбор метрик Prometheus из DaemonSet агента для каждого отдельного узла в кластере, настройте следующие параметры в ConfigMap:

      Примечание

      $NODE_IP — это конкретный параметр для аналитики контейнеров, который можно использовать вместо IP-адреса узла. Необходимо использовать прописные буквы.

    • Чтобы настроить сбор метрик Prometheus, указав заметку pod, выполните действия, описанные ниже.

      1. В ConfigMap укажите следующее:

      2. Укажите следующую конфигурацию для заметок pod:

        Чтобы ограничить мониторинг до определенных пространств имен для объектов pod с заметками, например включайте только объекты pod, выделенные для рабочих нагрузок, установите для параметра значение в ConfigMap и добавьте фильтр пространства имен , указывающий пространства имен, для которых следует выполнять сбор данных. Например .

  2. Сохраните изменения в редакторе.

Для вступления в силу изменений конфигурации может потребоваться несколько минут, и все omsagent объектов pod в кластере будут перезапущены. Перезапуск выполняется как пошаговый перезапуск для всех omsagent объектов pod, а не как одновременный перезапуск. По завершении перезапусков появится сообщение, подобное приведенному ниже, с таким результатом: .

Обновленный ConfigMap можно просмотреть, выполнив команду .

Детализация нашей архитектуры мониторинга

Прежде чем взглянуть на архитектуру, которую мы собираемся использовать, мы хотим использовать следующее решение:

  • Дешевый ресурс : то есть не потребляет много ресурсов на нашем хосте;
  • Просто внедрить : решение, не требующее много времени для создания экземпляра;
  • Масштабируемость : если бы мы контролировали другой хост, мы могли бы сделать это быстро и эффективно.

Это те моменты, которые мы будем иметь в виду на протяжении всего урока.

Подробная архитектура, которую мы собираемся использовать сегодня, такова:

Наша архитектура использует четыре различных компонента:

  • Сценарий bash, используемый для периодической отправки метрик в Pushgateway;
  • Pushgateway : кэш метрик, используемый отдельными скриптами в качестве цели;
  • Prometheus:, который создает базу данных временных рядов, используемую для хранения показателей. Прометей будет очищать Pushgateway как цель, чтобы получить и сохранить метрики;
  • Grafana : инструмент мониторинга приборной панели, который извлекает данные из Prometheus через запросы PromQL и строит их.

Тем, кто хорошо знаком с Prometheus, вы уже знаете, что Prometheus извлекает метрики, предоставляемые экземплярами HTTP, и сохраняет их.

В нашем случае сценарий bash имеет очень крошечный срок службы и не предоставляет никаких экземпляров HTTP для Prometheus.

Вот почему мы должны использовать Pushgateway; Разработанный для краткосрочных заданий , Pushgateway будет кэшировать полученные от скрипта метрики и предоставлять их Prometheus.

Установка Node Exporter

Свежую версию Node Exporter ищем на странице приложения. Скачайте его и извлеките из архива:

root@dedicated:~# wget https://github.com/prometheus/node_exporter
/releases/download/v1.0.0/node_exporter-1.0.0.linux-amd64.tar.gz
root@dedicated:~# tar xvfz node_exporter-*.*-amd64.tar.gz

 Перейдите в каталог и запустите сценарий:

root@dedicated:~# cd node_exporter-*.*-amd64
root@dedicated:~# ./node_exporter

Вы должны получить следующее сообщение. Не прерывайте его выполнение:

Откройте в браузере адрес https://ip_address:9100/metrics, или создайте новую консоль терминала, обратившись к данным с помощью curl. Результат должен быть примерно следующим:

Файлы с node-exporter предварительно скопированы в каталолг /etc/prometheus/node-exporter/. Проследите так же, чтобы на него были выставлены правильные права:

root@dedicated:~# chown -R prometheus:prometheus /etc/prometheus/node-exporter/

Cоздайте юнит со следующим содержимым:

root@dedicated:~# mcedit /etc/systemd/system/node-exporter.service


Description=Node Exporter
After=network.target
 

User=prometheus
Group=prometheus
Type=simple
ExecStart=/etc/prometheus/node-exporter/node_exporter
 

WantedBy=multi-user.target

Затем отредактируйте главный конфигурационный файл prometheus, добавив в него информацию о Node Exporter. При редактировании файлов *.yml табуляция не допустима, используйте четное количество пробелов:

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: 

Примечание: Два узла добавлены для примера, если вы хотите использовать только метрики node_exporter, достаточно указать один узел:

Примените настройки, активируйте и добавьте в автозагрузку node-exporter.service, перезапустите службу prometheus.service. Введите в адресной строке браузера https://ip_address:9090/targets

Если вы все сделали правильно, результат должен быть следующий:

Подключение к кластеру

Тестовый проект я буду запускать в
. Но так же решение применяется в Azure, AWS. Уверен, оно будет работать и на других платформах.

Для запуска тестового kubernetes cluster в GCP нужно зайти в Kubernetes Engine, нажать Create cluster. Далее выбрать нужные настройки типа: локации, самой локации, описать конфигурацию машин, которые будут выступать в роли нод кластера, и настройку сети кластера. Этого достаточно для демонстрации. Примерно через 10 минут кластер готов к работе.

Подключение к кластеру может быть как через встроенную веб-консоль аккаунта GCP, так и через локальный компьютер. Для работы с GCP из локального компьютера нужно установить пакеты из google-cloud-sdk. Информация по скачиванию и установке пакетов для всех

gcloud auth login

В консоли будет показан url link, по которому нужно перейти в браузер. Затем скопируйте код проверки из браузера в консоль.

Вводим ID проекта, в котором запустили кластер:

gcloud config set project Project-ID

Затем строку подключения к кластеру, которую можно скопировать в окне, открывшемся после нажатия Сonnect на кластере в веб-интерфейсе:

Технические

Так как у нас под коробкой — Linux, собирать системные данные проще всего с помощью collectd. Там даже думать особо не надо, всё есть в репах.

Настройка: настраивать будем с помощью ansible, поскольку collectd нужно установить на все машины, которые мы хотим отслеживать.

Создадим ansible-playbook для быстрого разворачивания collectd на других машинах и возможности менять конфигурацию в одном месте.

Файл: tasks/collectd.yml:

Файл: templates/collectd.conf:

По красивому IP адрес сервера с collectd надо вынести в переменные группы в файле inventory, но я отложу это на потом.

Запускаем:

После чего по адресу :8083 можем наблюдать в выводе

всё, за чем мы теперь можем наблюдать, у меня:

  • conntrack_entropy
  • cpu_value
  • disk_read
  • disk_write
  • interface_rx
  • interface_tx
  • irq_value
  • load_longterm
  • load_midterm
  • load_shortterm
  • memory_value
  • swap_value
  • tcpconns_value
  • uptime_value

PPS сетевых карт

В случае с шлюзом и DPI очень важными являются interface_rx и interface_tx. С них и начнём.

Вот пример запроса про входящий pps на eth0 для grafana:

IRQ сетевой карты

Можно следить за ростом прерываний на сетевых картах.

У нас используется не очень крутая карта, крутится с одной очередью на 26 прерывании.

Единственная проблема которая при такой схеме будет — это отслеживание IRQ сетевых карт. Но в принципе можно отнести это к бизнес-логике, а не техническим данным и захардкодить для каждого хоста (прости господи) или вынести на сторону какого-то своего плагина к collectd.

Memory Usage

Вообще много графиков которые находятся рядом имеют очень похожие запросы в основе, меняется как правило одна переменная. Чтобы не менять постоянно в куче мест запросы, можно использовать settings -> templating.

Установка Prometheus

root@dedicated:~# wget https://github.com/prometheus/prometheus/releases/download/
v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz
root@dedicated:~# tar zxvf prometheus-2.18.1.linux-amd64.tar.gz 
root@dedicated:~# cd prometheus-2.18.1.linux-amd64/

 Создадим необходимые каталоги, и скопируем в них необходимые файлы:

root@dedicated:~# mkdir /etc/prometheus
root@dedicated:~# mkdir /var/lib/prometheus
root@dedicated:~# cp prometheus promtool /usr/local/bin/
root@dedicated:~# cp -r console_libraries consoles prometheus.yml /etc/prometheus

Добавим пользователя prometheus:

root@dedicated:~# useradd --no-create-home --shell /bin/false prometheus

И назначим правильные права на каталоги:

root@dedicated:~# chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
root@dedicated:~# chown prometheus:prometheus /usr/local/bin/{prometheus,promtool}

Следующей командой запустим Prometheus:

root@dedicated:~# /usr/local/bin/prometheus
--config.file /etc/prometheus/prometheus.yml
--storage.tsdb.path /var/lib/prometheus/
--web.console.templates=/etc/prometheus/consoles
--web.console.libraries=/etc/prometheus/console_libraries

Успешным выполнением можно считать состояние «Server is ready to receive web requests»:

Не завершая вывода консоли вводим в браузере https://178.20.152.79:9090

Завершив процесс который открыт в нашем терминале, web-интерфейс станет недоступен. Для дальнейшей настройки создадим юнит systemd:

root@dedicated:~# mcedit /etc/systemd/system/prometheus.service

следующего содержания:

Description=Prometheus Service
After=network.target


User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure


WantedBy=multi-user.target

Сохраните и закройте файл. Создание, редактирование и управление системой инициализации Systemd мы ранее рассматривали в руководстве «Использование systemd»

root@dedicated:~# systemctl daemon-reload

Повторно задаем права пользователю prometheus, запускаем службу и добавляем её в автозапуск:

root@dedicated:~# chown -R prometheus:prometheus /var/lib/prometheus
root@dedicated:~# systemctl enable  prometheus.service
root@dedicated:~# systemctl start prometheus.service
root@dedicated:~# systemctl status  prometheus.service

Архитектура Prometheus

Разница между prometheus и prometheus-operator в том, что в prometheus-operator дополнительно включена Grafana с готовыми дашбордами и ServiceMonitors для сбора метрик из сервисов кластера таких как: CoreDNS, API Server, Scheduler и другие.

Prometheus — главная составляющая всей конструкции. Система мониторинга, которая собирает показатели из ваших служб и сохраняет их в базе данных временных рядов. Если кратко, то она собирает метрики, на которые можно посмотреть при помощи Prometheus Web.

Grafana — веб-приложение для аналитики и интерактивной визуализации

Для построения графиков Grafana может брать данные не только из Prometheus, но и из таких систем как: Graphite, Elasticsearch, OpenTSDB, InfluxDB.

— инструмент для обработки оповещений. Он устраняет дубликаты, группирует и отправляет нотификации.

Экспортёры (агенты) — их задача собирать метрики из сервисов и переводить их в понятный вид для Prometheus. Видов экспортёров существует огромное количество например:
,
,
и так далее.

В стеке используются экспортёры:

— собирает метрики о вычислительных ресурсах Node в Kubernetes.

Короткое слово в заключение

Из этого урока вы лучше понимаете, что могут предложить Prometheus и Grafana .

Вы знаете, что у вас есть полная панель мониторинга для одного экземпляра, но на самом деле есть небольшой шаг, чтобы заставить ее масштабироваться и контролировать весь кластер экземпляров Unix.

DevOps-мониторинг — определенно интересная тема, но если вы сделаете это неправильно, он может превратиться в кошмар.

Именно поэтому мы пишем эти статьи и создаем эти информационные панели: чтобы помочь вам достичь максимальной эффективности того, что могут предложить эти инструменты.

Мы считаем, что отличные технологии можно улучшить с помощью полезных демонстраций.

А Ты?

Если вы согласны, присоединяйтесь к растущему списку DevOps, выбравших этот путь.

Заключение

Используя Grafana в связке с Prometheus мы можем следить за состоянием сервера и своевременно анализировать аномалии. Подробные графики показывают полную картину функционирования сервера и позволяют администратору более точно определить причину некорректной работы. Большое количество готовых экспортеров может сполна покрыть большинство задач администрирования. Для наших клиентов облачного VPS хостинга, мы приготовили шаблон, с помощью которого вы сможете установить Debian 10 с предустановленным стеком Grafana\Prometheus\Node Exporter в считанные минуты и приступить к его настройке. Наша круглосуточная служба технической поддержки поможет с его базовой настройкой, если у вас возникнут сложности.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: