Связанные концепции
Точки мониторинга в микросервисах делятся на три категории в зависимости от области действия: ведение журнала, трассировка и метрики.
-
Ведение журнала — для регистрации дискретных событий. Например, отладочная информация или информация об ошибках для приложения. Это наша основа для диагностики проблем. Например, упомянутый нами ELK основан на ведении журнала.
-
Метрики — для записи агрегированных данных. Например, текущая глубина очереди может быть определена как метрика, которая обновляется, когда элементы помещаются в очередь или удаляются из очереди; количество HTTP-запросов может быть определено как счетчик, который накапливается по мере поступления новых запросов. prometheus фокусируется на области метрик.
-
Трассировка — для регистрации информации в области запроса. Например, процесс выполнения и трудоемкость вызова удаленного метода. Это наш инструмент для устранения проблем с производительностью системы. Наиболее часто используются Skywalking, ping-point, zipkin.
Сегодня мы в основном поговорим о мониторинге Prometheus, а затем разберемся с несколькими ключевыми компонентами, которые необходимо задействовать.
Prometheus
Prometheus (китайское название: Prometheus) — это система мониторинга с открытым исходным кодом и база данных временных рядов (TSDB), разработанная SoundCloud.Prometheus разработан на языке Go и представляет собой версию с открытым исходным кодом системы мониторинга Google BorgMon.
Основной принцип Prometheus заключается в том, чтобы периодически перехватывать состояние отслеживаемых компонентов через протокол HTTP. Любой компонент может получить доступ к мониторингу, если он предоставляет соответствующий HTTP-интерфейс. Никакого SDK или другого процесса интеграции не требуется. Интерфейс HTTP, который выводит информацию об отслеживаемых компонентах, называется экспортером.Большинство компонентов, обычно используемых в разработке, в настоящее время имеют экспортеры, которые можно использовать напрямую, такие как Nginx, MySQL, системная информация Linux, Mongo, ES и т. д.
exporter
Prometheus можно понимать как базу данных + инструмент сбора данных.Инструмент собирает унифицированные данные из разных мест и помещает их в базу данных временных рядов под названием prometheus.Как сделать так, чтобы формат данных везде был унифицирован?Именно через этот экспортер.Exporter is общий термин для класса компонентов сбора данных. Экспортер отвечает за сбор данных от цели и их преобразование в формат, поддерживаемый Prometheus. Он открывает интерфейс http (чтобы Prometheus мог собирать данные). Отличается от традиционных компонентов сбора данных. Дело в том, что Экспортер не отправляет данные на центральный сервер, а ждет, пока центральный сервер (такой как Prometheus и т.п.) проявит инициативу по их извлечению.github.com/prometheusЕсть много письменных экспортеров, которые можно загрузить и использовать напрямую.
Grafana
Grafana — это графический инструмент, он может считывать данные из многих источников данных (таких как Prometheus), использовать очень красивые диаграммы для отображения данных, и есть много панелей с открытым исходным кодом, которые можно использовать, вы можете быстро создать очень красивую платформу мониторинга. . Его отношения с Prometheus аналогичны Kibana и ElasticSearch.
Подготовка окружающей среды
Пожалуйста, загрузите следующее программное обеспечение перед началом настройки (загрузка непосредственно с официального сайта github или grafana слишком медленная, загрузка происходит очень быстро и легко, для загрузки рекомендуется использовать Thunder).
Установить
Подготовьте два сервера, один для установки prometheus и grafana и один для размещения компонентов экспортера. Создайте папку приложения и загрузите соответствующее программное обеспечение на сервер.
- 192.168.249.131 прометей, графана
- 192.168.249.129 exporter
prometheus
Используйте следующую команду оболочки для установки и запуска
tar zxvf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64 prometheus
cd prometheus
nohup ./prometheus &
После завершения запуска откройте его в браузере.http://192.168.249.131:9090
Доступ, эффект следующий:
grafana
Используйте следующую команду оболочки для установки и запуска
tar grafana-6.4.3.linux-amd64.tar.gz
cd grafana-6.4.3
nohup ./grafana-server &
После завершения запуска откройте его в браузере.http://192.168.249.131:3000
Для доступа пароль учетной записи по умолчанию — admin/admin, и вам необходимо изменить пароль для первого входа в систему.Эффект изменения пароля и входа в систему следующий:
node_exporter
Используйте следующую команду оболочки для установки и запуска
tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
nohup ./node_exporter &
Средство экспорта узлов использует порт 9100 по умолчанию, вы можете использовать --web.listen-address=":9200" для указания номера порта.
После завершения запуска откройте его в браузере.http://192.168.249.129:9100/
Доступ, эффект отображения выглядит следующим образом:
настроить
prometheus
Войдите в каталог установки prometheus и изменитеprometheus.yml
файл, добавить задание мониторингаserver-192.168.249.129
, полная конфигурация выглядит следующим образом:
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: '192.168.249.129'
static_configs:
- targets: ['192.168.249.129:9100']
После завершения настройки перезапустите prometheus, чтобы проверить состояние мониторинга.
grafana
-
Настроить источник данных prometheus
-
идти сОфициальный сайтИщем соответствующий циферблат, выбираем node exporter для мониторинга дашборда
-
Импортировать циферблаты в grafana
-
Проверьте эффект мониторинга
На данный момент среда мониторинга на базе Prometheus завершена, можете попробовать сами.
Последние горячие статьи
-
Springboot2.x + ShardingSphere реализует подбазу данных и подтаблицу
-
Идея дизайна пользовательской бизнес-будильника на основе elasticsearch
Для получения дополнительной информации, пожалуйста, обратите внимание на публичный номер: JAVA Daily Record