NetworkAdmin.ru
Kanalga Telegram’da o‘tish
Авторский блог про сетевое и системное администрирование. Сайт: networkadmin.ru Реклама: @dad_admin Биржа: https://telega.in/c/networkadminru
Ko'proq ko'rsatish4 714
Obunachilar
+224 soatlar
-97 kunlar
-530 kunlar
Postlar arxiv
4 714
🛡 Как корректно отслеживать и логировать выполнение Ansible-плейбуков
Если вы регулярно работаете с Ansible - важно не только писать рабочие плейбуки, но и контролировать, когда, кем и как они были запущены. Особенно, если в вашей инфраструктуре Ansible используется как часть CI/CD или централизованного управления.
1️⃣ Включаем логирование в конфиге Ansible. В файле
/etc/ansible/ansible.cfg (или в локальной копии ansible.cfg) пропишите:
[defaults]
log_path = /var/log/ansible.log
Ansible начнет писать все свои действия в указанный файл. Убедитесь, что у пользователя, запускающего Ansible, есть права на запись.
2️⃣ Используйте теги и переменные для понятности. Добавляйте теги к задачам:
- name: Установка nginx
apt:
name: nginx
state: present
tags:
- web
- nginx
Это поможет фильтровать задачи в логах, запускать только нужные части и документировать назначение.
3️⃣ Логируйте переменные, хосты, результаты. Для отладки - полезно писать значения переменных в лог:
- name: Показываем значение переменной
debug:
var: some_variable
Также можно логировать hostname, пользователя и дату запуска, добавляя кастомную задачу:
- name: Логируем запуск
shell: echo "{{ ansible_date_time.iso8601 }}: {{ inventory_hostname }} - {{ ansible_user }}" >> /var/log/ansible_run.log
4️⃣ Используйте Ansible Callback Plugins. Для более глубокого логирования можно подключить callback-плагины.
Например, json или yaml:
[defaults]
stdout_callback = yaml
А если хотите логировать в файл в формате JSON, можно использовать:
[defaults]
callback_whitelist = json
stdout_callback = json
log_path = /var/log/ansible-json.log
5️⃣ Храните вывод выполнения с ansible-playbook. При запуске:
ansible-playbook site.yml | tee -a /var/log/ansible-run-$(date +%F-%T).log
Так у вас будет отдельный лог под каждое выполнение.
6️⃣ Интеграция с CI/CD и мониторингом. Если Ansible запускается через GitLab, Jenkins, Drone и прочее - обязательно сохраняйте артефакты выполнения и возвращайте статус завершения. Также можно отправлять результаты выполнения в телегу через webhook после ansible-playbook.
#ansible #security
🧑💻 NetworkAdmin4 714
✨ Как работает LACP и зачем использовать агрегирование каналов
Когда одного сетевого интерфейса мало - приходит время объединять их в «команду». Это называется агрегация каналов, и один из самых популярных способов реализовать ее - протокол LACP (Link Aggregation Control Protocol).
LACP - часть стандарта IEEE 802.3ad. Он позволяет объединить несколько физических интерфейсов в один логический (LAG - Link Aggregation Group), который операционная система и приложения видят как один.
🌟 Зачем это нужно?
📍 Повышение пропускной способности; 📍 Повышение отказоустойчивости (если один порт отваливается - остальные продолжают работать); 📍 Балансировка нагрузки между портами.🌟 Как это работает
📍 LACP автоматически обнаруживает, какие интерфейсы можно объединить 📍 Обе стороны (свитч и хост) договариваются, какие порты войдут в LAG 📍 Если кабель выпал или порт упал - он просто исключается из группы, ничего не рушится▪️ Настройка в Linux. Пример для двух интерфейсов ens33 и ens34: 1️⃣ Устанавливаем ifenslave (если нужно):
sudo apt install ifenslave
2️⃣ Настраиваем bonding-мод LACP (mode 4): В /etc/network/interfaces или аналогичном конфиге:
auto bond0
iface bond0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
bond-slaves ens33 ens34
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-xmit-hash-policy layer3+4
3️⃣ Важно! На свитче тоже нужно включить LACP на соответствующих портах (обычно называются channel-group или LAG в интерфейсе).
⭐️ Несколько нюансов:
📍 LACP работает только при поддержке с обеих сторон (сервер + свитч) 📍 LAG не удваивает скорость для одного TCP-соединения, но позволяет нескольким соединениям распределяться по разным каналам 📍 Лучше всего работает с хешированием по Layer3+4 (IP + порт)#network #LACP 🧑💻 NetworkAdmin
4 714
📈 Как сымитировать нагрузку в linux без сторонних утилит
Иногда при настройке мониторинга на малонагруженных серверах нужно протестировать графики и дашборды, добавив искусственную нагрузку. Устанавливать отдельные утилиты вроде
stress или stress-ng не всегда хочется. К счастью, это можно сделать встроенными средствами - через dd, sha1sum, yes, /dev/zero, /dev/urandom и другие.
▪️ Нагрузка на диск и CPU одновременно. Сжимаем случайные данные и пишем во временный файл:
while true; do
dd if=/dev/urandom count=30M bs=1 | bzip2 -9 > /tmp/tempfile
rm -f /tmp/tempfile
done
/dev/urandom → нагрузка на диск bzip2 -9 → нагрузка на CPU count=30M - объем данных -9 - максимальная степень сжатияИзменяйте параметры, чтобы регулировать силу нагрузки. ▪️ Только диск: оценка скорости записи. Быстрое тестирование производительности диска:
sync; dd if=/dev/zero of=/tmp/tempfile bs=1M count=1024; sync
Вывод покажет, с какой скоростью пишутся 1 ГБ данных.
▪️ Только CPU: простейшие варианты.
Нагрузка на одно ядро:
dd if=/dev/zero of=/dev/null
Параллельная нагрузка на несколько ядер:
cpuload() {
dd if=/dev/zero of=/dev/null &
dd if=/dev/zero of=/dev/null &
}
cpuload; read; pkill dd
Либо:
sha1sum /dev/zero
Для нескольких ядер:
seq 4 | xargs -P0 -n1 timeout 10 sha1sum /dev/zero
▪️ Простая нагрузка в пространстве ядра
seq 4 | xargs -P0 -n1 timeout 10 yes > /dev/null
Запускается yes, который генерирует бесконечный вывод. Отлично грузит CPU в режиме ядра.
▪️ Загрузка памяти. Скрипт на Python, резервирующий 1 ГБ RAM:
python3 -c 'a="a"*1024**3; input()'
Можно менять объем, изменяя 1024**3.
#linux #monitoring
🧑💻 NetworkAdmin4 714
⚙️ Настройка DHCP-сервера и резервации IP-адресов
Когда устройств в сети становится больше десятка, раздача IP вручную перестает быть удобной. Решение - поднять свой DHCP-сервер, который будет автоматически раздавать адреса, DNS, шлюз и другие параметры клиентам. Но важно не просто «раздавать все подряд», а уметь закрепить конкретные IP-адреса за нужными устройствами (например, серверами, принтерами, VoIP). Это делается через резервации (DHCP reservations).
🐧 Настройка DHCP-сервера на Linux (например, ISC-DHCP)
1️⃣ Устанавливаем сервер:
sudo apt install isc-dhcp-server
2️⃣ Пример настройки /etc/dhcp/dhcpd.conf:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
option domain-name "home.lan";
}
# Резервация IP по MAC-адресу
host printer01 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.10;
}
Теперь каждый раз принтер с указанным MAC-адресом будет получать именно 192.168.1.10.
🏠 На Windows Server (DHCP Role)
Откройте оснастку DHCP → Перейдите к своему пулу IP-адресов → ПКМ → New Reservation
Укажите имя, IP, MAC-адрес и тип клиента
🌟 Зачем нужны резервации:
Упрощают администрирование (IP-адреса не меняются) Удобны для мониторинга и firewall-правил Избавляют от конфликтов IP Полезны при интеграции с DNS (обратная зона)#network #DHCP 🧑💻 NetworkAdmin
4 714
🔔 Уведомления из консоли прямо на смартфон и десктоп
Иногда хочется, чтобы о важных событиях (бэкапы, алерты мониторинга, запуск задач) приходило пуш-уведомление прямо на смартфон. Без танцев с ботами и сторонними облаками. Есть отличный инструмент -
ntfy.sh.
🌟 Как это работает
Заходим в веб-приложение: https://ntfy.sh/app
Разрешаем уведомления, подписываемся на тему и получаем URL вроде: https://ntfy.sh/Stkclnoid6pLCpqU
Теперь отправим уведомление:
curl -d "Test Message" https://ntfy.sh/Stkclnoid6pLCpqU
Уведомление мгновенно прилетит в веб-интерфейс или в мобильное приложение (Android/iOS).
▪️ Интеграция с системой мониторинга (например, Zabbix). Zabbix умеет отправлять Webhook-запросы. Достаточно в настройках создать новый метод оповещения и использовать такой скрипт:
var params = JSON.parse(value),
msg = params.Message,
url = params.URL,
req = new CurlHttpRequest();
req.AddHeader('Content-Type: text/plain');
req.Post(url, msg);
Указываем в URL свой ntfy-адрес, а в сообщении - макрос {ALERT.MESSAGE}.
▪️ Пример: уведомления о результате бэкапа
rsync -a /mnt/data user@10.10.10.10:/backups/srv01 \
&& curl -H prio:low -d "Backup OK" https://ntfy.sh/Stkclnoid \
|| curl -H prio:high -H tags:warning -d "Backup FAILED" https://ntfy.sh/Stkclnoid
Ntfy - полностью open-source. Вы можете установить сервер у себя (есть готовые пакеты и образы в Docker) и использовать его как закрытую систему уведомлений.
➕ Небольшая пачка плюсов:
Поддержка push-уведомлений на мобильные и десктопы; Безопасность: можно хостить у себя; Простая интеграция через curl; Поддержка приоритетов, тэгов, вложений, подписок; Бесплатно.#monitoring #bash 🧑💻 NetworkAdmin
4 714
🏠 Повышение производительности Windows с помощью Sysinternals Tools
Когда windows начинает тормозить, а «диспетчер задач» мало что говорит - на помощь приходят sysinternals tools. Это набор от microsoft, разработанный ещё Марком Руссиновичем, и он до сих пор незаменим для администраторов.
🔗 Скачать все разом
Ключевые инструменты, которые реально помогают увидеть и устранить узкие места в системе:
▪️ Process Explorer. Улучшенный «Диспетчер задач». Показывает дерево процессов, какие DLL они используют, как именно загружают систему. Можно отследить, кто блокирует файл, кто грузит ЦП, кто жрет RAM.
📍 Альтернатива taskmgr
📍 Ищем паразитные процессы и утечки памяти
📍 Убиваем вирусы, которые не видит антивирус
▪️ Process Monitor (Procmon). Показывает все, что происходит: файловые операции, работа с реестром, сеть. Идеально, когда приложение «виснет», но не пишет ошибок.
📍 Отладка медленных запусков программ
📍 Отслеживание, куда приложение пытается записать
📍 Найти, кто трогает подозрительный файл
▪️ RAMMap. Показывает, куда на самом деле уходит ОЗУ. Иногда в диспетчере — пусто, а система тормозит. RAMMap покажет все по сегментам: кэш, драйверы, standby, modified и т.д.
▪️ Autoruns. Разбираемся с автозагрузкой: служба, планировщик, драйверы, контекстное меню, расширения проводника. Можно безопасно отключить мусор без сторонних твикеров.
📍 Удалить нежелательные утилиты из автозагрузки
📍 Быстро выявить вирус или майнер
▪️ TCPView. Если тормозит сеть - можно посмотреть, какие процессы установили соединения, какие порты открыты, куда идет трафик.
▪️ Disk Usage (du.exe). Утилита в стиле unix du - покажет, какие каталоги занимают больше всего места. Особенно полезно при очистке диска.
du -q -l 1 C:\Users\admin
Все утилиты можно использовать без установки, просто скачать и запускать по мере надобности. А некоторые - использовать прямо из PowerShell, если положить их в %PATH%.
#windows #sysinternals
🧑💻 NetworkAdmin4 714
4 714
📍 Как не перезапустить не тот сервер: утилита molly-guard
Если вы когда-нибудь случайно выполнили reboot или shutdown не на том сервере - вы знаете, насколько это больно. Особенно, когда в консоли много сессий, и все на одинаковых хостах типа prod01, prod02, db01... Чтобы подстраховаться от таких ошибок - есть простейшее, но гениальное решение:
molly-guard. После установки утилита подменяет стандартные команды reboot, shutdown, poweroff. При их запуске появляется запрос на подтверждение имени хоста. Ошиблись терминалом - команда не выполнится.
▪️ Установка:
# apt install molly-guard
▪️ Пример:
# reboot
W: molly-guard: SSH session detected!
Please type in hostname of the machine to reboot:
>
Вводим имя хоста вручную. Только после этого произойдёт перезагрузка.
🌟 Небольшой совет: сразу после установки можно прописать ее в список стандартного ПО для всех серверов. Минимум настроек - максимум пользы.
#linux #mollyguard
🧑💻 NetworkAdmin4 714
🔒 Использование VLAN в домашних и офисных сетях
Многие думают, что VLAN - это только для крупных корпоративных сетей, но на практике он может оказаться крайне полезным и в небольшом офисе или даже дома. Виртуальные локальные сети позволяют разделить трафик по логике, повысить безопасность и упростить администрирование.
VLAN (Virtual LAN) - это способ логического разделения одной физической сети на несколько изолированных друг от друга сегментов. Устройства в разных VLAN не видят друг друга, пока не настроен маршрутизатор.▪️ Сценарии для дома: 📍 Разделение умного дома и основной сети — изоляция IoT-устройств (камеры, лампочки, чайники) от домашней Wi-Fi-сети с личными данными. 📍 Детская VLAN с ограничениями - создаем отдельный сегмент с фильтрацией сайтов и доступом по расписанию. 📍 Гостевая Wi-Fi - изолируем гостей от основной сети. ▪️ Сценарии для офиса: 📍 VLAN для бухгалтерии - выделенный сегмент с доступом только к 1С и серверам документов. 📍 VLAN для VoIP - стабильная телефония без помех от общего трафика. 📍 VLAN для видеонаблюдения - чтобы камеры не грузили общий канал. 📍 Разделение Wi-Fi по ролям (сотрудники, гости, администрация). ▪️ Как настраивать? 1️⃣ На свитче (управляемом): назначаем порты access (одна VLAN) или trunk (несколько VLAN). Пример на Cisco:
interface FastEthernet0/1
switchport mode access
switchport access vlan 10
2️⃣ На роутере: интерфейсы или саб-интерфейсы на разные VLAN.
Настройка маршрутизации между VLAN при необходимости.
3️⃣ На клиенте (Linux):
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.168.10.2/24 dev eth0.10
ip link set up eth0.10
Даже в домашних условиях VLAN дает возможность для наведения порядка, контроля и повышения безопасности в сети.
#vlan #security
🧑💻 NetworkAdmin4 714
🔝 Borg + Borgmatic: удобные и надежные бэкапы в linux
Обычные бэкапы - тема, о которой стоит напоминать регулярно. Сегодня расскажу о проверенной связке инструментов: Borg и его обертке Borgmatic. Это отличное решение, если вам нужен надежный и автоматизированный консольный бэкап без внешних агентов.
▪️ Borg - это утилита для создания резервных копий с поддержкой: дедупликации данных (экономия места), шифрования, работы по SSH без установки агентов, монтирования архива через FUSE для удобного просмотра содержимого.
Установка:
apt install borgbackup
▪️ Borgmatic - это python-обертка над borg, позволяющая описывать бэкап в YAML-конфиге - никаких длинных команд и скриптов. Все в одном месте.
Установка:
pip3 install borgmatic
⭐️ Преимущества использования Borgmatic:
несколько целевых репозиториев для хранения бэкапов; автоматические дампы баз данных (PostgreSQL, MySQL, MongoDB, SQLite); хуки до и после запуска (удобно для остановки сервисов); отправка уведомлений (в том числе по ошибке); централизованное хранение параметров и секретов (через переменные среды).▪️ Пример конфигурации:
location:
source_directories:
- /etc
- /var/www
repositories:
- user@backupserver:repo.borg
retention:
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
hooks:
before_backup:
- systemctl stop nginx
after_backup:
- systemctl start nginx
Если уже используете borg, переход на borgmatic - это чистое удобство. Упрощенная автоматизация, гибкость и читаемость настроек.
#linux #backup
🧑💻 NetworkAdmin4 714
Прокачай свои пайплайны с GitLab CI — секреты для DevOps и разработчиков.
Хотите, чтобы ваши пайплайны в GitLab CI были не только надёжными, но и эффективными? Тогда этот вебинар — для вас!
Мы покажем, как избежать ошибок, ускорить релизы и сделать процесс работы с GitLab CI простым и предсказуемым.
Ошибки, которые вы научитесь избегать:
📲чрезмерная ручная настройка: мы покажем, как сделать пайплайн автономным и стабильным
📲сложные и нечитаемые пайплайны: узнаете, как разделить логику пайплайна для лучшей поддержки и управления
📲непонимание влияния CI/CD на бизнес: мы объясним, как правильный пайплайн ускоряет процесс разработки и способствует росту бизнеса
📅 Дата: 30 июля, 19:00 (МСК) - бесплатно
👉 Записаться на вебинар — https://tglink.io/094b02fbe6d2
Не упустите шанс сделать процесс разработки более предсказуемым и эффективным
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFHRC8Hn
4 714
📂 Проверка и восстановление файловой системы
Поврежденная структура каталогов или битые иноды могут привести к потере данных или проблемам при загрузке. Для таких случаев есть проверенные временем инструменты:
fsck в linux и chkdsk в windows.
🐧 Linux: fsck (file system check). fsck - утилита для проверки и восстановления файловой системы. Работает с различными типами ФС: ext2/3/4, xfs, btrfs и т.д.
▪️ Проверка и автоматическое исправление ошибок:
fsck -y /dev/sda1
▪️ Только проверка (без изменений):
fsck -n /dev/sda1
▪️ Проверка всех файловых систем, указанных в /etc/fstab, кроме смонтированных:
fsck -A
⚠️ Не запускайте fsck на смонтированных разделах - особенно тех, которые используются системой. Лучше делать это с LiveCD или в режиме восстановления.
🏠 Windows: chkdsk. chkdsk - аналогичная утилита в windows. Она проверяет раздел на наличие логических и физических ошибок, может попытаться восстановить поврежденные сектора.
▪️ Проверка и исправление ошибок:
chkdsk C: /F
▪️ Проверка с попыткой восстановления поврежденных секторов:
chkdsk D: /F /R
▪️ Назначение проверки при следующей перезагрузке (если диск системный):
chkntfs /C C:
#fsck #chkdsk
🧑💻 NetworkAdmin4 714
Вебинар: GPU в облаке: как выжать максимум без лишних затрат ⛅️
Как выбрать облачный сервер с GPU, чтобы задачи решались быстро, а счёт не шокировал?
5 августа за один час расскажем и покажем на кейсах:
— Примеры использования GPU: какие задачи решает и сколько можно сэкономить
— В чём разница между видеокартами NVIDIA L4, A16 и L40S;
— Что учесть при запуске ML и нейросетей в облаке;
— Бенчмарки и время обработки на разных моделях.
🔗 Для участия в вебинаре зарегистрируйтесь
4 714
🔗 Коллекция приемов на чистом Bash
Если вы пишете скрипты и хотите свести количество зависимостей к минимуму - загляните в pure-bash-bible. Это подборка трюков и функций, реализующих полезные операции на чистом bash, без использования sed, awk, grep, perl и других внешних утилит. Все работает прямо внутри интерпретатора.
▪️ Пример 1. Преобразование строки в нижний регистр. Из библиотеки берём такую функцию:
lower() {
printf '%s\n' "${1,,}"
}
Создаем скрипт lower.sh:
#!/bin/bash
lower() {
printf '%s\n' "${1,,}"
}
lower "$1"
Запускаем:
$ ./lower.sh HELLO
hello
▪️ Пример 2. Получение имени файла из полного пути
basename() {
local tmp
tmp=${1%"${1##*[!/]}"}
tmp=${tmp##*/}
tmp=${tmp%"${2/"$tmp"}"}
printf '%s\n' "${tmp:-/}"
}
Скрипт basename.sh:
#!/bin/bash
basename() {
local tmp
tmp=${1%"${1##*[!/]}"}
tmp=${tmp##*/}
tmp=${tmp%"${2/"$tmp"}"}
printf '%s\n' "${tmp:-/}"
}
basename "$1"
Запуск:
$ ./basename.sh /var/log/syslog.2.gz
syslog.2.gz
В большинстве систем можно просто вызвать утилиты basename или tr, но в минималистичных окружениях (например, initrd, embedded Linux, Docker) такие функции в bash-стиле особенно ценны.
Библиотека охватывает десятки задач: обработка строк, массивов, файлов, путей, случайные числа, цвета в терминале и т.д.
Сохрани себе 😺
#bash #linux
🧑💻 NetworkAdmin4 714
⚡️Хаос с зависимостями может стать угрозой безопасности вашего проекта. Присоединяйтесь к открытому уроку «Страх и ненависть при работе с зависимостями (SCA)» 29 июля в 20:00 МСК и научитесь контролировать зависимости без уязвимостей.
Вы узнаете:
- Какие зависимости проходят проверки и как это влияет на инфраструктуру.
- Как правильно хранить, обновлять и обогащать список компонентов.
- Методы контроля целостности и версионности зависимостей.
Урок станет отличной подготовкой к курсу «Внедрение и работа в DevSecOps», все участники получат скидку на обучение. Научитесь управлять зависимостями эффективно и безопасно.
👉Записывайтесь на вебинар, получайте скидку и готовьтесь к углубленному изучению DevSecOps с OTUS: https://otus.pw/QokLL/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4 714
🎉 С днем системного администратора! 🎉
Сегодня не будет познавательных постов, но будет не менее важное - поздравление! Сегодня - день тех, кто всегда остается за кулисами, но без кого не работает ничего. Это вы начинающие или уже опытные - волшебники командной строки, мастера uptime и защитники серверов от хаоса.
Именно Вы держите на плаву сети, базы данных, почту, бэкапы, мониторинг, безопасность и еще тысячу вещей, о которых никто не догадывается... пока все не сломается, ну или им не покажется, что все сломалось..
Буду короток: пусть в логах будет чисто, аптайм радует глаз, а пользователи не беспокоят в пятницу вечером. А еще - стабильных обновлений, бесшумных серверов и свободного времени для себя.
За вас, сисадмины! С праздником! 🎆
🧑💻 NetworkAdmin
4 714
🐧Нашли для вас самый крутой блог Администратора Linux
На своëм канале он уже осветил такие темы, как:
— Что такое ядро Linux и зачем оно нужно?
— Как защитить свой Linux от взлома
— Как создать собственный ISO-образ в Linux
— Linux и управление пакетами
— Процессы в Linux и отладка зависаний
👀Подписывайся, чтобы не потерять
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
