<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>🥕</title><generator>teletype.in</generator><description><![CDATA[Морковный человечек]]></description><image><url>https://img3.teletype.in/files/ac/17/ac175268-b275-44d8-984b-3bff5cdcb8eb.png</url><title>🥕</title><link>https://teletype.in/@morkowka_22</link></image><link>https://teletype.in/@morkowka_22?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=morkowka_22</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/morkowka_22?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/morkowka_22?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Tue, 02 Jun 2026 19:30:41 GMT</pubDate><lastBuildDate>Tue, 02 Jun 2026 19:30:41 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@morkowka_22/metrics-with-3x-ui-exporter</guid><link>https://teletype.in/@morkowka_22/metrics-with-3x-ui-exporter?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=morkowka_22</link><comments>https://teletype.in/@morkowka_22/metrics-with-3x-ui-exporter?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=morkowka_22#comments</comments><dc:creator>morkowka_22</dc:creator><title>Сбор метрик 3X-UI, интеграция с Prometheus и визуализация данных в Grafana</title><pubDate>Tue, 18 Mar 2025 17:14:28 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/2c/1b/2c1bc9b8-e654-4626-a7c5-5ead0e9cf94a.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/9e/07/9e07c14d-8eb9-4163-832d-9224d32c4800.png"></img>Лирическое отступление: обусловимся на том, что я совсем не DevOps, а скорее недо-программист и мои познания в мире развертывания на большом количестве продакшн серверов заканчиваются на рассылке команд, или запуске Docker-контейнеров. Не бейте палками, если решите что мой способ развертывая инфраструктуры сбора метрик не самый лучший.]]></description><content:encoded><![CDATA[
  <p id="HKfw"><strong>Лирическое отступление:</strong> обусловимся на том, что я совсем не DevOps инженер, а скорее недо-программист и мои познания в мире развертывания на большом количестве продакшн серверов заканчиваются на рассылке команд, или запуске Docker-контейнеров. Не бейте палками, если решите что мой способ развертывая инфраструктуры сбора метрик не самый лучший.</p>
  <h3 id="eMJF"><strong>Инструмент для сбора и экспорта метрик 3X-UI</strong></h3>
  <p id="1Faf">Представляю вашему вниманию <strong><a href="https://github.com/hteppl/3x-ui-exporter" target="_blank">3X-UI Metrics Exporter</a></strong> — удобный и гибкий инструмент для сбора и экспорта метрик в Prometheus. <br />Экспортер был написан мною как небольшая пародия на уже имеющийся <a href="https://github.com/kutovoys/marzban-exporter" target="_blank">https://github.com/kutovoys/marzban-exporter</a>, тем не менее, аналогов для своих нужд на просторах Github я не обнаружил.</p>
  <figure id="HZQO" class="m_retina">
    <img src="https://img2.teletype.in/files/9e/07/9e07c14d-8eb9-4163-832d-9224d32c4800.png" width="687.5" />
    <figcaption><a href="https://github.com/hteppl/3x-ui-exporter" target="_blank">https://github.com/hteppl/3x-ui-exporter</a></figcaption>
  </figure>
  <p id="zDY7">Инструмент обязательно нужен для тех, кому важно анализировать тенденцию использования продуктов, иметь представление о текущей нагрузке в виде пользователей, а так-же своевременно и оперативно реагировать на аномалии в работе сервиса. <br /><strong>3X-UI Metrics Exporter </strong>предотставлят функционал для отслеживания количества пользователей, активность пользователей, потребление трафика, общую нагрузку на сервер + немного системной информации для общего понимания.</p>
  <h3 id="3XH1">Установка и настройка</h3>
  <p id="Abbp">Установка <strong>3X-UI Metrics Exporter</strong> предельно проста. Для удобства, я подготовил несколько вариантов по установке:</p>
  <ul id="58eJ">
    <li id="MvZB">Ручная установка</li>
    <li id="c9bv">Автоматическая установка + <strong>системный процесс</strong></li>
    <li id="7mt3">Docker Image</li>
  </ul>
  <p id="dLlq">В целом не вижу смысла рассказывать про каждый вид установки отдельно, о конфигурации и параметрах запуска можно прочитать в репо проекта <a href="https://github.com/hteppl/3x-ui-exporter" target="_blank">https://github.com/hteppl/3x-ui-exporter</a>. Далее я рассмотрю автоматическую установку и базовые настройки конфига.</p>
  <p id="03kJ"><strong>Автоматическая установка</strong></p>
  <p id="cRfE">Для автоматической установки будем пользоваться командой из репо проекта:</p>
  <p id="mmkF"><code>bash &lt;(curl -fsSL raw.githubusercontent.com/hteppl/3x-ui-exporter/main/install.sh)</code></p>
  <p id="wa04">Инсталлер сам в состоянии определить ваш Linux дистрибутив и загрузить нужную версию исполняемого файла вместе с конфигом, далее последуют наводящие вопросы про URL панели, порт и пароль для входа:</p>
  <figure id="BgvF" class="m_column">
    <img src="https://img4.teletype.in/files/73/ae/73aefa5e-f106-4574-b9fe-8f8539392bc1.png" width="1479" />
    <figcaption>Процесс настройки</figcaption>
  </figure>
  <p id="RpvY">После завершения настройки, экспортер само собой стоит проверить на работоспособность. Сначала проверяем процесс:</p>
  <p id="lwwV"><code>systemctl status x-ui-exporter.service</code></p>
  <figure id="5iMb" class="m_column">
    <img src="https://img3.teletype.in/files/e0/3f/e03f30e5-afd1-48c3-bf90-f0471d35faa0.png" width="1344" />
    <figcaption>Процесс экспортера в systemctl</figcaption>
  </figure>
  <p id="S5kU">Далее идем по адресу: <code>http://&lt;айпи-вашей-машины&gt;:9090/metrics</code><br />И убеждаемся что страница открывается, а в самом низу есть данные, подписанные префиксом <code>x_ui</code>.</p>
  <figure id="GObR" class="m_column">
    <img src="https://img3.teletype.in/files/a7/1d/a71d307e-42cf-4a06-a178-049016c329fb.png" width="847" />
    <figcaption>Пример выгруженных метрик</figcaption>
  </figure>
  <p id="HRjN">На данном этапе можно сказать, что базовая настройка метрик завершена, но я бы все-таки советовал или закрыть порт метрик <em>(9090 по умолчанию)</em> через доступ по айпи, или настроить базовую авторизацию на странице. Подробнее можно прочитать в репо проекта. </p>
  <h3 id="GMnc">Интеграция и выгрузка в Prometheus</h3>
  <p id="xCml">Опять-же, не буду рассказывать как ставить Prometheus и делать его настройку, статья немного не об этом. Для получения данных метрик достаточно отредактировать конфиг <code>prometheus.yml</code> и найти блок <code>scrape_configs</code></p>
  <pre id="huwr" data-lang="yaml">scrape_configs:
  - job_name: &quot;x-ui_exporter&quot;
    static_configs:
      - targets: [ &quot;&lt;exporter-ip-1&gt;:9090&quot; ]
        labels:  
          name: &quot;my_server_1&quot;
      - targets: [ &quot;&lt;exporter-ip-2&gt;:9090&quot; ]
        labels:  
          name: &quot;my_server_2&quot;</pre>
  <p id="leMo">По аналогии можем добавить все сервера, как нам потребуется. После изменения конфига не забудьте <strong>перезапустить Prometheus. </strong></p>
  <p id="Ljhn">Проверить получение данных в Prometheus можно на странице<br /><code>http://&lt;prometheus-ip&gt;:9090/targets</code></p>
  <p id="gDgd">Кстати, этот порт тоже совтую закрыть или использовать реверс-прокси, по аналогии с серверами метрик.</p>
  <h3 id="Qjdw">Построение графиков Grafana</h3>
  <p id="mU5i">Если все настроено и работает правильно, то можно приступать к самомому интересному - визуализации получаемых данных в интерактивных дашбордах графаны.</p>
  <p id="mP4P">Для своих заказчиков я реализовал несколько дашбордов с графиками, которые визуализируют основные данные, получаемые из метрик:</p>
  <figure id="QuFk" class="m_retina">
    <img src="https://img1.teletype.in/files/49/bd/49bd1e41-45f2-4086-881b-7569c8df1a8b.png" width="960" />
    <figcaption>Визуализация количества пользователей</figcaption>
  </figure>
  <p id="v3nS">В данном примере была использована метрика <code>x_ui_total_online_users</code> с различными базовыми агрегирующими функциями, по типу <code>sum</code> или <code>avg_over_time</code>. Так-же ниже собрал распределние пользователей и максимальные значения по параметрам:</p>
  <figure id="K0Oo" class="m_retina">
    <img src="https://img1.teletype.in/files/c1/a5/c1a5cbe3-7bda-4932-bfee-f24d0ab16b94.png" width="947.5" />
    <figcaption>Распределние пользователей</figcaption>
  </figure>
  <p id="kc3b">Не только онлайн. В данных визуализациях постарался собрать основные данные по серверам одного из крупных проектов (количество серверов немного не сопадает с первым скрином, упала одна выгрузка).</p>
  <figure id="Gswu" class="m_retina">
    <img src="https://img3.teletype.in/files/e0/c6/e0c6cebd-83cf-4127-97ac-023da07cd228.png" width="960" />
    <figcaption>Общие данные по серверам </figcaption>
  </figure>
  <p id="6yiZ">Тут уже используется не только <strong>3X-UI Exporter</strong>, а еще и <strong>Node Exporter</strong>, а кто говорил что данные нельзя собирать сразу с нескольких экспортеров?</p>
  <figure id="givO" class="m_retina">
    <img src="https://img4.teletype.in/files/7c/62/7c6246a9-76b1-4cc8-9828-b57a18929242.png" width="960" />
    <figcaption>Общие данные по серверам </figcaption>
  </figure>
  <p id="RCd5">Нижняя часть на фото - те самые метрики <strong>3X-UI Exporter.</strong></p>
  <figure id="rU9W" class="m_retina">
    <img src="https://img1.teletype.in/files/01/35/0135f300-9d69-4e0f-a961-9d82080cafc6.png" width="960" />
    <figcaption>Текущая нагрузка на сеть</figcaption>
  </figure>
  <p id="7W2M">Это опять-же небольшое смешение экспортеров, данные по нескольким метрикам можно использовать в 1 визуализации.</p>
  <h3 id="rJNh">Итоги</h3>
  <p id="2gDx"><strong>3X-UI Metrics Exporter</strong> — по моему мнению, достаточно удобный инструмент для сбора метрик, позволяющий мониторить активность пользователей и нагрузку на сервер. Установка достаточно простая даже для обычных пользователей, а так-же доступка в нескольких вариантах, включая автоматическую настройку. Интеграция с Prometheus выполняется через стандартную конфигурацию, а визуализацию данных можно построить где угодно, даже не обязательно в Grafana.</p>
  <p id="ROsE">🥕 Связаться со мной: <a href="https://t.me/morkowka_22" target="_blank">@morkowka_22<br /></a>Могу помочь построить такие-же или подобные графики под ваши нужды.</p>
  <p id="7oog">Кстати, лично от себя рекомендую использовать сервера <a href="https://timeweb.cloud/r/qy25997" target="_blank"><strong>TimeWeb Cloud</strong></a>, достаточно приличная контора, которая показала себя с лучшей стороны за несколько лет использования.</p>
  <h3 id="jwST">Поддержать автора</h3>
  <p id="fcgD"><a href="https://pay.cloudtips.ru/p/32741af9" target="_blank">https://pay.cloudtips.ru/p/32741af9</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@morkowka_22/block-bittorrent-in-xray</guid><link>https://teletype.in/@morkowka_22/block-bittorrent-in-xray?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=morkowka_22</link><comments>https://teletype.in/@morkowka_22/block-bittorrent-in-xray?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=morkowka_22#comments</comments><dc:creator>morkowka_22</dc:creator><title>Блокировка протокола BitTorrent в панелях Xray [устарело]</title><pubDate>Tue, 25 Feb 2025 18:17:17 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/70/e9/70e9d9ed-e4be-41ea-813d-320c0d87c607.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/ac/a7/aca74d3b-d928-40a1-892b-e4bd319b65d3.png"></img>Существует достаточное количество гайдов, где предлагают добавлять сразу по несколько тысяч серверов трекеров в iptables, или блокировать торрент соединения через иные способы, но они не идеальны, собственно как и способ, о котором пойдет речь.]]></description><content:encoded><![CDATA[
  <p id="eaxI">Существует достаточное количество гайдов, где предлагают добавлять сразу по <strong>несколько тысяч серверов</strong> трекеров в iptables, или блокировать торрент соединения через иные способы, но они не идеальны, <s>собственно как и способ, о котором пойдет речь.</s></p>
  <h3 id="MwGJ">Кому это действительно нужно</h3>
  <ul id="GPTB">
    <li id="gPpZ">Тем, чьи панели или конечные сервера расположены у крупных Европейских или Американских хостеров, которые исполняют законы ЕС или США насчет авторских прав.</li>
    <li id="0kMb">Тем, кто хочет огранчить черезмерное потребление трафика в рамках пользования вашими услугами.</li>
  </ul>
  <p id="qPU4">Тут стоит внести небольшую помарку: ядро <strong>Xray, </strong>и собственно сама панель<strong> 3X-UI </strong>— не в состоянии на 100% противостоять использованию протокола BitTorrent через внутренние методы ограничения, так как часть трафика не распознается как <strong>P2P-соединения.</strong></p>
  <p id="KLAR">Один из рассмотренных мною вариантов решения проблемы использования протокола <strong>BitTorrent</strong> — ограничение доступа пользователей к серверу посредствам <strong>временной </strong>блокировки адреса пользователя на машине.</p>
  <h3 id="hFdE">Сервис блокировки</h3>
  <p id="m6nN">На просторах GitHub был найден небольшой сервис на Go, позволяющий читать логи панелей <strong>Marzban </strong>и <strong>3X-UI</strong>, чтобы при единичном упоминании использования торрентов, отправлять пользователей подумать над своим поведением.<br /><a href="https://github.com/kutovoys/xray-torrent-blocker" target="_blank">https://github.com/kutovoys/xray-torrent-blocker</a></p>
  <p id="Swb5">Сам сервис устроен достаточно просто: читаем логи в онлайне, баним негодных на заданное в конфиге время, при этом получая уведомления в Telegram.</p>
  <figure id="DvEr" class="m_column">
    <img src="https://img3.teletype.in/files/ac/a7/aca74d3b-d928-40a1-892b-e4bd319b65d3.png" width="1561" />
    <figcaption>https://github.com/kutovoys/xray-torrent-blocker</figcaption>
  </figure>
  <h3 id="iQf3">Настройка панели</h3>
  <p id="Kzgq">Настройка для Marzban имеется уже в самом <a href="https://github.com/kutovoys/xray-torrent-blocker/blob/main/README.ru.md" target="_blank">README </a>проекта, поэтому перейдем сразу к <strong>3X-UI:</strong></p>
  <ul id="7D3k">
    <li id="gGFw">Заходим в панель, далее переходим во вкладку <strong>Xray Configs</strong> из меню слева.</li>
    <li id="xYEA">Вкладка <strong>Basics</strong>, включаем логирование <strong>Access Log</strong>, для своих нужд я так-же включил <strong>Error Log</strong>, но это не обязательно.</li>
  </ul>
  <figure id="rUPX" class="m_column">
    <img src="https://img1.teletype.in/files/ca/b6/cab60afc-6ff8-4560-a2a4-0046f298f6f4.png" width="1214" />
    <figcaption>Xray Configs -&gt; Basics<br /></figcaption>
  </figure>
  <ul id="27mz">
    <li id="yVIQ">Далее, в этом же окне переходим во вкладку <strong>Outbounds</strong>, создаем <strong>Outbound </strong>по протоколу <strong>blackhole </strong>с названием <strong>torrent, TORRENT </strong>или как-то иначе(это лишь эстетика, у меня не красивый вариант с заглавными).</li>
  </ul>
  <figure id="KSXs" class="m_column">
    <img src="https://img3.teletype.in/files/e4/80/e480864f-f9f7-4c99-8e95-a31636fb39c6.png" width="578" />
    <figcaption>Xray Configs -&gt; Outbounds<br /></figcaption>
  </figure>
  <ul id="ztCy">
    <li id="DEJJ">После создания <strong>Outbound </strong>переходим во вкладку <strong>Routing Rules. </strong>При базовой настройке правило будет 3 по счету, а так ищем правило, где протокол указан как <strong>bittorrent </strong>и назначаем ему <strong>наш созданный тег.</strong></li>
  </ul>
  <figure id="IVKx" class="m_column">
    <img src="https://img4.teletype.in/files/35/3a/353a4bde-0002-4b3d-ba89-7a1db78d633a.png" width="1351" />
    <figcaption>Xray Configs -&gt; Routing Rules<br /></figcaption>
  </figure>
  <p id="Xp2M">На этом настройка панели окончена, <strong>сохраняемся и перезапускаем Xray</strong> кнопками вверху страницы.</p>
  <h3 id="MQzk"><strong>Установка Xray Torrent Blocker</strong></h3>
  <p id="Hxdr">Для автоматической установки приложения выполните следующие шаги:</p>
  <ul id="yNj2">
    <li id="8wo0">Запустите скрипт установки: <code>bash &lt;(curl -fsSL git.new/install)</code></li>
    <li id="xUkc">Скрипт автоматически установит все зависимости, скачает последний релиз, спросит <code>Token</code> и <code>Chat ID</code> администратора и запустит сервис.</li>
    <li id="S1tt">После завершения установки приложение можно контролировать через systemd: <code>systemctl start/status/stop tblocker</code></li>
  </ul>
  <h3 id="9ZMg"><strong>Настройка конфига Xray Torrent Blocker</strong></h3>
  <p id="UlJR"><a href="https://github.com/kutovoys/xray-torrent-blocker/blob/main/config.yaml.example" target="_blank">Настройка конфига</a> для Marzban опять-же уже итак имеется в самом проекте изначально, поэтому перейдем к настройке для <strong>3X-UI:</strong></p>
  <ul id="e5gG">
    <li id="Idcl">Настройку <strong>LogFile </strong>меняем на <code>&quot;/usr/local/x-ui/access.log&quot;</code></li>
    <li id="HWvy">Настройку <strong>TorrentTag </strong>ставим такую, как указывали в панели, в нашем случае: <code>&quot;TORRENT&quot;</code></li>
    <li id="cujk">Настройку <strong>UsernameRegex </strong>на <code>&quot;email: (\\S+)&quot;</code></li>
  </ul>
  <p id="LBii">На этом отличия от основной версии закончены, можем донастраивать конфиг, в частности пункты: <strong>BlockDuration</strong>, <strong>BlockMode </strong>(при использовании ufw настройте его по гайду из самого <a href="https://github.com/kutovoys/xray-torrent-blocker/blob/main/README.ru.md" target="_blank">README </a>проекта), <strong>SendAdminMessage</strong>, <strong>AdminBotToken </strong>и <strong>AdminChatID </strong>для уведомлений в Telegram.<br /><br />Ссылка на полный гайд по запуску и установке блокировщика: <a href="https://github.com/kutovoys/xray-torrent-blocker/blob/main/README.ru.md" target="_blank">https://github.com/kutovoys/xray-torrent-blocker/blob/main/README.ru.md</a></p>
  <h3 id="bkQJ">Проверка блокировки</h3>
  <p id="07Z5">Проверить работу блокировщика тоже достаточно просто, нужно лишь почитать поток лога доступов из панели <strong>3X-UI</strong> по определенному email, например:</p>
  <p id="IZDb"><code>tail -f /usr/local/x-ui/access.log | grep --line-buffered &#x27;user_email&#x27;</code></p>
  <h3 id="zb9u">Итоги</h3>
  <p id="JdbG">По своей сути, блокировка конечного пользователя — не самый гуманный, но зато самый эффективный способ избежания проблем с законом, в рамках законодательства конечной локации размещения машины. Подчеркну, что этот способ далеко не является единственным верным и совсем не претендует на логически правильное решение, но тем не менее, с поставленными задачами он справляется.</p>
  <p id="EXP4">Кстати, лично от себя рекомендую использовать сервера <a href="https://timeweb.cloud/r/qy25997" target="_blank"><strong>TimeWeb Cloud</strong></a>, достаточно приличная контора, которая показала себя с лучшей стороны за несколько лет использования.</p>
  <h3 id="jwST">Поддержать автора</h3>
  <p id="fcgD"><a href="https://pay.cloudtips.ru/p/32741af9" target="_blank">https://pay.cloudtips.ru/p/32741af9</a></p>

]]></content:encoded></item></channel></rss>