ServerAdmin.ru
Авторская информация о системном администрировании. Информация о рекламе: @srv_admin_reklama_bot Автор: @zeroxzed Второй канал: @srv_admin_live Сайт: serveradmin.ru Ресурс включён в перечень Роскомнадзора
Mostrar más📈 Análisis del canal de Telegram ServerAdmin.ru
El canal ServerAdmin.ru (@srv_admin) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 32 686 suscriptores, ocupando la posición 4 080 en la categoría Tecnologías y Aplicaciones y el puesto 19 556 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 32 686 suscriptores.
Según los últimos datos del 25 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 129, y en las últimas 24 horas de -3, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 22.83%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 12.76% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 7 465 visualizaciones. En el primer día suele acumular 4 172 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 74.
- Intereses temáticos: El contenido se centra en temas clave como linux, docker, мониторинг, контейнер, serveradmin.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Авторская информация о системном администрировании.
Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed
Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Ресурс включён в перечень Роскомнадзора”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 26 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
mcedit или nano, а на компе у меня VS Code или что-то подобное. А где нужны навороченные консольные редакторы, даже не придумаю.
⇨ Разворачиваем кластер Kubernetes (kubeadm) на Ubuntu 22.04
⇨ Настраиваем Ingress Controller Traefik и Let's Encrypt в кластере Kubernetes на Ubuntu 22.04
Запуск полноценного кластера Kubernetes с помощью kubeadm на базе containerd и calico и ingress контроллера traefik.
⇨ Не работает автозаполнение и протягивание формул в Excel 2016 после KB5002914
Внезапная проблема, которую принесло очередное обновление Windows. Вообще, Windows 11 стала чаще остальных систем что-то ломать своими обновлениями. У меня на прошлой неделе дети столкнулись с тем, что после очередного обновления перестала работать GTA5. Пришлось им откатить обновление с переездом на 26H2. Игру ломает именно оно.
⇨ Российские аналоги Zabbix в 2026 году: чем заменить Zabbix и стоит ли переходить
Сравнение условных аналогов Zabbix для крупной инфраструктуры (3000 хостов) - Пульт, UDV ITM, wiSLA, Glaber и 10-Страйк: Мониторинг Сети Pro. Про UDV ITM и wiSLA впервые услышал. Остальные знаю. Пульт и Glaber прямо позиционируют себя как форки Zabbix. В UDV ITM внутри как часть системы работает Zabbix, wiSLA просто умеет принимать данные от Zabbix Agent, а 10-Страйк: Мониторинг Сети Pro просто рядом постоял, так как к Zabbix никакого отношения не имеет.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#статьиE: Failed to fetch https://mirror.yandex.ru/debian-security/pool/updates/main/b/bind9/bind9-dnsutils_9.20.30-1%7edeb13u1_amd64.deb 404 Not Found [IP: 213.180.204.183 443]
Повторный запуск проходит успешно. Не знаю, с чем это связано. Может не с одновременным обновлением, а с тем, что на каких-то серверах нет всех пакетов.
У меня нет больших инфраструктур (50+ VM). Плюс, я не обновляю разом прям сразу всё, обычно группами. Мне это некритично, но всё равно эти ошибки напрягают, отвлекая на себя внимание. Да и в целом не очень разумно на каждый сервер качать пакеты, хотя современные скорости интернета позволяют не обращать на это внимание.
Дополнительно возникла ещё одна проблема с обновлением Vector из его репы apt.vector.dev. Там одно время была очень низкая скорость, а теперь вообще без прокси или впн ничего не качает. Зеркало для него на mirror.yandex.ru не нашёл. Свою копию репы поднимать не хочется. Там нужен всего один пакет.
Решил разом все эти вопросы поднятием своего кэширующего прокси для пакетного менеджера. Не стал ничего придумывать, а взял стандартный apt-cacher-ng из базового репозитория Debian. Для стандартных дебиановских реп, к которым обращаются по HTTP, ничего на самом сервере с apt-cacher-ng настраивать не надо. Всё заведётся с дефолтной конфигурацией. А вот с другими репозиториями, типа Docker, Elastic и т.д., которые работают по HTTPS, есть нюансы и различные варианты конфигурации. Я у себя настроил и уже опробовал такую схему.
Сервер с apt-cacher-ng принимает от клиентов все запросы по HTTP и сам их редиректит на HTTPS, скачивает пакеты и отдаёт клиентам. Такая настройка мне показалась самой простой и интуитивно понятной. Покажу на практике, как это реализовано. Ставим apt-cacher-ng:
# apt install apt-cacher-ng
Рисуем ему конфигурацию в /etc/apt-cacher-ng/zzz_local.conf:
Port: 3142 BindAddress: 10.20.1.150 CacheDir: /var/cache/apt-cacher-ng LogDir: /var/log/apt-cacher-ng Remap-vector-https: http://apt.vector.dev Remap-docker-https: http://download.docker.com/linux/debian Remap-grafana-https: http://mirror.yandex.ru/mirrors/packages.grafana.com/oss/deb/ Remap-elastic-https: http://mirror.yandex.ru/mirrors/elastic/9/Запускаем:
# systemctl enable --now apt-cacher-ng
Идём к клиентам, прописываем им прокси. Для этого добавляем файл /etc/apt/apt.conf.d/90apt-proxy:
Acquire::http::Proxy "http://10.20.1.150:3142"; Acquire::https::Proxy "DIRECT";Репозитории, что работают по HTTP, трогать не надо. Они теперь будут обновляться через прокси. А в тех репах, что работают по HTTPS, надо поменять протокол с https на http. Вот пример для
docker.list:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] http://download.docker.com/linux/debian trixie stable
Собственно, на этом всё. Те репы, где оставили https, работают напрямую. Обновляемся на клиентах и смотрим на сервере с прокси логи и кэш в папках /var/log/apt-cacher-ng и /var/cache/apt-cacher-ng.
С vector я решил вопрос так. Подключил эту репу на сам сервер apt-cacher-ng. Ему настроил доступ к репе через впн. Сначала обновляю пакет на нём, он попадает в кэш. Все остальные сервера берут с него.
Вариантов решения подобных задач много. Я их все решил одним apt-cacher-ng.
p.s. уже после написания заметки узнал, что для vector можно использовать репу apt.datadoghq.com, это CNAME для apt.vector.dev, то есть полная копия, доступная пока без ограничений.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#linux #apt; php2shell
memory_limit = -1
post_max_size = 8M
upload_max_filesize = 6M
session.upload_progress.enabled = 0
На 100% это не защищает, но и область атаки сильно сужает. Надеюсь в ближайшее время появятся какие-то более надёжные методы защиты старых версий PHP. Я уверен, это очень актуально для огромного числа пользователей. Что-то должно появиться.
2️⃣ Была какая-то критичная уязвимость в MariaDB. Про неё даже ФСТЭК написал. В Debian новые пакеты приехали совсем недавно. Пару недель назад я их ещё не видел. И всё бы ничего, но на части серверов у меня обновление тупо зависало и вешало сервис mariadb намертво.
Конкретно у меня это воспроизводилось на части серверов с Debian 12. В момент обновления с версии 10.11.18 на 10.11.19 какой-то скрипт из нового пакета выключал службу и запускал заново. И этот первый пуск в рамках работы менеджера пакетов apt намертво зависал. Я ждал минут 20, думал, может таблицы обновляет или ещё что-то делает. Боялся прерывать. Но дольше уже не мог ждать, надо было что-то решать.
Если отправить сервер в reboot, то завершение работы подвисает, ожидая ответа от службы mariadb. Потом по окончании таймаута минут в 10, всё же перезапускается и нормально работает. Каким-то образом штатно остановить службу не получалось. Она ни на что не реагировала. В логах пусто, никаких ошибок. Приходилось тушить через SIGKILL. Слава богу, ни один сервер не умер от таких манипуляций.
Разбираться с этой проблемой не было времени. Раз зависнув, это больше не повторялось. Это явно какая-то проходная ошибка, возникающая на конкретных версиях пакетов. В Debian 13 я с этим не столкнулся.
В итоге на части серверов я получил развлечение в виде зависшего процесса с apt и упавшей СУБД, чего никак не ждёшь от обновлений безопасности (передаю привет тем, кто их ставит автоматически ✋😃). Вкупе с невозможностью обновить на некоторых серверах PHP, это добавило лишних переживаний.
3️⃣ Про компрометацию ключей удостоверяющего центра eMudhra, думаю, вы тоже уже слышали. Повсюду новость разлетелась. Соответственно, в дистрибутивы прилетело обновление пакета ca-certificates.
Вот эти три вещи по идее обязательны к обновлению, причём экстренному, что я вчера и сделал. ❓А у вас какие отношения с обновлениями? Обновились внепланово или пока ждёте? Были проблемы?
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#security #debian# curl -fsSL https://opencode.ai/v2/install | bash
Я рекомендую сразу поставить tmux или screen и запустить opencode там. Далее проходим этап первоначальных настроек. Я сейчас не знаю, что там. У меня уже давно всё настроено. На эту тему куча видео в интернете.
Создаём рабочий каталог, например, ansible_base_configure, заходим в него и запускаем opencode в нём. Открываем список моделей и выбираем GLM-5.3-Flash Free.
Дальше в поле ввода выбираем режим Plan и пишем в чат всё, что хотите сделать. Я для примера сходу составил вот такой промпт:
Ты - DevOps инженер, специализирующийся на автоматизации через Ansible и отвечающий за идемпотентность и check-mode при работе с виртуальными машинами Linux. Задача - подготовить Playbook для контроля базовых настроек виртуальных машин на базе ОС Debian 13 в среде PVE. Используй только проверенные и общепризнанные практики подхода IaC. В решении опиши структуру каталогов, ключевые модули, переменные по уровням (group_vars, host_vars, defaults) и стратегию тегов. Приведи пример inventory с десятью серверами разного назначения и команду запуска ansible-playbook с нужными флагами. Запиши всё это в README.md. Что делаем на виртуальных машинах (VM): - проверяем по списку подключенные репозитории, для каждой VM оставляем возможность указать набор репозиториев, которые должны быть подключены - проверяем наличие обновлений пакетов и если они есть - устанавливаем - устанавливаем и настраиваем nftables, закрываем все входящие подключения, разрешаем все исходящие, отдельным списком для каждой VM указываем входящие порты и источники трафика, для которых будут разрешены подключения - устанавливаем везде типовой набор пакетов - net-tools, mc, iftop, lsof, git, для каждой VM оставляем возможность в отдельном списке указать дополнительные пакетыВ режиме Plan агент скорее всего задаст какие-то дополнительные вопросы. Например, оставляем ли открытым порт для SSH, какой формат репозиториев выбираем, нужно ли перезагружать VM после обновления и т.д. По характеру вопросов вы сами поймёте, чем нужно дополнить промпт. Чем подробнее вы его опишите, тем лучше. Но даже если он будет неполным, по ходу дела вы будете его дополнять. Когда все вопросы разобраны, выбираете режим Build и говорите агенту, чтобы он реализовывал проект. Дальше он будет много всего делать. Когда закончит, посмотрите глазами, что там получилось и постарайтесь осознать 😁. Для этой задачи контекста в 200к должно хватить. Далее готовите ему тестовую виртуальную машину и прямо в чат пишите параметры доступа. Говорите ему, что хотите настроить на этой VM, и просите отладить работу плейбука. Поначалу будет куча ошибок. Скорее всего он их все исправит автоматически. Эта задача простая. На выходе у вас получится готовый рабочий плейбук, уже протестированный, с инструкцией по использованию. У меня это заняло примерно 30 минут на всё про всё, отвлекаясь на другие задачи. Получил рабочий, проверенный плейбук. Обычно после появления первой рабочей версии я добавляю его в git и куда-то загружаю в репу. Теперь этот проект можно скормить другой llm, если она у вас есть, и провести аудит. Если подключить MCP для PVE, то агент может добавить в инвентарь ваши VM. У себя это проверял. Но контекста больше уходит. На решение задачи может не хватить. ——— ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩 #ai #devops #ansible
# wget https://github.com/cs01/termpair/releases/download/v1.2.0/termpair-x86_64-unknown-linux-gnu.tar.gz
# tar xvf termpair-x86_64-unknown-linux-gnu.tar
# mv termpair /usr/local/bin/
Это нужно сделать и на клиентах, и на сервере, который будет обслуживать соединения. Далее на сервере устанавливаем Nginx и Certbot:
# apt install nginx certbot
Получаем сертификат для домена:
# certbot certonly
Рисуем конфигурацию для TermPair:
upstream termpair_app {
server localhost:8000;
}
server {
server_name 345265.simplecloud.ru;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/345265.simplecloud.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/345265.simplecloud.ru/privkey.pem;
location /termpair/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://termpair_app/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Создаём systemd unit для службы TermPair в файле /etc/systemd/system/termpair.service:
[Unit]
Description=TermPair server
After=network.target
[Service]
ExecStart=/usr/local/bin/termpair serve --port 8000
Restart=on-failure
RestartSec=1s
[Install]
WantedBy=multi-user.target
Запускаем службу:
# systemctl daemon-reload
# systemctl enable --now termpair.service
Теперь на сервере, где мы хотим расшарить консоль, запускаем TermPair и указываем через ключ наш сервер:
# termpair share --host "https://345265.simplecloud.ru/termpair/" --port 443
В консоли получаем ссылку для подключения и переходим по ней браузером. Дальше используем по назначению. Доступ будет у всех, кто знает ссылку. Ограничить доступ только чтением можно ключом -r. Через ключ --cmd можно сразу запустить какую-то программу, например, opencode.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#linuxupstream app {
server 127.0.0.1:8000;
}
.....
location /app/ {
.....
proxy_pass http://app/;
.....
}
Сервис с дефолтными настройками запускается на http://localhost:8000. Пробую напрямую, всё работает. Через Nginx - никак, 502 ошибка, в логах стандартно - (111: Connection refused) while connecting to upstream. Думаю, что за ерунда. Напрямую же отвечает, почему через Nginx - нет. Ещё и приложение никаких своих логов не даёт, не понятно, что не так.
Разобрался чисто интуитивно. Вспомнил, что 127.0.0.1 и localhost - это не одно и то же. Первый - адрес ipv4, а localhost на современных дистрибутивах резолвится в ipv6 (::1).
Попадались на таком нюансе? Я уже не первый раз. Кстати, не понимаю, для чего localhost перевели на ipv6. В чём смысл? Даже не то, что перевели. В /etc/hosts оставили оба адреса, и ipv4, и ipv6, но по современным RFC адреса v6 имеют приоритет над v4. Поэтому теперь localhost по умолчанию отвечает с адреса ::1, а не 127.0.0.1. Это можно вручную изменить, убрав запись с ::1 из /etc/hosts. Я одно время это делал, потом перестал. Нет смысла бороться с ветряными мельницами. Надо привыкать.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#linux #ошибка# wget https://repo.initmax.com/zabbix/release/initmax-release-latest_all.deb
# dpkg -i initmax-release-latest_all.deb
# apt update && apt install zabbix-module-hidewidgetheader
То есть удобно сделано, через пакеты, поддерживается и обновляется. Теперь, если ты отключил заголовки, они при наведении будут всплывать только в режиме редактирования, но не просмотра. Мне это очень нравится 😁 У них много разных модулей, можете сами посмотреть, что там вам покажется полезным.
Ещё у них инструкции неплохие были, но сейчас не уверен, что они ещё актуальны. С приходом ИИ большого смысла в них нет. Он их уже и так изучил и может изложить с подробностями.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#zabbixzvol_request_sync = 0 или 1
◽️ 0 - асинхронная обработка через общий пул потоков ZVOL.
◽️ 1 - обработка непосредственно в контексте вызывающего потока, без передачи в общий пул ZVOL.
Казалось бы, второй вариант решает проблему конкуренции между пулами. Но разработчики предупреждают, что такая схема может существенно ухудшить параллелизм и производительность i/o. Поэтому использовать её без тестирования не стоит.
Можно увеличить кол-во потоков zvol_threads, но всё равно нет гарантии, что все эти потоки не будут заняты медленным пулом.
Ещё вариант - изменить механизм очереди - zvol_use_blk_mq = 1. Но тут надо тестировать на практике, потому что потоки будут по-прежнему в одном общем пуле, изменится распределение. Не факт, что при нагрузке на медленный пул, запросы к быстрому не будут вставать в очередь.
Если от ZFS отказываться не хочется, а проблема настройками не решается, то я бы замедлил скорость снятия бэкапов программно, чтобы уменьшить очередь к медленным дискам. Теоретически, это в той или иной мере должно решить проблему.
В общем, как я всегда говорил и говорю, ZFS - нишевая файловая система под конкретные задачи и потребности. У неё много возможностей, нюансов и настроек. Ставить её по умолчанию, как ФС общего назначения, не стоит. Преимущества вам могут оказаться не нужны, а все особенности и недостатки вы по умолчанию потянете за собой.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#pve #zfs20 октября на онлайн-митапе ребята покажут, где рождается скорость, как устроен такой диск внутри и как не уронить систему при отказе.Участие бесплатное. Подробности и регистрация по ссылке.
# ssh -T root@1.2.3.4 'dd if=/dev/sda bs=16M status=none' | dd of=/dev/sdb bs=16M iflag=fullblock status=progress conv=fsync
Прямо наживую запустил посекторное копирование удалённого диска sda на свой локальный sdb. В моём случае диск был 60 ГБ, нормально скопировался примерно за час без единого разрыва. При этом на сервере был запущен сервер MySQL.
Очевидно, что консистентную копию таким образом не сделать, но мне и не надо. Если бы побились данные, я бы их накатил из бэкапа. Мне главное окружение скопировать, чтобы не воспроизводить его вручную.
У этой виртуалки отключил основной диск, а sdb, на который залил копию VPS, сделал загрузочным. После этого успешно загрузился в полной копии VPS. Система ругнулась при запуске, что у неё повреждена файловая система, что ожидаемо. Запустил fsck -y, потом перезагрузил систему. Она при загрузке запустила ещё раз проверку диска, все ошибки исправила, и я получил полностью рабочую копию своей VPS. Даже базу данных не пришлось перезаливать. СУБД запустилась в режиме innodb_force_recovery. Мне этого было достаточно, хотя какие-то таблицы и побились. Я только поменял IP адрес, поправил файрвол под реалии своего тестового контура и отладил обновление.
Выполнил всё, что мне было нужно. Там возникли проблемы. Убедился, что исправил все ошибки, записал команды и воспроизвёл на VPS.
Способ выглядит жутко колхозным и на первый взгляд нерабочим, но на деле я такое проворачивал уже не один раз. Ранее были заметки на эту тему. Он вполне рабочий, система всегда копируется нормально. Иногда только данные бьются, которые изменились в процессе копирования. Но сама система, как правило, приезжает в рабочем состоянии. Конечно, если есть доступ к образу диска, а тем более, к снепшотам, проще копировать его. Причём это можно сделать так же наживую. Тоже побьётся файловая система, но в целом систему можно будет починить и запустить.
Основное преимущество этого способа - не надо останавливать исходную машину вообще. И не надо ставить дополнительное ПО. К примеру, сюда можно было бы установить Veeam Agent for Linux и снять образ с его помощью. Но для разовых задач не хочется ничего лишнего устанавливать. Задача решена и без этого.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#linux