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

Обновлено и опубликовано Опубликовано:

В двух словах, 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

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


                  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

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

[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

# DevOps # Linux # Мониторинг
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет