<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>readme &amp;mdash; Цифровой дворник</title>
    <link>https://articles.clr58.ru/tag:readme</link>
    <description>Практические заметки о сетях, self-hosting, виртуализации, мониторинге, автоматизации и локальном ИИ.</description>
    <pubDate>Wed, 30 Sep 2026 01:16:05 +0000</pubDate>
    <item>
      <title>GPU-метрики в Beszel без скриптов</title>
      <link>https://articles.clr58.ru/beszel-gpu</link>
      <description>&lt;![CDATA[Обложка&#xA;&#xA;Боль&#xA;Чтобы видеть температуру/память/нагрузку GPU в дашборде, обычно городят самописный скрипт, который тащит показания из драйвера и пушит их «куда‑нибудь». Такой код живёт до первого обновления ядра, драйвера или агента — потом ночь дебага и злость на себя прошлого.&#xA;&#xA;Что такое Beszel&#xA;Beszel — лёгкий self‑hosted мониторинг: небольшой агент на хосте и аккуратная веб‑панель. Ставитcя быстро, жрёт мало, из коробки показывает CPU/память/диск/сеть и другие базовые вещи. И — сюрприз — умеет GPU.&#xA;&#xA;Открытие дня: метрики GPU уже приходят сами&#xA;У агента есть поле g в статистике — там лежат данные по видеокартам. Никакого отдельного скрипта не требуется: если драйвер и устройство видны агенту (в контейнере проброшен GPU), Beszel добавляет блок g и панель рисует графики.&#xA;&#xA;Пример «синтетической» выборки (для идеи структуры, значения условные):&#xA;&#xA;{&#xA;  &#34;cpu&#34;: { &#34;load&#34;: 0.42 },&#xA;  &#34;mem&#34;: { &#34;used&#34;: 8096, &#34;total&#34;: 16384 },&#xA;  &#34;g&#34;: [&#xA;    {&#xA;      &#34;name&#34;: &#34;GPU 0&#34;,&#xA;      &#34;util&#34;: 0.76,&#xA;      &#34;memused&#34;: 2048,&#xA;      &#34;memtotal&#34;: 8192,&#xA;      &#34;temp&#34;: 62&#xA;    }&#xA;  ]&#xA;}&#xA;&#xA;  Важно: в контейнере дайте агенту доступ к железу. Для встроенных AMD/Intel — обычно достаточно пробросить /dev/dri (чтение), для NVIDIA — соответствующий runtime/плагины. Конкретика зависит от вашей оркестрации.&#xA;&#xA;Как это выглядит&#xA;Вот типовой набор, который я вижу у себя:&#xA;загрузка GPU (%),&#xA;использование видеопамяти (MiB/GB),&#xA;температура (°C),&#xA;иногда — несколько адаптеров в массиве g.&#xA;&#xA;Врезка: панель с GPU-метриками&#xA;&#xA;«Кастомный скрипт» vs «встроенные g‑метрики»&#xA;Установка&#xA;  Скрипт: придумать формат, упаковать, прикрутить пуш.&#xA;  g: просто обновить агент и дать доступ к устройству.&#xA;Поддержка&#xA;  Скрипт: ломается при апдейтах, требует правок.&#xA;  g: обновляется вместе с агентом.&#xA;Надёжность&#xA;  Скрипт: отдельный процесс, ещё один «пункт отказа».&#xA;  g: часть штатной телеметрии.&#xA;Совместимость&#xA;  Скрипт: ручной парсинг под конкретный драйвер.&#xA;  g: единый формат в stats → сразу графики в панели.&#xA;Безопасность&#xA;  Скрипт: лишние права/сети/библиотеки.&#xA;  g: минимум доступа, тот же контур, что и у агента.&#xA;&#xA;Врезка: «подметаем» сломанный скрипт, метрики появляются сами&#xA;&#xA;Итог&#xA;Если вы уже используете Beszel — проверьте, не появилось ли у вас поле g. Велика вероятность, что графики по видеокарте заработают без единой строчки кода. Меньше костылей — больше спокойствия.&#xA;&#xA;Ссылки&#xA;Beszel на GitHub: https://github.com/henrygd/beszel&#xA;Документация/README: https://github.com/henrygd/beszel#readme&#xA;&#xA;#monitoring #selfhosting&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://paste.clr58.ru/post-beszel-gpu-cover-digclean.jpg" alt="Обложка"></p>

<h3 id="боль">Боль</h3>

<p>Чтобы видеть температуру/память/нагрузку GPU в дашборде, обычно городят самописный скрипт, который тащит показания из драйвера и пушит их «куда‑нибудь». Такой код живёт до первого обновления ядра, драйвера или агента — потом ночь дебага и злость на себя прошлого.</p>

<h3 id="что-такое-beszel">Что такое Beszel</h3>

<p>Beszel — лёгкий self‑hosted мониторинг: небольшой агент на хосте и аккуратная веб‑панель. Ставитcя быстро, жрёт мало, из коробки показывает CPU/память/диск/сеть и другие базовые вещи. И — сюрприз — умеет GPU.</p>

<h3 id="открытие-дня-метрики-gpu-уже-приходят-сами">Открытие дня: метрики GPU уже приходят сами</h3>

<p>У агента есть поле <code>g</code> в статистике — там лежат данные по видеокартам. Никакого отдельного скрипта не требуется: если драйвер и устройство видны агенту (в контейнере проброшен GPU), Beszel добавляет блок <code>g</code> и панель рисует графики.</p>

<p>Пример «синтетической» выборки (для идеи структуры, значения условные):</p>

<pre><code class="language-json">{
  &#34;cpu&#34;: { &#34;load&#34;: 0.42 },
  &#34;mem&#34;: { &#34;used&#34;: 8096, &#34;total&#34;: 16384 },
  &#34;g&#34;: [
    {
      &#34;name&#34;: &#34;GPU 0&#34;,
      &#34;util&#34;: 0.76,
      &#34;mem_used&#34;: 2048,
      &#34;mem_total&#34;: 8192,
      &#34;temp&#34;: 62
    }
  ]
}
</code></pre>

<blockquote><p>Важно: в контейнере дайте агенту доступ к железу. Для встроенных AMD/Intel — обычно достаточно пробросить <code>/dev/dri</code> (чтение), для NVIDIA — соответствующий runtime/плагины. Конкретика зависит от вашей оркестрации.</p></blockquote>

<h3 id="как-это-выглядит">Как это выглядит</h3>

<p>Вот типовой набор, который я вижу у себя:
– загрузка GPU (%),
– использование видеопамяти (MiB/GB),
– температура (°C),
– иногда — несколько адаптеров в массиве <code>g</code>.</p>

<p><img src="https://paste.clr58.ru/post-beszel-gpu-ins-1-digclean.png" alt="Врезка: панель с GPU-метриками"></p>

<h3 id="кастомный-скрипт-vs-встроенные-g-метрики">«Кастомный скрипт» vs «встроенные g‑метрики»</h3>
<ul><li>Установка
<ul><li>Скрипт: придумать формат, упаковать, прикрутить пуш.</li>
<li><code>g</code>: просто обновить агент и дать доступ к устройству.</li></ul></li>
<li>Поддержка
<ul><li>Скрипт: ломается при апдейтах, требует правок.</li>
<li><code>g</code>: обновляется вместе с агентом.</li></ul></li>
<li>Надёжность
<ul><li>Скрипт: отдельный процесс, ещё один «пункт отказа».</li>
<li><code>g</code>: часть штатной телеметрии.</li></ul></li>
<li>Совместимость
<ul><li>Скрипт: ручной парсинг под конкретный драйвер.</li>
<li><code>g</code>: единый формат в stats → сразу графики в панели.</li></ul></li>
<li>Безопасность
<ul><li>Скрипт: лишние права/сети/библиотеки.</li>
<li><code>g</code>: минимум доступа, тот же контур, что и у агента.</li></ul></li></ul>

<p><img src="https://paste.clr58.ru/post-beszel-gpu-ins-2-digclean.png" alt="Врезка: «подметаем» сломанный скрипт, метрики появляются сами"></p>

<h3 id="итог">Итог</h3>

<p>Если вы уже используете Beszel — проверьте, не появилось ли у вас поле <code>g</code>. Велика вероятность, что графики по видеокарте заработают без единой строчки кода. Меньше костылей — больше спокойствия.</p>

<h3 id="ссылки">Ссылки</h3>
<ul><li>Beszel на GitHub: <a href="https://github.com/henrygd/beszel">https://github.com/henrygd/beszel</a></li>
<li>Документация/README: <a href="https://github.com/henrygd/beszel#readme">https://github.com/henrygd/beszel#readme</a></li></ul>

<p><a href="https://articles.clr58.ru/tag:monitoring" class="hashtag"><span>#</span><span class="p-category">monitoring</span></a> <a href="https://articles.clr58.ru/tag:selfhosting" class="hashtag"><span>#</span><span class="p-category">selfhosting</span></a></p>
]]></content:encoded>
      <guid>https://articles.clr58.ru/beszel-gpu</guid>
      <pubDate>Sat, 19 Sep 2026 03:41:49 +0000</pubDate>
    </item>
  </channel>
</rss>