Thank you for reading this post, don't forget to subscribe!
Zipkin позволяет визуализировать трассировки, которые, в свою очередь, являются усовершенствованными логами (имеют идентификатор запроса для отслеживания конкретных логов для конкретного запроса).
В официальной документации описан процесс запуска Zipkin без автозапуска. Данный подход не очень удобен, если мы заходим поднять сервер с Zipkin. Рассмотрим процесс установки необходимых компонентов для работы последнего и его автозапуск.
Подготовка системы
Выполним несколько предварительных действий.
1. Установка пакетов
Нам понадобиться пакет curl для загрузки Zipkin. В зависимости от типа Linux, команды будут отличаться.
a) Для систем на основе DEB (Debian / Ubuntu / Astra Linux):
apt update
apt install curl
б) Для систем на основе RPM (Rocky Linux / CentOS):
yum install curl
2. Настройка брандмауэра
Для обработки сетевых запросов, нам нужно убедиться, что брандмауэр будет разрешать порт 9411, на котором по умолчанию слушает Zipkin.
В зависимости от используемой утилиты управления брандмауэром, наши действия будут немного отличаться:
а) Iptables (как правило, для систем на базе DEB):
iptables -I INPUT -p tcp --dport 9411 -j ACCEPT
Для сохранения правила используем iptables-persistent:
apt install iptables-persistent
netfilter-persistent save
б) Firewalld (как правило, для систем на базе RPM):
firewall-cmd --permanent --add-port=9411/tcp
firewall-cmd --reload
Установка и запуск Zipkin
Приложение Zipkin представляет из себя jar-файл, который может быть запущен с помощью платформы Java. Таким образом наш процесс будет разбит на установку последней и загрузку самого Zipkin.
Установка OpenJDK
В зависимости от дистрибутива Linux наши команды будут немного отличаться.
а) Для систем на основе DEB:
apt install default-jdk
б) Для систем на основе RPM:
yum install java-11-openjdk-devel
OpenJDK установлен.
После смотрим версию java:
java -version
Мы должны увидеть что-то на подобие:
openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu220.04)
…
Загрузка и запуск Zipkin
Для этого выполняем две команды:
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
Мы должны увидеть что-то на подобие:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
oo oooo oooooo oooooooo oooooooooo oooooooooooo ooooooo ooooooo oooooo ooooooo oooooo ooooooo oooooo o o oooooo oooooo oo oo oooooo ooooooo oooo oooo ooooooo oooooo ooooo ooooo ooooooo oooooo oooooo oooooo ooooooo oooooooo oo oo oooooooo ooooooooooooo oo oo ooooooooooooo oooooooooooo oooooooooooo oooooooo oooooooo oooo oooo ________ ____ _ _____ _ _ |__ /_ _| _ \| |/ /_ _| \ | | / / | || |_) | ' / | || \| | / /_ | || __/| . \ | || |\ | |____|___|_| |_|\_\___|_| \_| :: version 2.24.0 :: commit 025fb71 :: 2022-12-22 11:42:07.180 INFO [/] 6310 --- [oss-http-*:9411] c.l.a.s.Server : Serving HTTP at /0:0:0:0:0:0:0:0%0:9411 - http://127.0.0.1:9411/ |
Открываем браузер и переходим по адресу http://<адрес сервера>:9411 — должна открыться страница для создания запросов:
Zipkin работает. Прервем его работу комбинацией Ctrl + С и настроим автозапуск.
Настройка systemd
Создаем пользователя, от которого будет работать наш сервис:
useradd -r -c 'Zipkin service' zipkin
Создадим рабочий каталог и перенесем в него ранее скачанный файл jar:
mkdir /opt/zipkin
mv zipkin.jar /opt/zipkin/
Зададим права на данный каталог:
chown -R zipkin:zipkin /opt/zipkin
Создадим файл:
vi /etc/systemd/system/zipkin.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[Unit] Description=Zipkin Service Documentation=https://zipkin.io/ [Service] User=zipkin Group=zipkin Type=simple WorkingDirectory=/opt/zipkin ExecStart=/usr/bin/java -jar zipkin.jar #ExecStart=/bin/java -jar zipkin.jar ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target |
Обратите внимание на опцию ExecStart — ее значение может отличаться в зависимости от дистрибутива Linux. Точный путь к файлу java смотрите командой:
which java
Разрешаем сервис и стартуем его:
systemctl enable zipkin --now
Проверим состояние командой:
systemctl status zipkin