ServerAdmin.ru
32.5K subscribers
1.23K photos
76 videos
29 files
3.23K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
Я уже писал и даже не раз о некоторых бесплатных курсах в академии Zabbix. В очередной раз зашёл посмотреть, нет ли там чего-то нового и интересного. И оно нашлось. Вроде ничего особенного, но я получил новую для себя информацию из бесплатного урока Browsing with Zabbix. Это запись какого-то вебинара по этой теме.

Там подробно рассказано о возможностях мониторинга сайтов с помощью Zabbix. Он всегда это умел делать, но в 7-й версии вышло крупное обновление. То, что там реализовано на сегодняшний день, отличается от того, что я настраивал ранее. Вообще все старые наработки, подходы и шаблоны можно забыть и взять то, что Zabbix предлагает из коробки. Например, вот эта моя статья полностью потеряла актуальность.

Мониторинг сайтов в Zabbix Server сейчас реализован следующим образом:

◽️У Zabbix есть интеграция с фреймворком для веб проверок Selenium. Достаточно его запустить в любом виде, например, в виде Docker контейнера, и в конфигурации сервера указать url до Selenium. Никаких настроек больше делать не надо.
◽️Есть готовый шаблон Website by Browser, который помимо сбора основных метрик (время загрузки, размер страницы, время dns запроса, время TCP хендшейков и других) умеет делать скриншоты страниц. В шаблон включена панель с метриками и возможностью быстро посмотреть скриншоты. Сделано просто и относительно удобно.
◽️С помощью Selenium и сценариев на JavaScript можно делать любые проверки сайтов - переходы, заполнение форм, аутентификация и т.д.
◽️Далее включаются все возможности Zabbix по разветвлённым оповещениям с эскалацией и костылестроению. Можно что-то перезапускать, чистить кэши, отправлять логи и т.д.

❗️Важное замечание по поводу скриншотов. Они хранятся в бинарном виде в базе, так что не увлекайтесь их созданием и не храните слишком много. Это будет приводить к серьёзному увеличению размера базы.

В базовых возможностях у вас есть преднастроенный шаблон для основных метрик, а для расширения функциональности можно писать свои. В уроке есть несколько примеров. Например, с Jira, когда выполняется ряд проверок с созданием скриншотов на каждом этапе:

1️⃣ Главная страница портала
2️⃣ Аутентификация - ввод логина и пароля
3️⃣ Страница системы после аутентификации

Секреты для аутентификации хранятся в макросах, доступ к которым может быть ограничен. Это уже не сказать, что просто настроить, но и сложного ничего нет. Selenium - известный продукт. Для него и примеров полно, и ИИ может помочь если что. Обычно проверки все типовые, под себя не сложно адаптировать чей-то пример. У вас получится микс из поддерживаемых методов Selenium и объектов айтема Browser.

Как всё это настроить в актуальной версии сервера - рассказано в документации. Там всё просто, у меня сразу получилось.

Единственное, что не понял, почему в стандартный шаблон мониторинга сайта не добавили айтем с кодом ответа веб сервера и триггер на него. Для того, чтобы это сделать, придётся по старинке добавить Веб сценарий с проверкой кода ответа и вручную для его настроить триггер.

При этом в шаблоне Website by Browser используется метод collectPerfEntries();, который включает в себя код ответа веб сервера. В json портянке базового ключа website.get.data он называется response_status. Достаточно создать ещё один зависимый айтем с JSONPath = $.performance_data.details[0].navigation.response_status с типом данных - целое числовое. И добавить на него триггер, если значение не 200. Странно, что это не сделали. Если будешь сам дорабатывать, то потом придётся при каждом обновлении следить за этим и вручную переносить изменения. Неудобно. Логично было бы такую полезную метрику сразу туда добавить.

И ещё заметил, что в шаблоне ко всем числовым метрикам добавлен множитель 0.001. Не знаю, зачем. С ним цифры получаются нереальные, слишком маленькие. А без множителя похожи на правду. Убрал его.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82👎2
Мне тут попался на глаза один любопытный проект - wstunnel. Самому особо не нужен, но друг интересовался 😁. Он любой трафик упаковывает в websocket. Сейчас много таких упаковывателей появилось, как в websocket, в dns запросы, так и другие протоколы, например, icmp.

Этот упаковыватель отличает простота использования. Я лично проверил, работает хорошо. Состоит из одного бинарника, который достаточно скачать и запустить. Поддерживаются системы - Linux, macOS, Android. Windows нет, но если в винде запустить в WSL, то в основной системе нормально работает. Можно без проблем поднять SOCKS5 для основного браузера.

Покажу на примере, как это работает. Допустим, нам надо на работе скачать дистрибутив Veeam Agent for Microsoft Windows FREE или Elasticsearch. Компании заблокировали возможность загрузки из РФ. А на файрволе закрыты все порты, кроме 443, и изменить это вы не можете. Арендуем любую VPS, откуда будет доступ в США. Скачиваем на неё бинарник и распаковываем:

# wget https://github.com/erebe/wstunnel/releases/download/v10.5.5/wstunnel_10.5.5_linux_amd64.tar.gz
# tar xzvf wstunnel_10.5.5_linux_amd64.tar.gz

Даём права на запуск и запускаем в режиме сервера:

# ./wstunnel server wss://[::]:443

На своей машине скачиваем то же самое и запускаем в режиме клиента:

# ./wstunnel client -L socks5://127.0.0.1:8090 --connection-min-idle 5 wss://vps_ip:443

У вас на машине запустился SOCKS5 прокси по адресу 127.0.0.1:8090. Теперь эти параметры можно использовать в браузере в настройках прокси. Отдельно порекомендую вот это расширение для браузеров - ZeroOmega. Я постоянно пользуюсь, хорошо работает, задачи решает. Можно быстро переключать прокси на конкретных сайтах, либо настроить постоянные списки.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
Please open Telegram to view this post
VIEW IN TELEGRAM
👍162👎1
Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает, о чём идёт речь, может прочитать прошлые публикации по этой теме (раз, два).

Удобная Docker лаборатория с блэкджеком и Web GUI
Очень подробная статья с настройкой лаборатории на базе Docker, Komodo - оркестратор для него, Nginx Proxy Manager - веб интерфейс управления веб сервером, Technitium - DNS сервер для всей лаборатории.

Установка Taiga в Docker
Установка сервера для управления проектами Taiga.io - функциональный open source проект для работы по методологии Agile. Я делал про него заметку.

Duplicati - резервное копирование с шифрованием для домашнего сервера
Обзор популярной программы для бэкапов. Я делал про неё заметку У программы простой и приятный веб интерфейс, поддержка дедупликации и инкрементных бэкапов. Ставится локально на сервер и с него же управляется. То есть это не централизованная система.

Zerobyte - автоматизация резервного копирования для self-hosted инфраструктуры
Ещё один инструмент для бэкапов, но уже централизованный. В основе у него Restic. Я его недавно тестировал и писал заметку. Интересное решение, рекомендую попробовать.

Zabbix. Оповещения в MAX.
Скрипт и подробная инструкция по использованию для отправки уведомлений из Zabbix в MAX.

Как настроить оповещения Zabbix в MAX
Ещё одна реализация уведомлений из Zabbix в MAX через Webhook, без внешнего скрипта.

Первое знакомство с n8n
Обзор популярной платформы для автоматизации n8n - визуальный конструктор для выстраивания рабочих процессов. Автор показал установку и создание простого workflow с отправкой уведомления в Telegram.

Как восстановить данные из резервной копии Veeam Agent
Подробная инструкция по восстановлению бэкапа, созданного через Veeam Agent. Там на самом деле не всё так просто и очевидно, как может показаться на первый взгляд. Я недавно сталкивался с проблемами. Надо обязательно тестировать восстановление заранее, чтобы знать, как действовать.

Настраиваем OpenConnect middle server для доступа к закрытому контуру
Подробная статья по настройке OpenConnect сервера в качестве промежуточного сервера, который принимает подключения от клиентов, а потом сам подключается к другому серверу и прокидывает туда соединение пользователя. Интересная тема в том числе в контексте современных блокировок.

Pangolin — самый простой (но не дешевый) способ открыть доступ к homelab
Обзор сервиса Pangolin для публикации веб сервисов из закрытой сети в интернет. Необычная реализация на базе Traefik + свой сервис IAM + Wireguard. Я писал по нему подробную заметку.

PowerShell для начинающих администраторов: команды, справка и примеры
Базовая информация по работе в Powershell.

🔥Fwknop - современный port knocking для Linux
Современная реализация похожего на port knocking подхода для открытия доступа на файрволе. Ни разу раньше не слышал про него. Надо будет попробовать. Там в основе отправка одного пакета с зашифрованным содержимым, а не обычный стук разными размерами пакетов по портам или отправка icmp запросов.

Хотите присоединиться к этой подборке? Пишите мне в личные сообщения.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍57👎3
При переходе на Linux с Freebsd, я почти сразу пересел на Centos, где по умолчанию была файловая система XFS. Я особо не заморачивался, и везде использовал её. Каких-то нюансов или проблем у меня с ней не было. По мере того, как стал потихоньку использовать другие ОC, в частности Ubuntu и Debian, где по умолчанию используется EXT4, стал появляться вопрос, а какую файловую систему использовать? Можно выбрать и ту, и другую.

Первое, что приходит в голову, RedHat - крупная именитая компания с огромным количеством различных разработок. Если она рекомендует и по умолчанию использует XFS, почему бы просто не довериться ей.

Я уже поднимал когда-то давно эту тему на канале и было много отзывов по этим ФС. Решил для себя и вас актуализировать этот вопрос, прочитав обсуждения на эту тему, некоторые статьи и поспрашивав ИИ. Вот что в итоге вынес для себя.

📌 На основе комментариев в канале и нескольких обсуждений на Reddit:

◽️XFS архитектурно более сложная система, восстановить с неё данные, если что-то пойдёт не так, намного сложнее, чем с EXT4.
◽️Аварийные выключения с гораздо большей вероятностью приведут к сбоям XFS. На эту тему прям много отзывов.
◽️XFS не получится уменьшить в размере, в отличие от EXT4.
◽️В EXT4 количество доступных inodes задаётся в момент создания, либо используется значение по умолчанию, и их вполне реально все исчерпать. Я лично с этим сталкивался. В XFS такой проблемы нет, они выделяются динамически.
◽️Из-за активного развития XFS, в разных системах могут быть разные версии ФС, так что не получится примонтировать том из одной системы в другую, где отличаются версии ФС в ядре. Это в основном актуально при подключении томов из новых версий в старые. Например, том из Centos 7 можно примонтировать в Centos 9, а наоборот - нет. Даже из Centos 9 в 8-ю версию не примонтировать.

С точки зрения пользовательского опыта, EXT4 проще, универсальнее, надёжнее.

📌 Теперь набор архитектурных отличий:

◽️У XFS есть так называемые Allocation Groups (AG) - независимые группы, на которые разбита файловая система. Каждая AG работает как отдельная мини файловая система. Благодаря этому XFS более эффективно работает с параллельной нагрузкой по чтению-записи по сравнению с EXT4. Это их основное архитектурное отличие. Важно понимать, что разница эта будет заметна только при больших нагрузках на больших же хранилищах.
◽️В XFS есть поддержка Reflink - позволяет нескольким файлам использовать одни и те же блоки данных, что экономит место на диске. Она основана на механизме копирования при записи (Copy-on-Write, CoW).

И ещё важный нюанс. В 2020 году вышла известная статья со сравнением производительности XFS и EXT4 в контексте использования под MySQL сервер. С учётом изменений в MySQL того времени и тестам, автор сделал однозначный вывод, что с XFS работа значительно быстрее, так что он рекомендовал использовать именно её. С тех пор было много обновлений, в том числе и EXT4 и такой разницы в производительности больше нет. Так что та рекомендация потеряла актуальность. Если верить современным тестам, то разница между этими файловыми системами в смешанной нагрузке стала минимальна.

Какой я в итоге для себя сделал вывод?

- Для смешанной нагрузки в различных VPS использовать EXT4 и не забивать себе голову.

- XFS рассматривать только в больших хранилищах, собранных в RAID, например под видеонаблюдение, образы VM или бэкапы. Последнее наиболее актуально. Например, Veeam поддерживает технологию reflink, что существенно экономит место и увеличивает производительность хранилища с бэкапами. У меня есть одна такая большая хранилка с Veeam и там, к сожалению, EXT4. Надо было раньше эту заметку писать. Так что имейте это в виду. Я на тот момент не стал заморачиваться и сделал всё по умолчанию. И теперь Synthetic Full длится часами, а мог бы за минуты выполняться.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#fileserver
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141👎2
Когда разбирался с файловыми системами, увидел возможность EXT4, про которую раньше не знал. Можно сделать дамп метаданных файловой системы, без непосредственно самих данных. То есть вы получаете список всех файлов с размером, правами и прочими атрибутами. Этот дамп можно примонтировать, как обычный диск, и посмотреть структуру. Всё будет выглядеть, как обычная файловая система, только самих данных не будет.

Выглядит это примерно так. Работает даже для примонтированной системы. Но для надёжности, конечно, лучше отмонтировать, если есть возможность:

# e2image -rf /dev/sda1 fs_raw.img
# mkdir -p /mnt/fs_metadata
# mount -t ext4 -o ro,noload fs_raw.img /mnt/fs_metadata

В данном случае я сделал образ метаданных корневого раздела диска и примонтировал его в /mnt/fs_metadata.

На практике это может быть полезным для сравнения больших разнесённых хранилищ файлов. Например, можно снять дамп метаданных, перенести его на другой сервер, там смонтировать и очень быстро найти различия с помощью того же rsync. По сети такое сравнение для больших хранилищ может длиться очень долго. А через такой дамп быстрее в разы.

Выглядит это примерно так:

# rsync -ani --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp --exclude=/mnt / /mnt/fs_metadata/

В данном случае --exclude используются, потому что я сравниваю корень. Оставил их для примера, если нужно будет тоже сделать какие-то исключения. На выходе получите листинг изменённых файлов, где будет указан тип файла
f / d / l (файл / директория / симлинк) и чем различаются: s - размер, p - права, o - владелец и т.д. По этим меткам, соответственно, можно грепнуть и вывести только нужные различия.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍145👎1
Кремниевая долина - наиболее мемный сериал на IT тематику, из которого есть куча нарезок и различных переводов. Особенно нарезок с Гилфойлом. С момента его выхода ничего лучше так и не сняли.

Предлагаю к просмотру три наиболее забавных с моей точки зрения момента, касающихся напрямую IT и наших повседневных задач:

1️⃣ Удаление данных. Это вообще самый топ. Там можно присмотреться к консоли и увидеть реальную систему, не бутафорию.

2️⃣ Собеседование с Гилфойлом, когда его брали на работу, где он выдал великолепный монолог.

3️⃣ Обыгран популярный мем на тему табов или пробелов. Ричард бортанул подругу, когда увидел, что она ставит пробелы вместо табов.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113
У меня наконец-то дошли руки заняться семейным видеоархивом. Он так разросся, что вручную его вести затруднительно. Решил подключить технологии машинного обучения в лице хранилища Immich. Это известный open source продукт, который постоянно обозревают блогеры. Посмотреть обзор - это одно, а реально попользоваться - другое дело.

Меня всегда останавливало от поднятия какого-то сервиса для медиа то, что у тебя параллельно возникает ещё один архив, куда надо загружать новые файлы. Можно столкнуться с тем, что при каких-то проблемах с сервисом, можно потерять либо саму структуру файлов в нём, либо вообще сами файлы, так как они превратятся в кашу.

Сейчас у меня архив хранится в сетевой папке с ручной разбивкой по событиям, датам и т.д. Это просто и надёжно, но хлопотно в плане каталогизации, потому что поток новых файлов большой, времени в нём разбираться нету. В итоге последние года всё валится в папки "Разобрать", "2025", "Старый смартфон" и т.д. Никто туда не заходит и ничего не разбирает.

Всё это дело копируется в Яндекс.Диск и в ещё один локальный бэкап. Яндекс диск в целом прост и неприхотлив. По расписанию туда копируются все изменения. Файлы при желании можно посмотреть в браузере. Из аналитики только временная шкала и некоторый интеллектуальный поиск, но не понятно, как и чем он строится. Иногда могу что-то быстро найти, иногда нет. К примеру, по запросу "деревянный дом" вижу фотки своего дома. Довольно удобно. Но иногда что-то ищу, но нахожу.

В итоге развернул Immich и скормил ему свой архив. Расскажу по пунктам, чем он привлёк и как там всё работает:

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

🔹Поверх моего архива Immich делает следующее:

◽️Создаёт миниатюры фотографий для просмотра в браузере.
◽️Извлекает метаданные из фоток для поиска по ним.
◽️Распознаёт содержимое фоток для поиска. К примеру, я могу найти все фотографии, где есть море, коричневая футболка, деревянный дом и т.д. Примерно так же, как в Яндекс Диске. Качество среднее. Что-то находит, что-то нет. Это всё калибруется настройками локальной LLM и качеством миниатюр, по которым ведётся поиск.
◽️Поиск дубликатов по содержимому, а не метаданным.
◽️Обнаружение и распознавание лиц. Это то, что понравилось больше всего. Распознаёт лица нормально, даже детей. Где-то после 2-3 лет детей уже не путает. Грудничка и трехлетку видит как разных детей, но это решается ручным объединением.
◽️Распознаёт текст. Я особо не проверял, как работает, у меня почти нет текста на фотках.
◽️ Кодирует видео в заданные форматы и разрешения. Я не стал это делать, не хочу плодить дубликаты файлов. То, что надо, сжимаю сам в изначальном архиве.
◽️По геометкам, если они есть, отображает на карте фотографии.

Благодаря метаданным, геометкам, распознаванию содержимого и лиц можно выполнять расширенный поиск. Например, вывести все фотки какого-то ребёнка в конкретный год. Под аналитику можно использовать как встроенные небольшие локальные модели, так и подключать внешние. Не тестировал, как это работает.

Из своих данных Immich генерирует миниатюры и хранит всё своё состояние в PostgreSQL. Основную ценность представляет она, если вы фотки подключаете из внешнего хранилища. Миниатюры, если что, можно пересоздать, как и переиндексировать всю медиатеку. Это процесс небыстрый, но и потеря данных некритична, если что. Пару тройку дней можно подождать, если нужно будет заново разметить.

Я пока остановился на том, буду вести архив как раньше, а Immich использовать только для аналитики. Загружать фото непосредственно в него, например, через приложение на смартфоне, не буду. Это удобно, но будет приводить к раздвоению архива.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#fileserver
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍128👎2
Предупреждение для тех, кто использует облачные хранилища файлов, как основные. Как я уже не раз говорил, у меня используется Яндекс.Диск, но исключительно, как резервное хранилище. Основное у меня дома на NAS. Оно копируется ещё в одно место локально, и в облако. Объём основной полезной информации в районе 1,5 ТБ и это ~175 тыс. файлов.

Я провёл несколько экспериментов с облачным хранилищем, о которых хочу рассказать. Если у вас там хранится важная информация, то рекомендую обратить на это внимание.

1️⃣ Взял чистую систему, установил туда клиент Яндекс.Диска и запустил синхронизацию, чтобы проверить, сколько времени займёт загрузка облачного архива. Канал в интернет - 100 мегабит, размер файлов в облаке - 1,1 ТБ. В идеальных условиях это должно качаться 25-30 часов. У меня в итоге ушла неделя. Большую часть времени клиент что-то обрабатывал и не занимал канал, и компьютер тоже особо не нагружал. Он не был узким местом. Если храните там какие-то важные бэкапы, которые нужно будет быстро забрать в случае аварии, имейте ввиду, что не факт, что получится это сделать.

2️⃣ Взял примерно полугодовалую локальную копию и сравнил MD5 хэши с тем, что скачалось из облака. Примерно у 500 файлов хэши не совпали, при полном совпадении всех остальных атрибутов. То есть без сверки хэшей разницу не заметить. Бегло проверил несколько из них. Это были фотки. На них наглядно видно повреждения. Проблемы были именно в облачных файлах. Где они побились - не понятно. Может во время хранения, может во время загрузки в облако или скачивания.

3️⃣ Примерно у 80% файлов были неверные даты создания. Сравнивал с основным хранилищем. Когда и почему они изменились - не знаю. Раньше никогда не обращал на это внимание. Размеры файлов одинаковые, а даты - разные. Это не сказать, что критично, но может создавать неудобства. И не понятно, как исправить, кроме как заливать туда заново все файлы с изменёнными датами.

4️⃣ Отдельно добавлю, о чём уже ранее писал. У меня был случай, когда часть файлов в Яндекс.Диске пропала. Заметил не сразу и только благодаря локальным копиям с большой глубиной хранения.

Я не знаю, как обстоят дела у других облаков, но мне кажется, плюс-минус примерно так же. Стоимость хранения везде относительно низкая для такого рода услуг. Обеспечивать надёжный сервис за эти деньги вряд ли получится, поэтому могут случаться накладки. Используйте их как один из дополнительных бэкапов, но не как основное хранилище.

У меня Яндекс.Диск используется как для хранения бэкапов, так и для совместного хранилища для разных устройств, которые только частично синхронизируют информацию с ним. Но всегда есть отдельный компьютер или виртуалка, которая синхронизируют себе полную копию облачных данных, и с этой копии делается инкрементный бэкап с глубиной хранения 180 дней.

Все сравнения и синхронизации обычно делаю с помощью программы Goodsync.

#fileserver
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142👎2
Продолжу тему с Immich, так как плотно занялся настройкой. Подробной практической информации по настройке я почти не встречал, так что со всем разбирался сам. Чтобы не забыть и помочь тем, кто будет настраивать, зафиксирую основные моменты.

▪️Сам сервис Immich для просмотра фотографий требует немного ресурсов. Я запустил на 4 CPU старого i3, 4 ГБ оперативы, RAID1 на 2 HDD. Выделил 200 ГБ под его базу данных и миниатюры. На 110 000 фоток (500 ГБ) миниатюры заняли примерно 80 ГБ. Параметры миниатюр можно настроить. ИИ анализирует только миниатюры, а не реальные фото. Так что от них зависит качество аналитики.

▪️Всю аналитику на базе LLM можно вынести на другую машину, что я и сделал. Берём секцию из docker-compose.yml для контейнера immich-machine-learning и запускаем его на любой производительной машине, желательно с видеокартой. Потом в разделе Settings Machine learning settings добавляем url этой машины, примерно так - http://192.168.137.29:3003.

Я рассчитывал, что добавив несколько серверов, можно будет параллелить задачи, но это так не работает. Выполняется проверка доступности всех добавленных серверов. Какой первый по списку будет доступен, туда и пойдут все запросы. Если сервер становится недоступен, запросы идут на следующий. То есть имеет смысл добавить один внешний сервер и для подстраховки за ним оставить локальный. Если удалённый становится недоступен, запросы пойдут на локальный.

Основная нагрузка идёт в момент добавления новых файлов. После того, как всё обработается, LLM почти не проявляет активность. Если вы никуда не торопитесь, то можно не заморачиваться с производительной LLM.

▪️Модели для поиска и распознавания лиц можно выбирать там же в настройках ML. По умолчанию для поиска используется простая LLM, которая даже русского языка не знает. Выбрать модель с поддержкой русского можно тут. Все поддерживаемые для всех задач модели перечислены здесь, можно выбрать более качественные. Я для поиска выбрал среднюю модельку ViT-L-16-SigLIP2-256__webli. Меня качество поиска на русском языке устроило. Без проблем находит, к примеру, море, лес, собак, кошек, самолёты и прочие предметы. Мне этого достаточно.

▪️По умолчанию запускаются сразу все задачи по обработке - создание миниатюр, поиск метаданных, поисковой индекс, поиск и распознавание лиц, поиск дубликатов. Если разом залить много фоток или подключить большую внешнюю библиотеку, всё это будет выполняться медленно и мешать друг другу в битве за ресурсы. Лучше включать всё последовательно: сначала миниатюры, потом метаданные, а дальше по потребностям. С миниатюрами хотя бы можно будет просматривать фотки и формировать альбомы.

▪️В веб интерфейсе по умолчанию отключен просмотр медиа через обозреватель файлов в файловой системе, а это удобно, если у вас там уже выстроена структура. Включить его можно в настройках профиля пользователя, в разделе Features.

▪️По умолчанию все загружаемые файлы складываются в иерархию со случайными именами папок и файлов, что неудобно, так как структура жёстко привязана к потрохам immich. Это можно исправить, задав шаблон для архива. Настраивается в Settings Storage Template. Шаблон по умолчанию будет вида /library/admin/2026/2026-03-24, что лично меня вполне устроило. Просто включил его. Даты файлов берутся не из времени заливки, а из метаданных, если они там есть. ☝️ Шаблон можно менять и потом конвертировать текущую структуру в новый формат.

▪️Поиск дубликатов работает средствами LLM, и работает хорошо. Можно либо вручную с ними разбираться, либо автоматом убрать все дубликаты. Система оставляет файл наибольшего размера и с наибольшим количеством метаданных. Если внешняя библиотека подключена в режиме rw, то дубликаты могут быть физически удалены.

Система мне понравилась, когда вник во все нюансы, особенно с настройками LLM. Реализовано так или иначе всё, что мне нужно от подобной системы. Это хороший пример того, как небольшие локальные модели могут эффективно решать поставленные задачи.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#fileserver
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123👎2
Вчера на прогулке прослушал длиннющий вебинар на тему, которую я никак не мог пропустить. Она тут на канале обсуждалась раз 10 в разное время:

Zabbix vs Prometheus на практике

Особо чего-то полезного и интересного, чего бы не знал, я не услышал. Автор сразу признался, что с Zabbix не работает, знает его приблизительно по старой памяти, когда сталкивался с ним по работе много лет назад. Из-за этого был в некоторых местах необъективен и никто не поправил в чате.

Например, он открыл из какого-то шаблона Zabbix старые графики, которые никто уже не использует, которые выглядят, как графики из начала двухтысячных и показал, как он мог бы быстро и удобно создать дашборд с визуализацией в Grafana в противовес тому, что он увидел на этих графиках. А факт в том, что в Zabbix в современных дашбордах можно получить так же быстро точно такой же дашборд ровно с такими же виджетами, как в его примере. Так же был продемонстрирован как пример удобства - сквозной запрос в Prom по какой-то метрике в разрезе сразу всех узлов. Zabbix тоже в какой-то момент после смены синтаксиса научился так делать.

Не то, чтобы я защищаю Zabbix. Он в этом не нуждается. Я и то, и другое активно использую и более-менее прилично знаю. Это инструменты под свои разные задачи. Я тут за объективность. Пишу заметку, чтобы акцентировать внимание на ключевом отличии с точки зрения автора вебинара между этими двумя системами. Никогда не смотрел на них под этим ключом.

В Zabbix всё крутится вокруг айтема, который привязан к метрике и по сути ей и является. Тебе обязательно надо подготовить систему мониторинга и конкретно узел, создав на нём тем или иным способом айтем - вручную, через шаблон, через правило автообнаружения или ещё как-то. И только после этого ты можешь принимать данные. Без этого ничего не получится.

В Prometheus принципиально другой подход - туда без всякой подготовки можно лить разные метрики. На сервере под каждую метрику не нужно создавать никаких сущностей. Хочешь 10 метрик отправляй, хочешь через минуту - 100. Серверу всё равно, он примет все без какой-либо донастройки. Это экономит время и организационно выглядит проще, что имеет решающее значение для динамических сред при выборе инструмента сбора метрик.

Архитектурно всё так и есть, это отличие ключевое. Я обычно на этот вопрос смотрю с точки зрения пользовательского опыта и воспринимаю Zabbix как полноценную систему мониторинга, где из коробки есть всё, что для неё нужно с удобной панелью управления. А Prometheus больше похож на фреймворк, который только собирает метрики, вокруг которого тебе предстоит самому из разных компонентов создать систему мониторинга. Как по мне - это ключевое отличие. Просто взгляд на продукты под другим углом.

Сколько лет прошло, а это принципиальное отличие не меняется. Из-за него у Prometheus появилось несколько совместимых взаимозаменяемых продуктов, которые можно безболезненно менять местами в системе мониторинга, не трогая остальные компоненты. А Zabbix как был сам собой, так и остался. Никто его не форкнул, не доработал, не написал совместимую замену. Были попытки, но все они остались местечковыми и не получили широкого распространения.

Второе заметное отличие с точки зрения практической работы с ним - Prometheus полностью совместим с подходом IaC, Zabbix - нет.

Ну и ещё один полезный момент. На вебинаре кто-то в чате написал, что активные агенты меньше нагружают сервер, так как сами шлют метрики, что упрощает процесс сбора. На самом деле это не так. Пассивные проверки архитектурно проще и если есть возможность забирать метрики сервером, то лучше делать именно так. Сервер обратился к агенту и забрал метрики. Если агент сам их отправляет, то он сначала стучится к серверу, забирает у него набор настроенных для него метрик и потом только их отправляет. Это больше итераций. Плюс, под нагрузкой у сервера меньше вариантов разрулить её, когда на него постоянно валится поток данных. Проще самому им управлять.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#zabbix #prometheus
Please open Telegram to view this post
VIEW IN TELEGRAM
👍68👎1