Admin Guides | Сисадмин
11.4K subscribers
1.23K photos
19 videos
34 files
558 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
🧠 Тест для Software Architect https://otus.pw/HVo78/?erid=2W5zFJkgc8Q
Под силу ли вам ответить правильно на все 11 вопросов?
🎯Проверьте себя - пройдите тест и оцените свой уровень навыков, а также свою готовность к обучению на курсе — «Software Architect» от Отус.
🎥 После прохождения теста вы получите доступ к лучшим вебинарам курса!
Время прохождения теста ограниченно.
💡 Удачи в прохождении теста!

#реклама
О рекламодателе
👍3😁1
Установка и настройка Docker Swarm (Часть 1)

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

В этом посте разберём установку Docker и развёртывание кластера Swarm на Ubuntu 16.04.

Шаг 1: Обновление системы

Перед установкой Docker обновите систему:

sudo apt-get update -y && sudo apt-get upgrade -y


После обновления рекомендуется перезагрузить сервер.

Шаг 2: Установка Docker

Docker по умолчанию отсутствует в репозиториях Ubuntu 16.04, поэтому сначала установим необходимые зависимости:

sudo apt-get install apt-transport-https software-properties-common ca-certificates -y


Затем добавим GPG-ключ и репозиторий Docker:

wget https://download.docker.com/linux/ubuntu/gpg && sudo apt-key add gpg
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update -y


Теперь установим сам Docker:

sudo apt-get install docker-ce -y


Запустим и настроим автозапуск Docker:

sudo systemctl start docker && sudo systemctl enable docker


Шаг 3: Разрешение запуска Docker без sudo

По умолчанию для работы с Docker нужны права root. Если хотите запускать контейнеры без sudo, добавьте пользователя в группу docker:

sudo groupadd docker && sudo usermod -aG docker $USER


Перезайдите в систему, чтобы изменения вступили в силу.

Шаг 4: Настройка брандмауэра (UFW)

Для корректной работы Swarm откроем необходимые порты:

sudo ufw allow 2376/tcp && sudo ufw allow 2377/tcp
sudo ufw allow 7946/udp && sudo ufw allow 7946/tcp
sudo ufw allow 4789/udp && sudo ufw allow 80/tcp


Применяем изменения и включаем UFW:

sudo ufw reload && sudo ufw enable


Шаг 5: Инициализация Docker Swarm

Выберите IP-адрес узла, который будет менеджером кластера, и выполните команду:

docker swarm init --advertise-addr 192.168.0.103


Если всё прошло успешно, вы увидите подобный вывод:

Swarm initialized: current node (...) is now a manager.
To add a worker to this swarm, run:
docker swarm join --token SWMTKN-... 192.168.0.103:2377


Сохраните этот токен, он понадобится для добавления новых узлов в кластер.

Шаг 6: Проверка статуса кластера

Команда ниже отобразит список узлов в Docker Swarm:

docker node ls


Ожидаемый результат:

ID                            HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader


Также можно проверить статус всего Docker Swarm:

docker info | grep Swarm


Если всё настроено верно, в выводе будет строка Swarm: active.

В следующей части разберём добавление узлов в кластер, развертывание веб-сервисов и управление ими.
👍13💯4
Установка и настройка Docker Swarm (Часть 2)

В первой части мы установили Docker, настроили брандмауэр и инициализировали Swarm-кластер. Теперь добавим рабочие узлы и развернём веб-сервис.

1️⃣Добавление узлов в кластер

На новом сервере, который будет worker-узлом, выполните команду, полученную ранее:

docker swarm join --token SWMTKN-... 192.168.0.103:2377


Ожидаемый результат:

This node joined a swarm as a worker.


Проверить статус всех узлов можно командой:

docker node ls


Вывод должен включать как Manager, так и Worker:

ID                            HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader
snrfyhi8pcleagnbs08g6nnmp Worker-Node Ready Active


2️⃣Развертывание веб-сервиса

Запустим Apache (httpd) в режиме Docker Swarm:

docker service create --name webserver -p 80:80 httpd


Проверим, работает ли сервис:

docker service ls


Вывод:

ID          NAME        MODE        REPLICAS  IMAGE          PORTS
nnt7i1lipo webserver replicated 1/1 httpd:latest *:80->80/tcp


3️⃣Масштабирование сервиса

Чтобы увеличить число реплик веб-сервера, используем команду:

docker service scale webserver=2


Теперь проверим распределение контейнеров по узлам:

docker service ps webserver


Вывод должен показывать два контейнера, работающих на разных узлах:

ID           NAME           IMAGE         NODE          DESIRED STATE  CURRENT STATE
7roily9zpjvq webserver.1 httpd:latest Worker-Node Running Running
r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Running


4️⃣Проверка отказоустойчивости

Если отключить Worker-узел (например, остановить Docker):

sudo systemctl stop docker

То Swarm автоматически запустит новый контейнер на оставшемся узле. Проверить это можно командой:

docker service ps webserver
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает механизм lazy binding в динамическом линкере Linux и зачем он нужен?

Ответ: Lazy binding (отложенная привязка) — это техника, используемая динамическим линкером (ld.so) для повышения производительности при загрузке программ.

При стандартной загрузке все внешние символы (например, функции из библиотек) резолвятся сразу, что увеличивает время старта. При lazy binding разрешение символов происходит только в момент первого вызова.

Это достигается с помощью PLT (Procedure Linkage Table) и GOT (Global Offset Table). При первом вызове функция передает управление в PLT, который вызывает динамический линкер для нахождения реального адреса функции и обновляет GOT. Все последующие вызовы напрямую обращаются к правильному адресу, что снижает накладные расходы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👎51
🔥Хотите упростить сбор логов, метрик и трейсов в своей инфраструктуре? Grafana Alloy — мощный инструмент, который унифицирует доставку данных и интегрируется с Prometheus, Loki, Tempo и другими сервисами.

⚡️17 марта в 20.00 мск приглашаем на открытый вебинар "Grafana Alloy - универсальный инструмент доставки логов, метрик и трейсов", на котором узнаем:
- Как Grafana Alloy решает проблемы передачи данных в сложных системах?- Чем он отличается от Fluentd, Vector и других агентов?
- Как настроить отказоустойчивость и балансировку нагрузки?
- Лучшие практики маршрутизации, фильтрации и трансформации данных.Регистрируйтесь и внедряйте Grafana Alloy в своих проектах!

👉Регистрация: https://otus.pw/koCT/?erid=2W5zFG59HgC 

Занятие приурочено к старту курса "Observability: мониторинг, логирование, трейсинг", на котором вы научитесь строить эффективные системы мониторинга, работать с Prometheus, Grafana, ELK и другими инструментами, визуализировать метрики.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
👍3
Управление трафиком с помощью tc на Linux

Команда tc (Traffic Control) позволяет контролировать полосу пропускания, ограничивать скорость трафика и управлять приоритетами пакетов.

Пример задачи:

Ограничим скорость исходящего трафика для интерфейса eth0 до 5 Мбит/с.

Создание очереди и установка ограничений

sudo tc qdisc add dev eth0 root tbf rate 5mbit burst 32kbit latency 400ms

• dev eth0 — целевой интерфейс.
• root — создание корневой очереди.
• tbf (Token Bucket Filter) — механизм управления трафиком.
• rate 5mbit — лимит в 5 Мбит/с.
• burst 32kbit — допустимый объем буфера для коротких всплесков трафика.
• latency 400ms — максимальная задержка.

Проверка настроек

sudo tc qdisc show dev eth0


Вы увидите текущую конфигурацию очереди.

Удаление правил (если нужно)

sudo tc qdisc del dev eth0 root


Эта команда сбрасывает все настройки управления трафиком для интерфейса eth0.
👍17
😁23👍3
Протокол Syslog: Серверы, сообщения и безопасность

Syslog — это стандартный протокол для передачи сообщений о событиях с сетевых устройств на центральный сервер журнала.

Он позволяет собирать логи с маршрутизаторов, коммутаторов, брандмауэров, серверов *nix и даже веб-серверов, таких как Apache. 


Хотя Windows-системы изначально не поддерживают Syslog, сторонние инструменты позволяют отправлять логи событий Windows на Syslog-сервер.

Основные компоненты Syslog-сервера

1️⃣Syslog-слушатель — принимает сообщения через порт UDP 514. Поскольку UDP не гарантирует доставку, некоторые устройства используют TCP-порт 1468 для надежной передачи.
2️⃣ База данных — хранит логи для быстрого поиска и анализа. Это особенно важно для крупных сетей с большим потоком данных.
3️⃣ Программное обеспечение управления и фильтрации — помогает сортировать логи, создавать уведомления и отправлять алерты для быстрой реакции на инциденты.

Формат сообщений Syslog

Сообщение содержит:
• IP-адрес источника
• Метку времени
• Текстовое сообщение

Уровни серьезности:

1. Emergency (0) — Система неработоспособна
2. Alert (1) — Требуется немедленное вмешательство
3. Critical (2) — Критическая ошибка
4. Error (3) — Ошибка
5. Warning (4) — Предупреждение
6. Notice (5) — Важное событие
7. Informational (6) — Информационное сообщение
8. Debug (7) — Отладочная информация

Недостатки Syslog
Нестандартный формат сообщений, что затрудняет автоматический анализ.
Передача по UDP, что может привести к потере пакетов при перегрузке сети.
Отсутствие аутентификации, что позволяет злоумышленникам отправлять поддельные логи.

Пример настройки на Linux

Установка Syslog-сервера (например, Rsyslog):

sudo apt update  
sudo apt install rsyslog


Открываем конфигурационный файл:

sudo nano /etc/rsyslog.conf  


Включаем прием сообщений по сети:

$ModLoad imudp  
$UDPServerRun 514


Перезапускаем службу:

sudo systemctl restart rsyslog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
Вышел Debian 12.10: финальное обновление ветки Bookworm

15 марта 2025 года вышел Debian 12.10 — обновление популярного дистрибутива Linux.

Доступен для девяти архитектур, включая Intel IA-32/x86 (i686), AMD64/x86–64, ARM64 и другие.


Debian 12.10 стал последним выпуском ветки 12.x, начавшейся с Debian 12 «Bookworm» в июне 2023 года. Следующий крупный релиз — Debian 13 «Trixie» — ожидается позже в 2025 году.

Обновление содержит 66 исправлений стабильности и 43 патча безопасности.

Новые установочные образы доступны для загрузки, а пользователи Debian 12 получат обновления через стандартную систему.

Обновления безопасности доступны через security.debian.org.
👍25
Еще 3 команды для проверки железа на сервере Linux

Расскажу еще о 3 подобных командах

1️⃣dmidecode

Данная команда отличается от остальных тем, что парсит информацию о железе из SMBIOS/DMI (очень детальный вывод).

#посмотреть информацию о cpu
sudo dmidecode -t processor
#ram информация
sudo dmidecode -t memory
#информация о bios
sudo dmidecode -t bios


2️⃣ mount

Утилита mount предназначена для управления и просмотра смонтированных файлов систем и соответствующих точек:

[root@hq ~]# mount | column -t

/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
/var/spool/asterisk/monitor on /var/www/html/ast_mon_dir type none (rw,bind)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)


3️⃣ lsusb – список USB – шин и подробная информация об устройствах

Команда расскажет про USB – контроллеры и устройства, подключенные к ним. По умолчанию, команда отобразит краткую информацию. В случае, если необходима глубокая детализация, воспользуйтесь опцией -v:

[root@hq ~]# lsusb

Bus 003 Device 001: ID 9c6a:00c1 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 092e:00de Microsoft Corp. Basic Optical Mouse v2.0
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥2
Продвинутая настройка Syslog: фильтрация и пересылка логов

Syslog позволяет не только собирать логи, но и фильтровать их, а также пересылать на удаленный сервер для централизованного хранения.

Пересылка логов на удаленный сервер

Редактируем конфигурацию:

sudo nano /etc/rsyslog.conf  


Добавляем строки:

*.* @192.168.1.100:514  # Отправка по UDP  
*.* @@192.168.1.100:514 # Отправка по TCP


Применяем изменения:

sudo systemctl restart rsyslog  


Фильтрация по уровню серьезности

Записываем критические ошибки в отдельные файлы:

*.emerg /var/log/emergency.log  
*.alert /var/log/alert.log


Мониторинг логов в реальном времени

tail -f /var/log/syslog  


Фильтр по IP-адресу:

grep "192.168.1.50" /var/log/syslog  


Проверка работы Syslog

logger -p local0.info "Test Syslog Message"  
cat /var/log/syslog | grep "Test Syslog Message"
👍13
Самый лёгкий способ попасть в Kubernetes

Ребята из «Лаборатории Числитель» выкатили «Штурвал CE» — бесплатную и полнофункциональную community-версию платформы для управления кластерами K8s.

Просто взяли все технологии enterprise-версии и отдали всем, кому это нужно. Пользуйтесь, сколько хотите, даже в продуктиве, без урезаний по функциям и пробных периодов! :)

А вот тут чат с разрабами, пояснительная бригада всегда на связи, да еще и подарки раздает за активное участие в жизни комьюнити.
👍8🔥21🌚1
"После удаления, программа больше не сможет использоваться и не будет доступна"

Спасибо за объяснение, я не знал…
😁8👍1🔥1
Observability как культура: как внедрить её в команду?

Приглашаем обсудить это на бесплатном вебинаре от учебного центра Слёрм.

О чем поговорим:

🔸 как убедить команду и руководство в важности observability;
🔸 зачем вообще это внедрять;
🔸 с какими культурными барьерами может столкнуться команда;
🔸 какие практические шаги предпринять, чтобы донести ценность;
🔸 как подготовиться к будущим вызовам.

И, конечно, всеми любимые факапы из реальной жизни — про это мы точно не забудем!

Когда: 1 апреля в 19:30

📌 Занять место на вебинаре — через бота.
👍2
Вышел SystemRescue 12.0 — инструмент для восстановления системы

В марте 2025 года выпущен SystemRescue 12.0 — Live-дистрибутив на базе Arch Linux, предназначенный для диагностики, восстановления данных и администрирования в случае сбоя системы.

Основные изменения в SystemRescue 12.0:
– Добавлена поддержка файловой системы Bcachefs
– Обновлён GParted 1.7 с поддержкой Bcachefs
– Ядро обновлено до Linux 6.12 (ранее 6.6 LTS)
– Добавлены новые версии утилит nwipe 0.38 и dump 0.4b49

Дистрибутив поставляется в виде ISO-образа размером 1 ГБ (amd64) и использует графическое окружение Xfce. Предыдущая версия SystemRescue 11.0 вышла в январе 2024 года.
👍18
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает механизм Netfilter в Linux и зачем он нужен?

Ответ: Netfilter — это подсистема ядра Linux, обеспечивающая фильтрацию и обработку сетевых пакетов. Она используется для межсетевого экранирования, NAT, балансировки нагрузки и глубокого анализа трафика.

Основные компоненты:
Hooks: точки в сетевом стеке, через которые проходят пакеты (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING).
iptables/nftables: инструменты управления правилами фильтрации и перенаправления трафика.
Connection Tracking: механизм, позволяющий отслеживать состояние соединений и применять stateful-фильтрацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
FTP vs SFTP vs FTPS: В чем разница?

FTP, SFTP и FTPS — это три протокола для передачи файлов, которые часто используются для обмена данными между сервером и клиентом.

Хотя все они выполняют одну и ту же задачу, они существенно различаются по способу обеспечения безопасности и механизмам работы.


Проще говоря:
FTP — это классический, но небезопасный способ передачи файлов.
SFTP — это защищённый метод, использующий шифрование.

Что такое FTP?

FTP (File Transfer Protocol) — это старый протокол, работающий по схеме клиент-сервер. Он используется для передачи файлов между устройствами в сети.

Основные особенности:
Работает по 21 порту.
Передача данных происходит в открытом виде (без шифрования).
Поддерживает аутентификацию по логину и паролю.
Требует отдельного FTP-сервера для работы.

Из-за отсутствия шифрования FTP не рекомендуется использовать в небезопасных сетях.

Что такое SFTP?

SFTP (Secure File Transfer Protocol) — это безопасный вариант передачи файлов, основанный на SSH (Secure Shell).

Основные особенности:
Работает через 22 порт (тот же, что у SSH).
Все данные передаются в зашифрованном виде.
Позволяет использовать ключевую аутентификацию вместо паролей.
Может работать без отдельного сервера, если включен SSH.

FTPS (FTP Secure)

FTPS — это FTP, который добавляет поддержку SSL/TLS для шифрования. В отличие от SFTP, который работает через SSH, FTPS использует стандартные порты FTP (21) и добавляет возможность защищенной передачи данных с помощью SSL/TLS. FTPS бывает двух типов: Explicit и Implicit.

В Explicit FTPS клиент должен сначала отправить команду, чтобы установить защищенное соединение, а в Implicit FTPS соединение по умолчанию всегда защищено.


Особенности:
• Работает по порту 990 (Implicit) или 21 (Explicit).
• Использует SSL/TLS для шифрования.
• Можно использовать с существующим FTP-сервером с минимальными изменениями.

Сравнение:
FTP: не защищен.
SFTP: использует SSH для безопасности и шифрования.
FTPS: использует SSL/TLS для защиты и может работать с традиционным FTP-сервером.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33
RAID 5 vs RAID 10: что лучше для сервера?

Когда дело доходит до хранения данных на сервере, администратору важно выбрать надежную и производительную систему. Одни из самых популярных уровней RAID — RAID 5 и RAID 10. Они оба обеспечивают отказоустойчивость, но работают по-разному. Давайте разберемся, чем они отличаются и какой лучше выбрать.

RAID 5: больше места, но медленнее запись

Этот массив использует чередование (striping) с четностью (parity). Данные разбиваются на блоки и распределяются по всем дискам, а один блок в каждом цикле отводится под контрольную сумму.

Как это работает:
Если один диск выходит из строя, его данные можно восстановить с помощью контрольных сумм.
Однако запись медленнее, так как требуется пересчет этих сумм.

Плюсы:
Экономичность — теряется только емкость одного диска.
Хорошая скорость чтения.
Выдерживает отказ одного диска.

Минусы:
Медленная запись из-за пересчета четности.
Долгое восстановление при сбое.
Если сломается второй диск до завершения восстановления, данные потеряются.

Вывод: RAID 5 подходит, если вам важно сохранить больше полезного пространства, но запись не критична по скорости.

RAID 10: высокая скорость и надежность

Этот массив сочетает зеркалирование (mirroring) и чередование (striping). Каждый диск дублируется (как в RAID 1), а затем данные распределяются по зеркальным парам (как в RAID 0).

Как это работает:
Данные всегда хранятся в двух копиях, что повышает надежность.
Чтение и запись быстрее, чем в RAID 5, так как нет необходимости пересчитывать контрольные суммы.

Плюсы:
Высокая скорость чтения и записи.
Более быстрая реконструкция массива при сбое.
Выдерживает отказ до половины дисков, если они выходят из строя не в одной зеркальной паре.

Минусы:
Требуется в 2 раза больше дисков, чем в RAID 5.
Дороже в плане объема полезного пространства.

Вывод: RAID 10 — отличный вариант для критически важных систем, где важны высокая скорость и надежность.

Что выбрать?

RAID 5 — если вам нужно больше дискового пространства и запись не критична по скорости.
RAID 10 — если важны высокая производительность и быстрый откат при сбоях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍182