Установка и запуск Zipkin в качестве сервиса

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

Мы долж­ны уви­деть что-то на подобие:

Откры­ва­ем бра­у­зер и пере­хо­дим по адре­су 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

Обра­ти­те вни­ма­ние на опцию ExecStart — ее зна­че­ние может отли­чать­ся в зави­си­мо­сти от дис­три­бу­ти­ва Linux. Точ­ный путь к фай­лу java смот­ри­те командой:

which java

Раз­ре­ша­ем сер­вис и стар­ту­ем его:

systemctl enable zipkin --now

Про­ве­рим состо­я­ние командой:

systemctl status zipkin