Как да

Наблюдавайте Apache Kafka с Прометей и Графана

Наблюдавайте Apache Kafka с Прометей и Графана

В последните ни ръководства видяхме как да инсталираме Kafka както в Ubuntu 20, така и в CentOS 8. Имахме кратко въведение за Kafka и за това какво прави той. Докато продължавате да използвате Kafka, скоро ще забележите, че бихте искали да наблюдавате вътрешностите на вашия сървър Kafka. Това ще бъде особено важно за проследяване на вашите производители, потребители и други показатели като теми и дялове. Освен това наблюдението на хост сървъра, където е инсталиран Kafka, е полезно, за да имате представа за неговите ресурси и да бъдете нащрек, преди нещата да излязат извън контрол. За да задоволите тази нужда, която скоро ще имате, това ръководство ще се съсредоточи върху това как да наблюдавате своя Kafka с помощта на познати инструменти, това са Прометей и Графана.

Предварителни условия за настройка

За да имаме тази настройка, ще се нуждаем от някои неща, които вече са заети и заети. Първо, ще ни е необходим клъстер Kafka, към който можете да се насочите, следвайки ръководствата за това как.

Инсталирайте и конфигурирайте Apache Kafka на Ubuntu

Инсталирайте и конфигурирайте Apache Kafka с CMAK на CentOS 8

Другото изискване е настройката на Prometheus. В случай, че нямате инсталиран Prometheus, не се притеснявайте, защото вече имаме красиво ръководство, което ще ви помогне да го инсталирате бързо. Моля, следвайте как да инсталирате ръководството на Prometheus и да го инсталирате.

Инсталирайте Prometheus Server на Ubuntu | Debian

Как да инсталираме Prometheus на RHEL 8 / CentOS 8

Второ, ще ни трябва и Графана да работи. Ако няма инсталирана Grafana, с удоволствие имаме друго ръководство, което ще сортира това. Следвайте как да инсталирате Grafana, за да го стартирате.

Как да инсталирате Grafana 6 на CentOS 7

Как да инсталирате Grafana на CentOS 8 / RHEL 8

Инсталирайте Grafana на Ubuntu | Debian

Стъпка 1: Изтеглете Prometheus JMX Exporter

Prometheus е мощен и популярен инструмент и база данни с времеви редове с отворен код, който съхранява и излага показатели и статистика. Изложените данни могат да се използват от инструменти като Grafana като източник на данни за създаване на красиви и проницателни графики и диаграми за по-добра видимост на вашите приложения и сървъри. Apache Kafka е разработен с помощта на Java и затова ще ни е необходим експортер на Java за изстъргване (извличане) на показатели, така че Prometheus да може да консумира, съхранява и излага.

Експортерите на Prometheus се използват за извличане и експортиране на метрики от данни във вашия екземпляр на Prometheus. Един от тези износители е Java Extensions Management Extensions (JMX), който се фокусира върху Java приложения. Той дава на разработчиците възможност да изложат метрики, статистически данни и основни операции на Java приложение по стандартен начин, който Prometheus разбира. Поради тази причина ще изтеглим и инсталираме износител на Prometheus, за да можем да изтеглим показателите на Kafka. Посетете хранилището на Mavens prometheus jmx-exporter, за да получите файла на jar. На вашия сървър можете да използвате wget или къдрица да го изтеглите, както следва:

cd ~ wget https: // repo1.maven.org / maven2 / io / prometheus / jmx / jmx_prometheus_javaagent / 0.13.0 / jmx_prometheus_javaagent-0.13.0.буркан

След като изтеглите JMX Exporter, ние ще продължим да го копираме в lib директорията на Kafka, където съхранява своите jar файлове. В предишното ни ръководство копирахме файловете на Kafka в / usr / local / kafka-server / директория. Поради това ще копираме jmx_prometheus_javaagent jar файла в / usr / local / kafka-server / libs /. Уверете се, че знаете къде е домашната директория на вашия Kafka, там ще намерите крайници директория.

sudo cp jmx_prometheus_javaagent-0.13.0.jar / usr / local / kafka-server / libs /

Стъпка 2: Конфигурирайте нашия износител

След това ще трябва да конфигурираме нашия JMX Exporter, за да знае какво ще извлече от Kafka. За да обясня накратко това, конфигурацията представлява колекция от регулярни изрази, които именуват и филтрират показателите за Prometheus. Благодарение на Prometheus те имат примерни конфигурации в това хранилище на GitHub. Ние ще използваме kafka-2_0_0.yml примерна конфигурация в тази настройка.

$ cd / usr / local / kafka-server / config / $ sudo nano sample_jmx_exporter.yml

Дублирайте съдържанието му във файл в конфигурационната директория в домашната директория на Kafka.

smallcaseOutputName: истински правила: # Специални случаи и много специфични правила - модел: kafka.сървър<> Име на стойност: kafka_server_ $ 1_ $ 2 тип: GAUGE етикети: clientId: "$ 3" тема: "$ 4" дял: "$ 5" - модел: kafka.сървър<> Име на стойност: kafka_server_ $ 1_ $ 2 тип: GAUGE етикети: clientId: "$ 3" брокер: "$ 4: $ 5" - модел: kafka.координатор.(\ w +)<> Име на стойността: kafka_coordinator_ $ 1_ $ 2_ $ 3 тип: GAUGE # Общи броячи за секунда с двойки ключ 0 / стойност 0-2 - модел: kafka.(\ w +)<> Име на преброяване: kafka_ $ 1_ $ 2_ $ 3_ общ тип: COUNTER етикети: "$ 4": "$ 5" "$ 6": "$ 7" - модел: kafka.(\ w +)<> Име на преброяване: kafka_ $ 1_ $ 2_ $ 3_ общ тип: COUNTER етикети: "$ 4": "$ 5" - модел: kafka.(\ w +)<> Име на преброяване: kafka_ $ 1_ $ 2_ $ 3_ общ тип: БРОЯЧ - модел: kafka.сървър<> ([a-z -] +) name: kafka_server_quota_ $ 3 type: GAUGE labels: resource: "$ 1" clientId: "$ 2" - pattern: kafka.сървър<> ([a-z -] +) name: kafka_server_quota_ $ 4 type: GAUGE labels: resource: "$ 1" user: "$ 2" clientId: "$ 3" # Генерични измервателни уреди с 0-2 двойки ключ / стойност - модел: kafka.(\ w +)<> Име на стойност: kafka_ $ 1_ $ 2_ $ 3 тип: GAUGE етикети: "$ 4": "$ 5" "$ 6": "$ 7" - модел: kafka.(\ w +)<> Име на стойност: kafka_ $ 1_ $ 2_ $ 3 тип: GAUGE етикети: "$ 4": "$ 5" - модел: kafka.(\ w +)<> Име на стойността: kafka_ $ 1_ $ 2_ $ 3 тип: GAUGE # Emulate Prometheus 'Summary' метрики за експортираните 'Histogram's. # # Имайте предвид, че в тях липсва показателят '_sum'! - модел: kafka.(\ w +)<> Име на преброяване: kafka_ $ 1_ $ 2_ $ 3_ Тип на броя: COUNTER етикети: "$ 4": "$ 5" "$ 6": "$ 7" - модел: kafka.(\ w +)<> (\ d +) thPercentile name: kafka_ $ 1_ $ 2_ $ 3 type: GAUGE labels: "$ 4": "$ 5" "$ 6": "$ 7" quantile: "0.$ 8 "- модел: kafka.(\ w +)<> Име на преброяване: kafka_ $ 1_ $ 2_ $ 3_ Тип на броя: COUNTER етикети: "$ 4": "$ 5" - модел: kafka.(\ w +)<> (\ d +) thPercentile name: kafka_ $ 1_ $ 2_ $ 3 type: GAUGE labels: "$ 4": "$ 5" quantile: "0.$ 6 "- модел: kafka.(\ w +)<> Име на преброяване: kafka_ $ 1_ $ 2_ $ 3_ тип на броя: COUNTER - модел: kafka.(\ w +)<> (\ d +) thPercentile name: kafka_ $ 1_ $ 2_ $ 3 type: GAUGE labels: quantile: "0.$ 4 "

Запазете файла и преминете към следващата стъпка.

Стъпка 3: Конфигурирайте Kafka Broker да използва износителя на JMX

Засега имаме всичко, от което се нуждаем, за да започнем да извличаме показателите на Kafka. Остава единствено да свържете износителя на JMX с нашия Kafka Broker. Без забавяне, нека да свършим това веднага. Отворете скрипта за стартиране на сървъра Kafka и добавете JMX конфигурацията в края на файла, както е показано по-долу. Всички скриптове са в директорията bin в домашната папка на Kafka.

$ cd / usr / local / kafka-server / bin / $ sudo vim kafka-server-start.ш #!/ bin / bash # Лицензирано на Apache Software Foundation (ASF) съгласно едно или повече лицензионни споразумения # сътрудници. Вижте файла NOTICE, разпространен с # this work за допълнителна информация относно притежаването на авторски права. # ASF ви лицензира този файл под лиценза Apache, версия 2.0 # („Лицензът“); не можете да използвате този файл, освен в съответствие с # лиценза. Можете да получите копие на лиценза на # # http: // www.апаш.org / лицензи / ЛИЦЕНЗИЯ-2.0 # # Освен ако не се изисква от приложимото законодателство или не е уговорено писмено, софтуерът #, разпространяван под лиценза, се разпространява на "КАКВО Е" ОСНОВА, # БЕЗ ГАРАНЦИИ ИЛИ УСЛОВИЯ НА ВСЯКАКВИ ВИД, изрични или подразбиращи. # Вижте лиценза за конкретния език, регулиращ разрешенията и # ограниченията съгласно лиценза. ако [$ # -lt 1]; след това echo "USAGE: $ 0 [-daemon] сървър.свойства [--override свойство = стойност] * "изход 1 fi base_dir = $ (dirname $ 0), ако [" x $ KAFKA_LOG4J_OPTS "=" x "]; след това експортирайте KAFKA_LOG4J_OPTS =" - Dlog4j.конфигурация = файл: $ base_dir /… / config / log4j.свойства "fi if [" x $ KAFKA_HEAP_OPTS "=" x "]; след това експортирайте KAFKA_HEAP_OPTS =" - Xmx1G -Xms1G "fi EXTRA_ARGS = $ EXTRA_ARGS -'- name kafkaServer -loggc ' COMMAND = $ 1 case $ COMMAND in -daem $ COMMAND in -daem $ COMMAND in -daem $ COMMAND in -daem $ COMMAND in -daem ) EXTRA_ARGS = "- демон" $ EXTRA_ARGS shift ;; *) ;; esac exec $ base_dir / kafka-run-class.sh $ EXTRA_ARGS kafka.Kafka "[имейл защитен]" ### ДОБАВЕТЕ ЛИНИЯТА ПО-ДОЛУ ### износ KAFKA_OPTS = "- javaagent: / usr / local / kafka-server / libs / jmx_prometheus_javaagent-0.13.0.jar = 7075: / usr / local / kafka-server / config / sample_jmx_exporter.yml "

Ако използвате systemd, добавете реда към системния файл на kafka под [Обслужване] раздел като Околен свят както е показано по-долу:

[Услуга] Тип = проста среда = "JAVA_HOME = / usr / lib / jvm / java-11-openjdk-amd64" ## Добавяне на реда под Environment = "KAFKA_OPTS = -javaagent: / usr / local / kafka-server / libs / jmx_prometheus_javaagent-0.13.0.jar = 7075: / usr / local / kafka-server / config / sample_jmx_exporter.yml "ExecStart = / usr / local / kafka-server / bin / kafka-server-start.sh / usr / local / kafka-server / config / server.свойства ExecStop = / usr / local / kafka-server / bin / kafka-server-stop.sh Рестартирайте = on-abnormal

След добавяне на реда в края на kafka-сървър-старт.ш скрипт или в systemd файл, рестартирайте Kafka broker.

sudo systemctl рестартирайте kafka.обслужване

Проверете дали услугата е стартирана, като проверите съществуването на конфигурирания порт. Ако имате работеща защитна стена и вашият сървър Prometheus е на друг сървър, тогава трябва да помислите за разрешаване на достъпа до този порт.

$ sudo ss -tunelp | grep 7075 tcp СЛУШАЙТЕ 0 3 [::]: 7075 [::]: * потребители: (("" java ", pid = 31609, fd = 100)) uid: 1000 ino: 5391132 sk: ffff977c74f86b40 v6only: 0 <->

Разрешаване на порт на защитната стена

----Ubuntu ---- $ sudo ufw allow 7075 ---- CentOS ---- $ sudo firewall-cmd --permanent --add-port = 7075 / tcp $ sudo firewall-cmd --reload

Отворете браузъра си и го насочете към IP или FQDN на вашия сървър и порт. http: // [IP или FQDN]: 7075. Трябва да видите показатели за данни, както е показано по-долу

Добри неща! Нашият износител JMX работи според очакванията. Сега нека се преместим, за да добавим данните, изложени на Prometheus

Стъпка 4: Добавете данни на Kafka към Prometheus

Влезте във вашия Prometheus сървър и ви позволява да конфигурирате този нов източник като цел за данни. Ако сте следвали това ръководство, за да инсталирате Prometheus на Debian | Ubuntu или на RHEL 8 | CentOS 8, тогава конфигурационният му файл е в / etc / prometheus / прометей.yml. Моля, намерете конфигурационния му файл, отворете го и редактирайте, както е показано по-долу

$ sudo vim / etc / prometheus / prometheus.yml # my global config global: scrape_interval: 15s # Задайте интервала на изстъргване на всеки 15 секунди. По подразбиране е на всяка 1 минута. оценка_интервал: 15 секунди # Оценявайте правилата на всеки 15 секунди. По подразбиране е на всеки 1 минута. # scrape_timeout е зададено на глобалното подразбиране (10 секунди). # Предупреждение за конфигуриране на Alertmanager: alertmanagers: - static_configs: - цели: # - alertmanager: 9093 # Заредете правила веднъж и периодично ги оценявайте в съответствие с глобалния 'interval_valuation'. rule_files: # - "first_rules.yml "# -" втори_правила.yml "# Конфигурация за изстъргване, съдържаща точно една крайна точка за изстъргване: # Тук това е самият Прометей. scrape_configs: # Името на заданието се добавя като етикет 'job ='към всички времеви серии, изтрити от тази конфигурация. ##### ИЗМЕНЕТЕ ИМЕТО НА РАБОТАТА В KAFKA КАТО ПО-ДОЛУ ####### - job_name: 'kafka' # metrics_path по подразбиране на '/ metrics' # схема по подразбиране на 'http'. ##### ИЗМЕНЕТЕ ЦЕЛТА НА IP И ПРИСТАНИЩЕТО НА УСЛУГАТА JMX САМО ИНСТАЛИРАНИ ####### static_configs: - цели: ['10.38.83.154: 7075 ']

Можете да потвърдите, че тази цел е добавена успешно във вашия уеб интерфейс Prometheus. Отворете го с помощта на браузъра си, след което кликнете върху Състояние> Цели. Ако бъде успешно добавен, трябва да го видите, както е илюстрирано по-долу.

Неговото състояние трябва да бъде „НАГОРЕ“

Засега това е страхотно. След това ще използваме данните, които Prometheus ще съхранява като източник на данни на Grafana, за да можем да видим нашите метрики със стил.

Стъпка 5: Добавете показатели на Kafka към Grafana

Сега сме на последната и най-добрата част. Тук ще добавим Прометей като наш източник на данни, след което ще го визуализираме с красиви графики и диаграми. Влезте във вашия Grafana уеб интерфейс и продължете както следва. Ако не сте инсталирали Grafana, любезно ни използвайте ръководствата по-долу, за да го вдигнете бързо.

Как да инсталирате Grafana на CentOS 8 / RHEL 8

Инсталирайте Grafana на Ubuntu | Debian

Как да инсталирате Grafana на CentOS 7

Добавете източник на данни

След като влезете в уеб интерфейса на Grafana, щракнете върху иконата на зъбно колело за настройки, след което изберете „Източници на данниОпция от падащия списък.

Това ще отвори менюто Източници на данни, където можете да добавите още. Кликнете върху "Добавяне на източник на данни" раздел

Както се досещате, ние ще изберем Прометей тъй като това е, което вече сме конфигурирали преди.

След като изберем източника на данни на Prometheus, ще трябва да кажем на Grafana къде да намери сървъра на Prometheus. Издайте сладко име и вашия IP и порт, до който работи Prometheus url.

Можете допълнително да добавите Интервал на изстъргване, изчакване на заявката и HTTP метод. След това кликнете върху „Запазване и тестванеБутон ”. Ако всичко върви добре, трябва да се появи зеленото съобщение. В случай на грешки, уверете се, че вашият сървър Prometheus работи и е достъпен. Отворете порта му, в случай че е зад защитна стена.

Импортиране на таблото за управление

След като приключим с добавянето на източника на данни, ще продължим и ще добавим табло за управление, което ще визуализира какво е в източника на данни. Докато все още сте на Grafana, кликнете върху + след това изберете Внос защото ще използваме вече направено табло за управление, създадено от Здраво възприятие. Идентификационният му номер е 721

На страницата за импортиране издайте идентификатора 721 след това кликнете върху „ЗаредетеБутон ”.

Следващата страница ще ви попита за име, след което трябва да изберете източника на данни, който добавихме в падащото меню в долната част на страницата. След като приключите, просто кликнете върху „Внос„.

И трябва да покажете вашите показатели чудесно, както са споделени по-долу.

Заключение

Вече имате показателите на Kafka добре показани на Grafana и следователно имате по-дълбока видимост на вашите теми и други. Оценяваме вашата постоянна подкрепа и се надяваме ръководството да е полезно. Благодарим на всички създатели на инструментите, използвани в това ръководство, за да подобрят живота на разработчиците и администраторите. За други ръководства, които приличат на този, вижте по-долу.

Инсталирайте и конфигурирайте Telegraf на RHEL 8 / CentOS 8

Разполагане на Прометей в клъстера EKS Kubernetes

Как да инсталираме Prometheus и node_exporter на Debian 10 (Buster)

Наблюдавайте Etcd клъстер с Прометей и Графана

Мониторинг на Redis Server с Prometheus и Grafana за 5 минути

Следете производителността на Linux сървъра с Prometheus и Grafana за 5 минути

Как да наблюдаваме уеб сървъра на Apache с Prometheus и Grafana за 5 минути

Наблюдавайте BIND DNS сървър с Prometheus и Grafana

Машинното обучение се използва за идентифициране на болни растения от марихуана
Може вече да не е толкова незаконно, както някога, но марихуаната / канабисът все още е голям бизнес, независимо дали се използва за развлечение или з...
QTrobot може да се използва като връзка между деца аутисти, терапевти и родители
Всеки, който е бил около дете аутист, знае колко е трудно за тях да се свържат с другите. Те често замръзват или играят и не позволяват. Но робот на и...
Нова уязвимост на процесора на Intel, „Foreshadow“, позволява на атакуващите да крадат данни
Просто става все по-трудно и по-трудно да предпазим технологията си от любопитни очи и ръце. Изглежда всеки път, когато се обърнем, се появява нов нед...