MAATRIX / Блог / Traccar имеет смысл там, где трекер от оператора уже не тянет

Traccar имеет смысл там, где трекер от оператора уже не тянет

MAATRIX

Каждый трекер на технике — это не только сама коробочка с антенной, но и ежемесячная строчка в счёте сервиса мониторинга, которая растёт с числом единиц техники и не думает останавливаться. Traccar — open-source сервер, который принимает те же данные с того же трекера напрямую, без посредника с подпиской. Это реальная экономия, но не бесплатный обед: вместо ежемесячного платежа вы получаете сервер, который сами устанавливаете, обновляете и чините, когда что-то ломается в три часа ночи. Разберём честно, что вы получаете и что теряете при переходе.

Что такое Traccar и зачем он нужен именно для трекеров

Traccar — это сервер на Java, который умеет одну задачу очень хорошо: принимать пакеты данных от GPS/ГЛОНАСС-трекеров разных производителей, разбирать их протоколы, складывать координаты и события в базу данных и отдавать это в виде карты, истории треков, геозон и уведомлений через веб-интерфейс. Проект существует давно, активно поддерживается, и в его конфигурации заявлена поддержка нескольких сотен протоколов конкретных моделей трекеров — от бюджетных китайских коробочек за пару тысяч рублей до промышленных решений с CAN-шиной и датчиками уровня топлива.

Важно понимать, чем Traccar принципиально не является. Это не универсальная платформа для «интернета вещей» в широком смысле — не система для приёма произвольной телеметрии с самодельных датчиков температуры, влажности или показаний счётчиков. Для такой задачи существуют другие инструменты класса IoT-платформ (например, ThingsBoard), которые работают с MQTT, произвольными схемами данных и кастомными дашбордами под любой тип устройства, но требуют самостоятельно описывать формат данных под каждый новый тип сенсора. Traccar устроен ровно наоборот: узкоспециализирован под трекеры транспорта и техники и из коробки понимает протоколы сотен конкретных моделей без дополнительного программирования — не нужно писать парсер, если ваш трекер уже есть в списке поддерживаемых. Это осознанный компромисс: меньше гибкости за пределами GPS-трекинга, зато почти нулевые трудозатраты на подключение стандартного трекера.

Из коробки Traccar даёт:

  • сервер приёма протоколов (собственно ядро);
  • веб-интерфейс с картой, историей треков и отчётами (пробег, простои, превышения скорости);
  • геозоны и уведомления (выезд за периметр, потеря связи, низкий заряд);
  • REST API для интеграции с внешними системами — например, чтобы вытащить координаты в свою CRM или диспетчерскую программу;
  • мобильные приложения Traccar Client для Android и iOS, если нужно отслеживать не оборудование, а телефон сотрудника;
  • поддержку команд на трекер (там, где протокол это позволяет) — запрос текущих координат, ограничение скорости, блокировка двигателя.

Установка: Docker Compose, база данных, первый запуск

Практически все актуальные инструкции по Traccar сводятся к Docker — это заметно упрощает и установку, и последующие обновления, потому что не нужно вручную ставить Java нужной версии и следить за системными зависимостями. Официальный образ — traccar/traccar.

Минимальный docker-compose.yml с PostgreSQL в качестве хранилища:

services:
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_DB: traccar
      POSTGRES_USER: traccar
      POSTGRES_PASSWORD: замените_на_свой_пароль
    volumes:
      - traccar_db:/var/lib/postgresql/data

  traccar:
    image: traccar/traccar:latest
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8082:8082"
      - "5000-5150:5000-5150/tcp"
      - "5000-5150:5000-5150/udp"
    volumes:
      - ./traccar.xml:/opt/traccar/conf/traccar.xml:ro
      - traccar_data:/opt/traccar/data
      - traccar_logs:/opt/traccar/logs

volumes:
  traccar_db:
  traccar_data:
  traccar_logs:

Диапазон портов 5000-5150 — это ориентир: в поставке Traccar идёт файл default.xml, где каждому протоколу назначен свой порт, и точный список нужно смотреть в конфиге именно вашей версии — он меняется от релиза к релизу, а под конкретный парк трекеров реально нужны обычно один-два-три порта, а не весь диапазон разом. Открывать на файрволе стоит только те порты, протоколы которых у вас реально используются, а не весь список «на всякий случай».

Файл traccar.xml — это то место, где прописывается подключение к базе:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
    <entry key='database.driver'>org.postgresql.Driver</entry>
    <entry key='database.url'>jdbc:postgresql://db:5432/traccar</entry>
    <entry key='database.user'>traccar</entry>
    <entry key='database.password'>замените_на_свой_пароль</entry>
</properties>

После docker compose up -d веб-интерфейс поднимается на 8082, при первом входе создаётся администратор — этот шаг лучше сделать сразу за закрытым портом (например, временно ограничив 8082 своим IP на файрволе), прежде чем панель станет доступна из интернета. Дальше через веб-интерфейс добавляются устройства (идентификатор трекера, обычно IMEI), и как только трекер начинает слать данные на порт своего протокола, точки появляются на карте.

Для небольшого числа трекеров (до нескольких десятков) хватает 2 ядер и 2-4 ГБ RAM с запасом на рост; PostgreSQL стоит держать на SSD — паттерн нагрузки здесь — частая запись мелких строк с координатами, и на HDD это заметно проседает при накоплении истории за месяцы.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Протоколы трекеров: сила Traccar и её оборотная сторона

Главное практическое преимущество Traccar перед тем, чтобы писать приёмник данных с нуля, — это готовая библиотека парсеров под конкретные модели. Но у этой же силы есть обратная сторона, о которой стоит знать заранее.

Как узнать протокол своего трекера. Обычно это указано в документации на модель либо его можно уточнить у поставщика оборудования — производитель, как правило, документирует, по какому протоколу трекер общается с сервером (одни используют собственный проприетарный формат, другие — один из широко распространённых открытых протоколов). Список поддерживаемых Traccar протоколов стоит сверять с официальной документацией проекта прямо на момент установки — он обновляется от версии к версии, и полагаться на статьи многолетней давности не стоит.

Что если протокол не поддерживается. Такое случается с редкими, устаревшими или совсем свежими моделями, которых ещё не успели добавить в проект. Варианта три: подождать нового релиза (сроков никто не гарантирует), предложить парсер самостоятельно (Traccar — open source, вклад сообщества туда и попадает), либо для этой конкретной единицы техники оставить трекер на прежнем облачном сервисе, а остальной парк перевести на свой сервер. Смешанная схема — рабочий вариант для разношёрстного парка трекеров разных поколений.

Обновление прошивки трекера меняет протокол. Грабля, которая всплывает не сразу: если производитель выкатывает обновление прошивки удалённо, формат пакетов данных иногда меняется незаметно для вас — и сервер, который вчера прекрасно понимал трекер, сегодня получает данные, которые не может разобрать, или разбирает их неправильно (например, путает единицы измерения скорости). Это не вина Traccar, а особенность работы с закрытым железом, за прошивку которого отвечает производитель, а не вы. Единственная защита — мониторинг самого факта поступления данных с каждого трекера, а не только визуальная проверка карты раз в неделю.

Сеть и безопасность: сервер, открытый в интернет

GPS-трекер не умеет работать через NAT так, как это делает браузер, — он должен достучаться до вашего сервера по заранее прописанному в его настройках IP-адресу (или домену) и порту. Это значит два обязательных условия:

  • Белый статический IP (или домен, который на него указывает) — без этого трекеры физически не смогут найти сервер после каждой смены адреса.
  • Открытые входящие порты для протоколов, которые вы используете — TCP или UDP, в зависимости от конкретного протокола трекера.

Отсюда требование к дисциплине файрвола. Порты протоколов трекеров должны быть открыты наружу — это нормально, иначе телематика просто не будет работать, и по этому принципу устроены все сервисы мониторинга в мире, не только self-hosted. А вот административные интерфейсы — веб-интерфейс Traccar, SSH-доступ, порт базы данных — открывать наружу не нужно вообще: их стоит либо ограничить по IP (офис, VPN-шлюз), либо вывести за VPN целиком, оставив в открытом доступе только порты приёма данных от трекеров. Базовая настройка ufw с явным списком разрешённых портов — рабочий вариант для такой задачи, подробный разбор частых ошибок при её настройке есть в материале про firewall ufw на VPS.

Второй момент — данные, которые вы принимаете и храните. Координаты техники, привязанные к водителю или сотруднику за рулём, в большинстве юрисдикций формально являются персональными данными, а не просто телеметрией железа. Self-hosted вариант здесь не хуже облачного сервиса — часто ровно наоборот, потому что вы точно знаете, где физически лежит база, — но вопрос стоит явно проговорить с юристом компании, особенно если техника перемещается между странами. Общий разбор того, где законно держать сервер с такими данными, есть в материале про размещение сервера с персональными данными.

Экономика: когда переход реально окупается

Точную сумму экономии без реальных цифр вашего текущего тарифа посчитать нельзя — подписки на GPS-мониторинг у разных вендоров отличаются заметно, и на них влияет число единиц техники, набор функций (отчёты, геозоны, интеграция с 1С) и регион. Но логика расчёта простая и её стоит один раз проделать на своих цифрах, а не оценивать «на глаз».

Подписка на трекингСвой сервер с Traccar
Как считается платаЗа единицу техники, ежемесячноФиксированная аренда сервера
Рост при добавлении техникиЛинейный, без потолкаПочти не меняется до определённого масштаба
Кто отвечает за доступностьВендорВы (или тот, кому доверили администрирование)
Гибкость отчётов и интеграцийВ рамках интерфейса вендораПолная, включая REST API
Порог входаГотово из коробкиТребует разовой настройки

Смысл перехода становится заметен там, где число единиц техники (машин, спецтехники, погрузчиков, катеров — протоколы Traccar не ограничены грузовиками) переваливает за десяток-другой: ежемесячная подписка на такой парк, как правило, уже сопоставима или превышает стоимость аренды сервера, которого для приёма телематики достаточно с большим запасом. При совсем маленьком числе трекеров — три-пять — возиться с собственным сервером обычно не окупает время на настройку и сопровождение, и подписка остаётся разумным выбором. Развёрнутый разбор именно такого перехода — с конкретной последовательностью шагов миграции без разрыва мониторинга — есть в статье про GPS-мониторинг автопарка на своём сервере. Общую методику расчёта «сервис или своё» разбирает материал про цену мониторинга.

Что реально ложится на вас после установки

Это тот раздел, который часто пропускают в восторженных статьях про self-hosted-альтернативы, а зря — именно здесь чаще всего разочаровываются в переходе.

Обновления сервера. Traccar регулярно выпускает новые версии — с исправлениями безопасности, новыми протоколами, иногда с изменениями в структуре базы данных. Обновление образа Docker до новой мажорной версии стоит тестировать не на боевом сервере, а на копии — миграции схемы базы данных иногда требуют времени на больших объёмах истории, и лучше узнать об этом заранее, а не во время рабочего окна, когда диспетчеры ждут карту.

Бэкапы. База с историей треков — это то, что жалко потерять при сбое диска, а восстановить историю с нуля невозможно в принципе (в отличие от, скажем, конфигурации сервера, которую можно пересобрать). Регулярный дамп PostgreSQL на отдельный диск или в другое хранилище — не опциональная надстройка, а обязательный пункт с первого дня эксплуатации, а не «сделаем, когда будет время».

Мониторинг самого сервера, а не только карты. Диспетчер смотрит на карту и видит, что все машины на месте — это не то же самое, что сервер здоров. Нужно отдельно следить за местом на диске (история треков растёт постоянно и предсказуемо, но растёт), доступностью портов приёма данных и тем, что сервис вообще жив после перезагрузки или обновления системы. Иначе легко оказаться в ситуации, когда мониторинг парка сам стал тем сервисом, за которым никто не следит.

Реакция на инциденты — теперь ваша, а не вендора. Раньше за uptime незаметно для вас отвечал провайдер; при своём сервере это ответственность внутри компании — штатного администратора или подрядчика на аутсорсе. Если сервер приёма данных недоступен несколько часов, часть трекеров без буферизации теряет эти данные безвозвратно — некритично для сводного отчёта за месяц, но может быть важно как доказательство местонахождения техники в конкретный момент.

Поддержка новых моделей трекеров при расширении парка. Перед покупкой партии техники с новым трекером стоит один раз проверить, поддерживает ли Traccar его протокол — иначе есть риск закупить оборудование, для стыковки с которым понадобится ждать релиза с нужным парсером или держать для этой партии отдельный сервис мониторинга.

Честная итоговая формула такая: Traccar убирает плату за единицу техники, но не убирает саму работу по эксплуатации — она просто переходит от вендора к вам. Если в компании нет человека, готового уделять этому хотя бы несколько часов в месяц на регулярной основе, экономию на подписке стоит сразу мысленно уменьшить на стоимость этого времени (своего или подрядчика), а не считать сервер бесплатным после разовой настройки.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Traccar бесплатный?

Сам сервер и его исходный код — да, open source. Платите вы за аренду сервера, на котором он работает, и опционально за время администрирования, если делаете это не сами.

Нужно ли менять трекеры на технике при переходе на Traccar?

В большинстве случаев нет — достаточно поменять в настройках трекера адрес сервера, на который он шлёт данные, если модель трекера использует протокол, который Traccar поддерживает.

Чем Traccar отличается от универсальных IoT-платформ вроде ThingsBoard?

Traccar заточен именно под GPS/ГЛОНАСС-трекеры транспорта и техники и понимает протоколы конкретных моделей из коробки. Универсальные IoT-платформы работают с произвольной телеметрией любых датчиков через общие протоколы вроде MQTT, но формат данных под каждый новый тип устройства там обычно приходится описывать самостоятельно.

Можно ли перевести только часть парка на свой сервер, а остальное оставить на подписке?

Да, и это разумная стратегия перехода — параллельный запуск на нескольких единицах техники в течение недели-двух до перевода остального парка снижает риск остаться без мониторинга, если что-то пойдёт не так.

Нужен ли отдельный сервер только под Traccar?

Не обязательно. Если у компании уже есть сервер под другие задачи и запас по ресурсам, Traccar в большинстве случаев можно развернуть в отдельном Docker-контейнере на нём же — нагрузка от приёма телематики для парка в десятки единиц техники обычно умеренная.

Что делать, если производитель трекера обновил прошивку и данные перестали разбираться корректно?

Проверить, не изменился ли формат пакетов после обновления (это стоит уточнить у производителя), и свериться с актуальной версией парсера этого протокола в Traccar — иногда достаточно обновить сам Traccar до свежего релиза, если поддержку изменённого формата уже добавили.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →