Системный Администратор (Сисадмин)
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов. По всем вопросам @evgenycarter РКН clck.ru/3KoGJ3
显示更多📈 Telegram 频道 Системный Администратор (Сисадмин) 的分析概览
频道 Системный Администратор (Сисадмин) (@sysadminof) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 14 169 名订阅者,在 技术与应用 类别中位列第 9 114,并在 俄罗斯 地区排名第 47 099 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 14 169 名订阅者。
根据 11 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 30,过去 24 小时变化为 -1,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 10.21%。内容发布后 24 小时内通常能获得 5.60% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 447 次浏览,首日通常累积 794 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 8。
- 主题关注点: 内容集中在 zfspool, диск, linux, пул, zpool 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter
РКН clck.ru/3KoGJ3”
凭借高频更新(最新数据采集于 12 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
sudo dnf install stress
Установим stress на Ubuntu и Debian
sudo apt install stress
Синтаксис stress
stress [OPTION [ARG]]
Увеличить нагрузку на процессор
Опция -c или –cpu использует заданное количество воркеров на функции sqrt(), чтобы увеличить нагрузку на процессор и заставить его работать интенсивнее.
stress -c N или stress --cpu N
Следующая команда будет непрерывно загружать 4 ядра процессора
stress --cpu 4
Задаем тайм-аут для стресса
Чтобы задать работу на определенное время, вы можете использовать опцию -t или –timeout.
Следующие команды будут нагружать четыре ядра процессора только в течение 10 с.
stress -c 4 -t 10 или stress --cpu 4 --timeout 10
Увеличение нагрузки на память
Опция -v или --vm позволяет вам нагрузить виртуальную память.
[simterm] $ stress -v N
Увеличение нагрузки ввода-вывода на диск
Вы можете увеличить нагрузку ввода-вывода с помощью опции -i или –io.
stress -i N или stress --io N
Создаем нагрузка на систему с помощью двух процессов, связанных с вводом-выводом.
# stress --io 100
Мы проверим загрузку IO диска с помощью команды iostat.
У меня на сервере доступны диски /dev/vda и /dev/vdb, вы можете проверить активный диск с помощью lsblk или fdisk или любой другой команды.
Если вы выполните эту команду без каких-либо аргументов, то она покажет дисковые IO для всех доступных дисков.
iostat -d /dev/vda -d /dev/vdb 1
Увеличение нагрузки на диск
Опция -d или –hdd используется для создания нагрузки на диск.
stress -d N или stress --hdd N
Для увеличения нагрузки на диск мы используем следующую команду
stress --hdd 100
Посмотрим пропускную способность диска с помощью команды vmstat
vmstat 1 100
Увеличение нагрузки на несколько системных ресурсов (ЦП, память, ввод/вывод)
Команде stress можно задать несколько нагрузок.
В следующем примере используется 4 ядра ЦП, 2 виртуальных памяти и 1 процесс ввода-вывода для нагрузки на систему в течение 20 секунд.
stress --cpu 4 --vm 2 --io 1 -t 20
📲 Мы в MAX
👉 @sysadminofsystemctl start name.service – запуск сервиса.
systemctl stop name.service — остановка сервиса
systemctl restart name.service — перезапуск сервиса
systemctl try-restart name.service — перезапуск сервиса только, если он запущен
systemctl reload name.service — перезагрузка конфигурации сервиса
systemctl status name.service — проверка, запущен ли сервис с детальным выводом состояния сервиса
systemctl is-active name.service — проверка, запущен ли сервис с простым ответом: active или inactive
systemctl list-units --type service --all – отображение статуса всех сервисов
systemctl enable name.service – активирует сервис (позволяет стартовать во время запуска системы)
systemctl disable name.service – деактивирует сервис
systemctl reenable name.service – деактивирует сервис и сразу активирует его
systemctl is–enabled name.service – проверяет, активирован ли сервис
systemctl list-unit-files --type service – отображает все сервисы и проверяет, какие из них активированы
systemctl mask name.service – заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd
systemctl unmask name.service – возвращает файл сервиса, делая юнит доступным для systemd
📲 Мы в MAX
👉 @sysadminof
╔════════════════════════════════════════════════════╗
║ 🕵️♂️ Замаскированные службы Linux (systemd) ║
╚════════════════════════════════════════════════════╝
✅ ЗАЧЕМ НУЖНО?
Mask = «жёстко запретить запуск службы»
• не стартует вручную
• не стартует автоматически
• не стартует как зависимость других юнитов
(по сути: юнит → /dev/null)
────────────────────────────────────────────────────
🔒 КАК ЗАМАСКИРОВАТЬ (пример: MySQL)
────────────────────────────────────────────────────
sudo systemctl mask mysql
Проверка:
systemctl list-unit-files --state=masked
# или
systemctl list-unit-files | grep masked
Попытка запуска:
sudo systemctl start mysql
➡️ Failed to start mysql.service: Unit mysql.service is masked.
────────────────────────────────────────────────────
🔓 КАК РАЗМАСКИРОВАТЬ
────────────────────────────────────────────────────
sudo systemctl unmask mysql
Запуск обратно:
sudo systemctl start mysql
# (если нужен автозапуск)
sudo systemctl enable mysql
────────────────────────────────────────────────────
⚡ ВАЖНО: mask vs disable
────────────────────────────────────────────────────
disable — отключает автозапуск, но start вручную работает
mask — блокирует ЛЮБОЙ запуск (самый строгий режим)
────────────────────────────────────────────────────
📌 Быстрый список masked:
systemctl list-unit-files --state=masked
╚════════════════════════════════════════════════════╝
📲 Мы в MAX
👉 @sysadminofРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576# findmnt
Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
# findmnt -l
Можно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
# findmnt --fstab -t xfs или # findmnt --fstab -t ext4
Поиск файловой системы, используя точку монтирования.
Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
# findmnt --fstab /mnt/external/disk2 #this prints bind mounts where /mnt/external/disk2 is a source
или # findmnt --fstab --target /mnt/external/disk2
Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
# findmnt --fstab --evaluate
Отобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
# findmnt -n --raw --evaluate --output=target LABEL=/boot или # findmnt -n --raw --evaluate --output=target LABEL=/
Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
# findmnt --poll --mountpoint /mnt/test
Если вы хотите больше информации в выводе, используйте ключ –verbose.
# findmnt --real --verbose
📲 Мы в MAX
👉 @sysadminofweb-server-01 закончилась память, а db-02 уперлась в полку по CPU? Смотреть htop на каждом сервере не выход.
Строим классический стек мониторинга. Это стандарт индустрии: бесплатно, гибко и выглядит так, что начальство будет в восторге.
🛠 Три мушкетера мониторинга
1. Node Exporter: Агент-шпион. Ставится на каждую Linux-машину (VM). Собирает метрики (CPU, RAM, Disk, Net) и отдает их по HTTP.
2. Prometheus: База данных (TSDB). Периодически опрашивает всех агентов («скрейпит») и сохраняет историю изменений.
3. Grafana: Красивая "морда". Рисует графики, дашборды и шлет алерты в Telegram.
🚀 Шаг 1. Ставим агента (на каждую VM)
На целевой виртуалке скачиваем и запускаем node_exporter.
Самый простой способ - через Systemd, чтобы он стартовал сам.
Создаем юнит /etc/systemd/system/node_exporter.service:
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Не забудьте открыть порт 9100 в фаерволе!
💾 Шаг 2. Настраиваем Prometheus (Сервер мониторинга)
На сервере мониторинга в prometheus.yml добавляем наши виртуалки в список целей:
scrape_configs:
- job_name: 'kvm_vms'
static_configs:
- targets:
- '192.168.122.10:9100' # web-server
- '192.168.122.11:9100' # db-server
Перезапускаем Prometheus. Теперь он каждые 15 секунд (по дефолту) ходит к виртуалкам и спрашивает: «Как дела?».
🎨 Шаг 3. Визуализация в Grafana
Заходим в Grafana -> Data Sources -> Add Prometheus.
А теперь магия: не нужно рисовать графики вручную!
1. Идем в Dashboards -> Import.
2. Вводим ID готового дашборда: 1860 (или 11074).
3. Нажимаем Load.
Вуаля! У вас перед глазами полная картина: загрузка ядер, потребление RAM, IOPS дисков и сетевой трафик по каждой машине.
💡 Pro Tip для KVM: libvirt-exporter
Node Exporter показывает то, что видит сама виртуалка. Но иногда виртуалка "врет" или зависает так, что агент не отвечает.
Чтобы видеть ситуацию снаружи (со стороны гипервизора), поставьте на хост-машину libvirt-exporter.
Он берет метрики напрямую из KVM/QEMU. Вы увидите:
🩵Реальное потребление CPU (включая Overhead).
🩵Статус машин (Running/Paused/Shutdown).
🩵Проблемы с дисками на уровне хоста.
👉 Zabbix или Prometheus? Кто чем пользуется в проде и почему?
#sysadmin #monitoring #prometheus #grafana #devops #linux
📲 Мы в MAX
👉 @sysadminofnginx?
Это медленно и небезопасно.
Решение Cloud-Init. Это стандарт де-факто для инициализации облачных инстансов (AWS, Azure, DigitalOcean), который прекрасно работает и на локальном KVM.
🎯 Задача
При команде terraform apply:
1. Создать VM.
2. Автоматически создать пользователя admin.
3. Закинуть туда ваш публичный SSH-ключ (чтобы заходить без пароля).
4. Установить Nginx и Docker.
📝 Шаг 1. Пишем конфиг (cloud_init.cfg)
Создайте файл cloud_init.cfg. Это обычный YAML, который описывает, что нужно сделать внутри ОС при первом старте.
#cloud-config
hostname: my-web-server
fqdn: my-web-server.local
manage_etc_hosts: true
users:
- name: admin
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
ssh_authorized_keys:
- ssh-rsa AAAAB3Nza... (ваш публичный ключ id_rsa.pub)
packages:
- nginx
- htop
- git
runcmd:
- [ systemctl, enable, nginx ]
- [ systemctl, start, nginx ]
- [ echo, "Hello from Cloud-Init!", >, /var/www/html/index.html ]
🔗 Шаг 2. Подключаем к Terraform
В наш файл main.tf (из прошлого поста) добавляем ресурс диска Cloud-Init. Terraform создаст маленький ISO-образ с нашим конфигом и подключит его как CD-ROM к виртуалке.
# 1. Читаем конфиг
data "template_file" "user_data" {
template = file("${path.module}/cloud_init.cfg")
}
# 2. Создаем диск с настройками
resource "libvirt_cloudinit_disk" "commoninit" {
name = "commoninit.iso"
user_data = data.template_file.user_data.rendered
}
# 3. Цепляем к машине
resource "libvirt_domain" "vm" {
# ... остальные настройки ...
# Самая важная строчка:
cloudinit = libvirt_cloudinit_disk.commoninit.id
# ...
}
🚀 Результат: Вы запускаете terraform apply.
Через 30 секунд у вас есть поднятый сервер с установленным Nginx. Вы просто пишете:
ssh admin@<ip-address>
...и сразу попадаете внутрь. Никаких паролей, никаких ручных установок.
💡 Важный нюанс: Cloud-Init работает только на специальных Cloud Images (например, Ubuntu Cloud, CentOS GenericCloud, Debian Cloud).
Если вы попытаетесь скормить ему обычный установочный ISO (Desktop/Server installer), магии не произойдет, там нет демона cloud-init, который читает конфиг при загрузке.
Коллеги, а вы используете Cloud-Init или по старинке Ansible/Chef/Puppet накатываете настройки уже после того, как машина загрузилась?
#sysadmin #cloudinit #terraform #kvm #devops #automation #linux
📲 Мы в MAX
👉 @sysadminofcat /proc/mdstat | Просмотр состояния RAID
fdisk -l | Простомотр дисков и разделов
mdadm --add /dev/md1 /dev/sda2 | Добавление разделов (partition) в RAID
sfdisk -d /dev/sda | sfdisk /dev/sdb | Клонирование разделов с диска sda на sdb
grub-install /dev/sdb | Установка загрузчика на новый диск sdb
📲 Мы в MAX
👉 @sysadminofsystemctl status network
2. Запустить сервис. Запустит сервис баз данных на примере mysql
systemctl start mysql
3. Остановить службу. Остановит сервис времени ntpd
systemctl stop ntpd
4. Перезапустить службу. Перезапустит веб-сервер nginx
systemctl restart nginx
5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
systemctl enable apache
6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
systemctl disable firewalld
7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
systemctl --host root@192.168.0.15 stop cron
8. Перезагрузить сервер. Перезагрузит локальный сервер
systemctl reboot
9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
systemctl is-active docker
а) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
systemctl is-active docker && docker run hello-world
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
📲 Мы в MAX
👉 @sysadminof
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
