Записки администратора: Linux, диски и мониторинг
Небольшой практический блог для тех, кто держит на себе пару-тройку серверов и не хочет
каждый раз лезть в закладки. Здесь — короткие, проверенные рецепты: базовые команды,
разметка дисков и LVM, сборка массивов и настройка мониторинга на Zabbix.
Всё, что ниже, я использую в реальной работе почти каждый день.
Обновлено: 29 августа 2026 · Автор: admin
1. Базовые команды Linux, которые нужны каждый день
Ориентация в системе
Первое, что делаешь на новой машине — понимаешь, где ты и что вокруг:
pwd # текущий каталог
ls -lah # список файлов, включая скрытые, с размерами
cd /var/log # перейти в каталог
whoami; id # кто я и в каких группах
uname -a # ядро и архитектура
uptime # аптайм и средняя нагрузка
Поиск файлов и текста
find /etc -name "*.conf" -type f # найти конфиги
grep -Rni "listen" /etc/nginx/ # рекурсивный поиск строки
grep -c "error" /var/log/syslog # посчитать вхождения
locate zabbix_agentd.conf # быстрый поиск по индексу (updatedb)
Процессы и ресурсы
ps aux --sort=-%mem | head # топ по памяти
top # или htop, если установлен
kill -15 <PID> # мягко завершить процесс
kill -9 <PID> # принудительно
free -h # память
df -h # занятость файловых систем
du -sh /var/* | sort -h # что съедает место
Права и владельцы
chmod 640 /etc/app/secret.conf
chown www-data:www-data -R /var/www/site
umask 027 # безопасная маска для новых файлов
Сеть
ip a # интерфейсы и адреса
ip r # таблица маршрутов
ss -tulpen # открытые сокеты и кто их слушает
curl -I https://example.org
ping -c4 1.1.1.1
systemd — управление службами
systemctl status nginx
systemctl restart zabbix-agent2
systemctl enable --now docker
journalctl -u nginx -f # живой лог службы
journalctl -p err -b # ошибки текущей загрузки
💡 Совет: journalctl --since "1 hour ago" -u <служба> экономит массу времени при разборе инцидента.
2. Диски, LVM и RAID-массивы
Смотрим, что за диски у нас есть
lsblk -f # дерево блочных устройств с ФС и метками
fdisk -l # список дисков и разделов
blkid # UUID и типы файловых систем
smartctl -a /dev/sda # здоровье диска (пакет smartmontools)
Разметка и файловая система
# Разметка GPT новым диском
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary ext4 0% 100%
# Файловая система и монтирование
mkfs.ext4 /dev/sdb1
mkdir -p /data
mount /dev/sdb1 /data
# Постоянное монтирование через UUID
blkid /dev/sdb1
echo 'UUID=xxxx-xxxx /data ext4 defaults,noatime 0 2' >> /etc/fstab
mount -a
LVM: гибкое управление объёмом
LVM спасает, когда место кончилось, а переустанавливать сервер нельзя. Три уровня: физический том (PV) → группа томов (VG) → логический том (LV).
# 1. Готовим физические тома
pvcreate /dev/sdb /dev/sdc
pvs # список PV
# 2. Собираем группу томов
vgcreate vg_data /dev/sdb /dev/sdc
vgs
# 3. Нарезаем логический том
lvcreate -L 200G -n lv_files vg_data
mkfs.xfs /dev/vg_data/lv_files
mount /dev/vg_data/lv_files /srv/files
Главная сила LVM — расширение «на лету»:
# Добавили новый диск в группу
pvcreate /dev/sdd
vgextend vg_data /dev/sdd
# Расширяем том и файловую систему
lvextend -L +100G /dev/vg_data/lv_files
xfs_growfs /srv/files # для ext4: resize2fs /dev/vg_data/lv_files
Программный RAID (mdadm)
Когда нужен отказоустойчивый массив без аппаратного контроллера:
# RAID1 (зеркало) из двух дисков
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# RAID10 из четырёх дисков
mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sd{b,c,d,e}
# Состояние массива
cat /proc/mdstat
mdadm --detail /dev/md0
# Сохранить конфигурацию, чтобы массив собрался после ребута
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u
💡 Практика: RAID поверх — mdadm, а сверху уже LVM. Получаете и отказоустойчивость, и гибкость нарезки томов.
3. Мониторинг инфраструктуры на Zabbix
Zabbix закрывает вопрос «а что вообще происходит с серверами» — метрики, графики, триггеры и оповещения. Ниже — минимальный путь от нуля до работающего агента.
Установка агента (Zabbix Agent 2)
# Подключаем репозиторий Zabbix (пример для Debian 12)
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
dpkg -i zabbix-release_6.4-1+debian12_all.deb
apt update
apt install -y zabbix-agent2
Настройка агента
# /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.5 # адрес сервера Zabbix (пассивные проверки)
ServerActive=10.0.0.5 # для активных проверок
Hostname=web-01 # уникальное имя хоста
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
Проверка связи и метрик
# С сервера Zabbix проверяем доступность элемента данных
zabbix_get -s 10.0.0.10 -k system.cpu.load[all,avg1]
zabbix_get -s 10.0.0.10 -k vfs.fs.size[/,pfree]
zabbix_get -s 10.0.0.10 -k agent.ping
Полезные ключи элементов данных
| Ключ | Что показывает |
system.cpu.util | Утилизация CPU в % |
vm.memory.size[available] | Доступная память |
vfs.fs.size[/,pfree] | Свободное место на / в % |
net.if.in[eth0] | Входящий трафик интерфейса |
proc.num[nginx] | Число процессов nginx |
Триггер: заканчивается место на диске
{web-01:vfs.fs.size[/,pfree].last()}<10
Триггер сработает, когда свободного места на корневой ФС станет меньше 10%. Дальше — действие: письмо, Telegram, webhook.
💡 Совет: не плодите триггеры вручную — используйте шаблоны (Templates) и низкоуровневое обнаружение (LLD) для дисков и сетевых интерфейсов.
Комментарии