Linux Skill - Освой Linux c нуля до DevOps – Telegram
Linux Skill - Освой Linux c нуля до DevOps
11.2K subscribers
55 photos
103 videos
483 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
Вопрос из теста Linux Essentials Certification: Which of the following software packages is an email server? / Какой из следующих программных пакетов является почтовым сервером?
Anonymous Quiz
10%
Apache
4%
GIMP
30%
Thunderbird
55%
Postfix
1%
MySQL
👍9👎1
🔥 SSH забивает вывод? Вот как отладить сеть через tcpdump

Привет, сетевой детектив!

Знакомо? Запускаешь tcpdump для отладки, а SSH-трафик забивает весь экран. Сейчас покажу мою шпаргалку — только те команды, которые реально использую. Без воды, только практика.

📌 С чего начать:

Список интерфейсов:
# Посмотреть доступные интерфейсы
tcpdump -D


Базовый перехват:
# Все интерфейсы без резолва имён (-nn это важно!)
tcpdump -nn -i any

# Конкретный интерфейс
tcpdump -nn -i ens3


🔧 Главный лайфхак — исключаем SSH:
# SSH забивает вывод? Исключаем порт 22
tcpdump -nn -i any port not 22


📡 Фильтруем по адресам:
# Трафик к конкретному адресу
tcpdump -nn dst 8.8.8.8

# К нескольким адресам
tcpdump -nn dst 8.8.8.8 or dst 8.8.4.4

# Комбо: адрес + порт
tcpdump -nn dst 8.8.8.8 and port 53


🎯 Работа с протоколами:
# Только ARP
tcpdump arp -nn -i any

# Всё, кроме ARP
tcpdump not arp -nn -i any

# Исключаем несколько протоколов
tcpdump not arp and not icmp -nn -i any


💡 Реальный пример из жизни:
Отладка SIP-трафика через VPN:
tcpdump -nn -i tun4 src 10.1.4.23 and dst 10.1.3.205 and port 5060


🚀 Про-совет:
Большой поток? Сохраняй в файл:
tcpdump -nn -i any > ~/tcpdump.txt


Что искать в выводе:
IP 10.8.2.2.13083 > 10.8.2.3.8118

Читается: IP источник.порт > получатель.порт

Вот и всё! Этих команд хватает для 90% задач. tcpdump выглядит страшно, но на деле нужно только видеть, откуда и куда идут пакеты.
____________________

Дополнительный материал:
🧠 - Linux Systemd: Искусство мониторинга служб
🧠 - Linux Systemd: Мастер-класс по управлению службами
🧠 - Linux Systemd: Как стать магистром служб


#Linux_Mastery #network #tcpdump #Linux #DevOps #networking #debug
👍22👎1
This media is not supported in your browser
VIEW IN TELEGRAM
💥 Docker образ весит гигабайт? Уменьшаем в 100 раз!

Эй, борец с дисковым пространством!

Твои Docker образы раздулись до неприличных размеров? Автор показывает, как с помощью multistage building сжать образ с сотен мегабайт до 8MB!

📹 План оптимизации (таймкоды):

00:00 — Проблема больших образов
00:56 — Что такое multistage building
01:48 — Копируем только нужное
02:53 — Alpine Linux — секретное оружие
03:13 — Собираем и тестируем
03:43 — Результат: 8MB вместо гигабайта!
04:38 — Требования и итоги

💡 Почему работает:
- Этап 1 — компиляция с полным SDK
- Этап 2 — только бинарник в Alpine
- Весь компилятор остаётся в промежуточном слое
- Финальный образ содержит только необходимое

🚀 Результат:
- Было: образ с компилятором, библиотеками, исходниками
- Стало: Alpine + один бинарник = 8MB

📝 Требования:
Docker версии 17.05 и выше

Теперь твои образы летают, а registry не плачет!

🌐 Источник: YouTube
____________________

Дополнительный материал:
🧠 - Увеличение времени кэширования пароля в sudo: Пошаговое руководство
🧠 - Настройка индивидуальных конфигураций для пользователей sudo: Пошаговое руководство
🧠 - Защитите свои данные в Linux: Основы разрешений файлов

#Linux_youtube #docker #optimization #multistage #alpine #devops #video
👍10🔥1
🔥 Зависло 100 вкладок в Chrome? Убей все одной командой

Эй, терминатор процессов!

Знакомо? Открыл 100 вкладок Chrome, система зависла, а killall не установлен. Держи скрипт, который работает везде!

🔧 kill-byname.sh:
#!/bin/bash
# Убийца процессов по имени

E_BADARGS=66

if test -z "$1"; then
echo "Usage: $(basename $0) имя_процесса"
exit $E_BADARGS
fi

PROCESS_NAME="$1"

# Магическая строка
ps ax | grep "$PROCESS_NAME" | awk '{print $1}' | xargs -i kill {} 2>/dev/null

exit $?


💡 Как работает магия:
- ps ax — список всех процессов
- grep — фильтруем по имени
- awk '{print $1}' — извлекаем PID
- xargs -i kill {} — убиваем каждый процесс

🚀 Использование:
# Убить все Chrome
./kill-byname.sh chrome

# Закрыть все терминалы
./kill-byname.sh xterm

# Остановить Firefox
./kill-byname.sh firefox


⚠️ ВНИМАНИЕ:
Скрипт опасен! Особенно под root. Можешь случайно убить системные процессы.

💡 Альтернативы:
# Если есть killall
killall chrome

# Через pkill
pkill -f chrome

# Через pidof
kill $(pidof chrome)


Теперь ты можешь массово управлять процессами даже на минимальной системе!
____________________

Дополнительный материал:
🧠 - Революция в управлении дисковым пространством: Встречайте topdiskconsumer
🧠 - Все о группах в Linux: Почему это важно для каждого пользователя?
🧠 - Энциклопедия Docker: Незаменимые инструменты для системных администраторов

#bash_guide #bash #process #kill #Linux #sysadmin #noscript
👍9
🔥 20 Docker-команд = 90% всех задач. Проверено!

Эй, контейнерный кудесник!

Накопил за годы работы идеальный набор Docker-команд. Никакой воды — только то, что использую каждый день. Сохраняй и забудь про поиски в документации!

🚀 Быстрый старт:
# Установка одной строкой
curl -o - https://get.docker.com | bash -


📦 Управление контейнерами:

Запуск с автостартом:
docker run -d -p 80:80 --restart always --name nginx-proxy nginx


Просмотр контейнеров:
docker ps          # запущенные
docker ps -a # все


Удаление:
docker rm nginx-proxy      # остановленный
docker rm -f nginx-proxy # принудительно


Массовые операции:
# Остановить все
docker stop $(docker ps -a -q)
# Удалить все
docker rm $(docker ps -a -q)


🖼️ Работа с образами:
docker images                      # список
docker rmi nginx # удалить один
docker rmi $(docker images -a -q) # удалить все


🔍 Отладка и мониторинг:

Войти в контейнер:
docker exec -it nginx-proxy bash


Логи:
docker logs nginx-proxy         # все логи
docker logs -n 100 nginx-proxy # последние 100 строк
docker logs -f nginx-proxy # следить в реальном времени


Мониторинг ресурсов:
docker stats nginx-proxy
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"


Процессы в контейнере:
docker top nginx-proxy


🛠️ Продвинутые команды:

Детальная информация:
docker inspect nginx-proxy
docker inspect -f '{{ .NetworkSettings.Networks.bridge.IPAddress }}' nginx-proxy
docker inspect --format '{{json .Mounts}}' grafana | jq .


Управление местом:
docker system df      # занятое место
docker system prune # очистка


Копирование файлов:
# Из контейнера
docker cp nginx-proxy:/etc/nginx/nginx.conf ~/nginx
# В контейнер
docker cp ~/nginx/nginx.conf nginx-proxy:/etc/nginx


Экспорт контейнера:
docker export nginx-proxy -o ~/nginx-proxy.tar.gz


📚 Бонус — полезные темы:
🔧 Инструменты: Portainer, ctop, cdebug
🛡️ Безопасность: Trivy, Dockle, CIS рекомендации
📊 Мониторинг: Zabbix, Prometheus
🗃️ Бэкапы: docker-volume-backup

Теперь у тебя есть всё для работы с Docker. Эти команды покрывают 90% повседневных задач!
____________________

Дополнительный материал:
🧠 - Открытый мир Linux: Сокровищница инструментов для системных администраторов
🧠 - Стартуйте в IT с Бесплатным курсом по Linux: от Нуля до DevOps
🧠 - От /etc/passwd к централизованному управлению: Как Linux трансформировал учетные записи

#Linux_Mastery #docker #DevOps #containers #Linux #подборка #automation
👍12
Вопрос из теста Linux Essentials Certification: Which of the following statements may be used to access the second command line argument to a noscript? / Какое из следующих выражений может быть использовано для доступа ко второму аргументу командной строки
Anonymous Quiz
26%
'$2'
6%
"$1"
38%
"$2"
15%
$1
15%
"ARG$2"
🔥 Забудь про $1 $2 $3: умные опции через getopts

Привет, архитектор CLI!

Надоело парсить аргументы через позиционные параметры? Делаем профессиональные флаги как в настоящих утилитах!

🔧 Базовый шаблон с getopts:
#!/bin/bash

# Проверка аргументов
if [ $# -eq 0 ]; then
echo "Usage: $(basename $0) -mnopqrs"
exit 1
fi

# Парсинг опций
while getopts ":mnopq:rs" Option; do
case $Option in
m ) echo "Опция -m активна";;
n|o ) echo "Опция -$Option активна";;
p ) echo "Опция -p активна";;
q ) echo "Опция -q с аргументом: $OPTARG";;
r|s ) echo "Опция -$Option";;
* ) echo "Неверная опция";;
esac
done

# Сдвиг к не-опциям
shift $(($OPTIND - 1))


💡 Как работает:
- :mnopq:rs — строка опций (: после q = требует аргумент)
- $OPTARG — значение для опции с аргументом
- $OPTIND — индекс следующего аргумента

🚀 Примеры вызова:
./noscript.sh -m -n
./noscript.sh -mn # можно слитно!
./noscript.sh -q "значение"
./noscript.sh -mnop -q test


📌 Бонус — импорт функций:
# Загружаем общие функции
source /path/to/common_functions.sh
# или
. ./config.sh


Теперь твои скрипты выглядят как настоящие Linux-утилиты!
____________________

Дополнительный материал:
🧠 - Командный центр Linux: Ваше руководство по базовым консольным программам
🧠 - Защитный барьер Linux: Как система обеспечивает безопасность пользователей и групп
🧠 - Мастер-класс по консольным программам Linux: Разбираемся с UID и GID

#bash_guide #bash #getopts #cli #noscripting #Linux #arguments
👍13
Media is too big
VIEW IN TELEGRAM
🔥 Сервер взломали? journalctl покажет следы

Привет, страж безопасности!

Константин Герасименко показывает, как с помощью journalctl найти следы взлома, отследить подозрительную активность и настроить мониторинг в реальном времени. Без логов — нет безопасности!

📹 Таймкоды:

00:25 — Зачем читать системные журналы
05:17 — Как логи помогают выявить взлом
14:00 — journalctl vs старый syslog
21:28 — Базовые команды journalctl
26:52 — Анализ загрузок системы
32:29 — Критически важно: время на сервере
41:48 — Логи конкретных служб
54:25 — Отслеживаем входы в систему
01:02:49 — Фильтрация по приоритету
01:06:25 — Мониторинг в реальном времени
01:13:01 — Управление размером логов

💡 Ключевые моменты:
- Время сервера в UTC — признак безопасности
- Корреляция событий выявляет атаки
- JSON-формат для автоматизации
- Ротация логов экономит место

🌐 Источник: YouTube - Cisco Ne Slabo / SEDICOMM TV
____________________

Дополнительный материал:
🧠 - История, которая изменила мир Linux: Путешествие файловой системы ext2
🧠 - Linux Mastery: Настройка разрешений файлов с восьмеричным представлением
🧠 - Ваш путеводитель по команде arch в Linux: Открытие архитектуры вашей системы

#Linux_youtube #journalctl #logs #security #Linux #monitoring #video
👍13
💾 Невидимые файлы съели весь диск? Вот решение

Привет, спасатель серверов!

Знакомо: df кричит "100% занято", а найти виновника не можешь? Держи шпаргалку для экстренных ситуаций — все команды проверены в боевых условиях.

Базовая диагностика

Смотрим общую картину:
# df -h


Ищем самые прожорливые директории:
# du -h -d 1 / | sort -hr
# du -hs /* | sort -hr

# Ограничиваем вывод топ-10
# du -h -d 1 / | sort -hr | head -10

# Топ-20 самых больших директорий
# du -hcx --max-depth=6 / | sort -rh | head -n 20

# Топ-20 самых больших файлов
# find / -mount -ignore_readdir_race -type f -exec du -h "{}" + 2>&1 \
> | sort -rh | head -n 20


Проверка inodes

Иногда место есть, но закончились inodes:
# df -ih


Охота на файлы-призраки

Ситуация: du показывает мало занятого места, но df говорит "диск полный". Причина — удалённые файлы, которые держит процесс:

# lsof | grep '(deleted)'
# lsof +L1


Нашли большие deleted-файлы? Перезапусти службу или убей процесс через kill -9 <pid>.

Ловушка с точками монтирования

Хитрый случай: скрипт должен был писать в смонтированный диск /mnt/backup, но диск не подключился. Файлы записались в локальную систему и теперь скрыты под точкой монтирования!

Как проверить:
1. Отмонтируй диск временно
2. Загляни в директорию
3. Удали мусор
4. Примонтируй обратно

Профилактика: всегда проверяй успешность монтирования перед записью данных в скриптах.

💡 Итог: 90% проблем с местом решаются этими командами. Сохрани и используй при первых признаках "disk full".

____________________

Дополнительный материал:
🧠 - Осваиваем RAID Массивы в Linux: Путь к Надежности и Производительности
🧠 - История OpenSUSE: От Зеленого Ящерика к Глобальному Сообществу
🧠 - Разблокируем секреты Linux: Специальные разрешения файлов

#Linux_Mastery #bash #terminal #linux #sysadmin #troubleshooting #storage
🔥12👍8
🚀 Забудь про SCP! Вот как передавать файлы в 10 раз быстрее

Привет, повелитель скорости!

Устал ждать, пока SCP докачает твои гигабайты? NFS обгоняет SSH, SMB и HTTP по скорости передачи. Вот готовая шпаргалка — копипасть и используй.

Настройка NFS сервера

Создаём директорию для шары:
# mkdir /mnt/nfs
# chown nobody:nogroup /mnt/nfs


Ставим NFS сервер:
# apt install nfs-kernel-server


Настраиваем экспорт в /etc/exports:
# Для одного IP
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)

# Для подсети
/mnt/nfs 10.20.1.56/24(rw,all_squash,no_subtree_check,crossmnt)

# Для нескольких IP (каждый в своей строке)
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
/mnt/nfs 10.20.1.52(rw,all_squash,no_subtree_check,crossmnt)


Перезапускаем и проверяем:
# systemctl restart nfs-server
# systemctl status nfs-server


💡 Важно: открой TCP порт 2049 в файрволе!

Настройка клиента

Ставим клиентский пакет:
# apt install nfs-common


Проверяем доступность сервера:
# showmount -e 10.20.1.36
Export list for 10.20.1.36:
/mnt/nfs 10.20.1.56


Монтируем шару:
# mkdir /mnt/nfs
# mount 10.20.1.36:/mnt/nfs /mnt/nfs


Проверяем результат:
# df -h | grep nfs
10.20.1.36:/mnt/nfs 48G 3.2G 43G 7% /mnt/nfs

# Смотрим версию протокола (должна быть v4)
# mount -t nfs4


Тестируем запись:
# echo "test" > /mnt/nfs/testfile


Для постоянного монтирования добавь в /etc/fstab:
10.20.1.36:/mnt/nfs /mnt/nfs nfs4 defaults 0 0


Результат: максимальная скорость передачи файлов между серверами. Особенно выручает для временных задач — поднял, скопировал, удалил.

____________________

Дополнительный материал:
🧠 - Путешествие во Времени: От ext до ext4 - Эволюция Файловых Систем Linux
🧠 - Linux Mastery: Организация файлов и каталогов
🧠 - Как пентестеры взломали ИТ-компанию через сайт уролога и Роскомнадзор

#Linux_Mastery #fileserver #nfs #linux #sysadmin #devops #performance
👍12
Media is too big
VIEW IN TELEGRAM
❄️ Серверы-снежинки убивают бизнес. Ansible спасёт!

Привет, борец с хаосом!

У тебя есть серверы, которые не перезагружались 2 года? Боишься их трогать? Это "снежинки" — уникальные, хрупкие, невоспроизводимые. Автор показывает, как Ansible превращает хаос в код!

📹 Таймкоды:
00:00 — Что такое DevOps и зачем он нужен
00:23 — Проблема серверов-снежинок
01:20 — Infrastructure as Code: основная идея
02:15 — Обзор инструментов (Ansible, Terraform, Puppet)
02:51 — Что умеет Ansible
04:55 — Почему Ansible: без агентов, только SSH
06:56 — Структура Ansible-проекта
08:14 — Inventory: список серверов
10:59 — Переменные и их приоритеты
11:46 — Tasks и handlers
13:44 — Шаблоны с Jinja2
15:50 — Playbooks и roles
16:34 — Запуск и результат

💡 Почему Ansible побеждает:
- Не нужны агенты на серверах
- Работает через SSH
- Конфиги в YAML (читаемо!)
- Версионирование через Git
- Идемпотентность

🚀 Результат:
Вместо уникальных "снежинок" — воспроизводимая инфраструктура. Упал сервер? Запусти playbook — всё восстановится!

🌐 Источник: YouTube - Слёрм
____________________

Дополнительный материал:
🧠 - История зеленого великана: Как Linux Mint стал символом простоты и элегантности
🧠 - Защита данных в Linux: Как обойти ограничения файловой системы
🧠 - Все, что вам нужно знать о команде ar в Linux

#Linux_youtube #ansible #devops #automation #infrastructure #video #IaC
👍6🔥3
Вопрос из теста Linux Essentials Certification: Identify the proper device for the third partition, on the second hard disk, on the first IDE controller on a PC system. / Определите правильное устройство для третьего раздела на втором жестком диске первог
Anonymous Quiz
5%
dev/hdc1a3
12%
/dev/hd1b3
31%
/dev/hdc1d2p3
48%
/dev/hdb3
4%
dev/hdc1b3
🎯 Почему твой Nmap работает медленно: трюки ускорения

Эй, сканер сетей!

Устал ждать, пока Nmap просканирует сеть? Я тоже постоянно забываю нужные ключи и лезу в заметки. Собрал рабочую шпаргалку с трюками ускорения — сохраняй и используй.

Базовое сканирование

Быстрый скан портов до 1024:
nmap 192.168.1.1
nmap 192.168.1.1 192.168.2.1
nmap 192.168.1.1-254
nmap 192.168.1.0/24


Полное сканирование всех 65535 портов:
nmap 192.168.1.1 -p-


Скан хоста, игнорирующего ping:
nmap 192.168.1.1 -Pn


Техники сканирования

nmap 192.168.1.1 -sS  # TCP SYN (по умолчанию)
nmap 192.168.1.1 -sT # TCP connect
nmap 192.168.1.1 -sU # UDP сканирование

# Полное TCP+UDP (очень долго!)
nmap 192.168.1.1 -sS -sU -p-


Поиск живых хостов

Обнаружение без сканирования портов:
nmap 192.168.1.1/24 -sn


ARP-сканирование в локалке (в разы быстрее!):
nmap 192.168.1.1/24 -PR


Просто список IP без проверки:
nmap 192.168.1.1-15 -sL


Определение сервисов

Быстрая проверка версий (1 порт = 1 строка):
nmap 192.168.1.1 -sV


Полный анализ (ОС, версии, скрипты, traceroute):
nmap 192.168.1.1 -A


🚀 Трюк для ускорения в 10 раз

Вместо долгого полного сканирования — сначала найди открытые порты, потом анализируй только их:

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1


Использование:
./nmap.sh 192.168.1.1


Скорость сканирования

-T0  # paranoid (паранойдный)
-T1 # sneaky (хитрый)
-T2 # polite (вежливый)
-T3 # normal (обычный, по умолчанию)
-T4 # aggressive (для локалки)
-T5 # insane (безумный)


💡 Совет: в локальной сети смело используй -T4, для внешних хостов — -T3 или ниже.

Итог: правильные ключи = экономия времени. Особенно скрипт с двухэтапным сканированием — реально ускоряет работу в разы.
____________________

Дополнительный материал:
🧠 - Путешествие по Виртуальным Интерфейсам и Канальному Уровню в Linux: От Туннелей до Мостов
🧠 - История AppArmor: Как Linux Стал Крепостью Безопасности
🧠 - Linux Mastery: Быстрое создание пакетов файлов для тестирования

#Linux_Mastery #nmap #security #pentesting #networking #linux
👍15🔥3
Media is too big
VIEW IN TELEGRAM
🔥 Kubernetes обязателен для DevOps в 2025. Вот почему

Привет, будущий мастер оркестрации!

Kubernetes стал стандартом для средних и крупных компаний. Без него — никуда. Автор за 100 минут проводит от основ до запуска первого приложения в кластере. Практика на реальном проекте!

📹 Таймкоды:
00:00 — Почему K8s стал стандартом
01:10 — Контейнеризация vs традиционный деплой
03:50 — K8s vs Docker Swarm: кто победил
07:59 — Кому подходит курс
09:40 — Проект: сокращатель ссылок
15:03 — Настройка окружения
18:42 — Установка Kubernetes
23:10 — macOS: Homebrew + Minikube
29:39 — Linux: пошаговая установка
33:23 — Windows: Hyper-V setup
43:07 — Pod — основа всего
45:02 — Services: постоянный доступ
55:07 — Императивный vs Декларативный
01:00:52 — YAML: основы синтаксиса
01:12:08 — Первая конфигурация Pod
01:29:06 — NodePort Service
01:38:50 — Запуск и проверка
01:44:20 — Жизненный цикл Pod

🚀 Результат:
За 1.5 часа запустишь приложение в Kubernetes, поймёшь основные концепции и будешь готов к работе с K8s в продакшене.


🌐 Источник: YouTube - PurpleSchool | Anton Larichev
____________________

Дополнительный материал:
🧠 - SELinux: От Секретного Проекта до Корпоративного Стража
🧠 - Linux Mastery: Настройка разрешений каталогов с помощью chmod
🧠 - Разгадываем тайны архитектуры: Что такое i686 в Ubuntu

#Linux_youtube #kubernetes #k8s #docker #devops #video #yaml
👍11
📊 Мониторинг без боли: Prometheus + Grafana одной командой

Привет, строитель мониторинга!

Prometheus проще Zabbix'а в разы — никаких агентов, баз данных, сложных конфигов. 10 минут и у тебя работающий мониторинг с красивыми графиками. Держи готовую шпаргалку.

Установка Docker

# curl https://get.docker.com | bash -


Подготовка файлов

# mkdir ~/prometheus && cd ~/prometheus
# touch docker-compose.yml


Docker-compose конфиг

Создай файл docker-compose.yml:
version: '3.9'
networks:
monitoring:
driver: bridge
volumes:
prometheus_data: {}

services:

prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
container_name: prometheus
hostname: prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
expose:
- 9090
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring

node-exporter:
image: prom/node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
container_name: exporter
hostname: exporter
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
expose:
- 9100
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring

grafana:
image: grafana/grafana
user: root
depends_on:
- prometheus
ports:
- 3000:3000
volumes:
- ./grafana:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
container_name: grafana
hostname: grafana
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring


Конфиг Prometheus

Создай файл prometheus.yml:
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
scrape_timeout: 5s
static_configs:
- targets: ['localhost:9090']

- job_name: 'node-local'
scrape_interval: 5s
static_configs:
- targets: ['node-exporter:9100']


Запуск всего стека

# docker-compose up -d


Настройка Grafana

1. Открой http://твой-ip:3000
2. Логин: admin / admin
3. Connections → Data sources → Add Prometheus
4. URL: http://prometheus:9090
5. Dashboards → New → Import
6. Введи ID: 1860 (готовый дашборд для Node Exporter)

Добавление удалённого сервера

На удалённом сервере запусти exporter:
# docker run -d --net="host" --pid="host" -v "/:/host:ro,rslave" \
prom/node-exporter:latest --path.rootfs=/host

# Проверка
# ss -tulnp | grep 9100


Добавь в prometheus.yml:
 - job_name: 'node-remote'
scrape_interval: 5s
static_configs:
- targets: ['10.20.1.56:9100']


Перезапусти:
# docker compose restart


💡 Результат: полноценный мониторинг с графиками CPU, RAM, диска, сети. Всё за 10 минут без танцев с бубном!

❗️ Важно: в проде закрой порты файрволом — оставь доступ только нужным IP.
____________________

Дополнительный материал:
🧠 - Мастерство Управления Правами в Linux: От Новичка до Профи
🧠 - Максимизируйте безопасность с минимальными разрешениями в Linux
🧠 - От Slackware до Pacman: Путешествие Систем Управления Пакетами в Linux

#Linux_Mastery #мониторинг #prometheus #devops #grafana #docker
👍10🔥3
🐳 Почему ты не можешь просто скопировать файл из Docker образа

Привет, укротитель контейнеров!

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

Извлекаем файл из образа

Скачиваем образ и создаём контейнер БЕЗ запуска:
# docker pull nginx:latest
# docker create --name nginx nginx:latest


Теперь копируем нужный файл:
# docker cp nginx:/docker-entrypoint.d/30-tune-worker-processes.sh ~/


Или выгружаем весь образ:
# docker export nginx -o ~/nginx-docker.tar.gz


Dive — рентген для образов

Утилита показывает слои образа и что в каждом слое изменилось. Запускаем прямо в Docker:

# docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock \
wagoodman/dive nginx:latest


Создаём alias для удобства:
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"


Теперь просто:
# dive nginx:latest


Проверка раздутости образа

Вместо docker build используй dive build — получишь анализ эффективности сборки:
# dive build -t myapp:latest .


Dive покажет:
- Размер каждого слоя
- Что добавилось/удалилось
- Efficiency Score образа
- Wasted Space (лишнее место)

💡 Фишка: встрой проверку в CI/CD — автоматически отлавливай неоптимальные образы.

Итог: Docker создан для изоляции, поэтому прямого доступа к файлам нет. Но способы есть — используй их правильно.
____________________

Дополнительный материал:
🧠 - Linux Essentials: Понимание относительных и абсолютных путей к файлам
🧠 - Открытие Rancher: Путешествие от Стартапа до Лидера в Контейнеризации
🧠 - Осваиваем Docker: Искусство Сборки Образов и Управления Сетью

#Linux_Mastery #docker #devops #containers #optimization
👍15
Media is too big
VIEW IN TELEGRAM
🚨 Всем раздал kubectl? Как не потерять кластер

Привет, хранитель кластера!

Дал разработчикам полный доступ к K8s и теперь не спишь ночами? Александр Кузьмин из КРОК показывает, как правильно настроить RBAC и интегрировать Kubernetes с Active Directory. От теории до практики!

📹 Таймкоды:
00:20 — Почему важно разграничивать доступ
02:49 — Опасности полного доступа
04:46 — RBAC: основы и принципы
07:58 — Создание ролей и привязок
11:31 — Способы аутентификации
12:12 — Клиентские сертификаты
13:40 — Автоматизация через Ansible
15:41 — LDAP-интеграция
16:22 — Dex: простое решение
18:28 — Как работает аутентификация
24:02 — Keycloak: enterprise-вариант
28:19 — Сравнение подходов
31:40 — Работа с несколькими LDAP

🚀 Итог:
Правильная настройка доступа = спокойный сон админа!


🌐 Источник: YouTube - КРОК
____________________

Дополнительный материал:
🧠 - От RPM до Snap: Путешествие через эволюцию систем управления пакетами
🧠 - Linux Deep Dive: Разбираемся с UID и группами
🧠 - Как использовать команду basename для упрощения ваших скриптов Bash

#Linux_youtube #kubernetes #rbac #ldap #security #authentication #vide
👍7
Вопрос из теста Linux Essentials Certification: Which of the following commands can be used to view a file and do search operations within it while viewing the contents? / Какая из следующих команд может быть использована для просмотра файла и выполнения
Anonymous Quiz
14%
see
41%
less
29%
grep
4%
report
11%
find
👍10👎1