ServerAdmin.ru @srv_admin Channel on Telegram

ServerAdmin.ru

@srv_admin


Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

ServerAdmin.ru (Russian)

ServerAdmin.ru - ваш источник авторской информации о системном администрировании. Если вы являетесь специалистом в этой области или просто хотите расширить свои знания, то этот канал для вас. Здесь вы найдете актуальные статьи, советы, и аналитику от опытных профессионалов.

Канал принадлежит пользователю @srv_admin, который старается делиться самой полезной и интересной информацией по теме. Вы также можете узнать об возможностях рекламы на канале, обратившись к специальному боту: @srv_admin_reklama_bot. Автором контента является @zeroxzed, который уделяет особое внимание качеству и актуальности материалов.

Для тех, кому не хватает только одного канала, есть возможность подписаться на второй канал @srv_admin_live, где вы найдете еще больше полезной информации. И не забывайте посещать сайт serveradmin.ru, где вы найдете дополнительные материалы и ресурсы. Присоединяйтесь к сообществу ServerAdmin.ru и станьте экспертом в области системного администрирования!

ServerAdmin.ru

20 Nov, 15:30


Уже довольно давно существует веб сервер Caddy. Он особо не на слуху в плане использования в качестве одиночного веб сервера. Но лично я его часто вижу в составе каких-то программных комплексов, собранных из различных open source проектов.

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

Устанавливаем Caddy на сервер с Debian:

# apt install debian-keyring debian-archive-keyring apt-transport-https curl
# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install caddy

Это если вы хотите, чтобы у вас всё было как обычно - обновление из репозитория, конфигурационный файл, systemd служба и т.д. Сам по себе Caddy - это одиночный бинарный файл. Его можно просто скачать и установить на любой Linux сервер:

# curl -sS https://webi.sh/caddy | sh

Windows, он, кстати, тоже поддерживает. Это может быть хорошим решением для проксирования веб публикации баз 1С в Windows с помощью Apache. Принимаем все запросы в Caddy, передаём в Apache.

По умолчанию Caddy работает сразу по протоколу HTTPS. Если для доменного имени настроена DNS запись, то он автоматом при запуске получает сертификат от let's encrypt и использует. Достаточно нарисовать вот такой простой конфиг /etc/caddy/Caddyfile:

example.com {
  root * /var/www
  file_server
}

# systemctl restart caddy

После перезапуска Caddy автоматически получит сертификаты для домена example.com и запустит статический сайт на HTTPS.

Пример конфигурации для проксирования:

example.com {
reverse_proxy 10.20.1.50:5000
}

Тут всё то же самое. Caddy автоматом получит сертификат, запустится с использованием HTTPS и будет работать в качестве reverse proxy для указанного адреса.

Всё то же самое можно запустить сразу в консоли, если вам это нужно для каких-то разовых задач:

# caddy file-server --domain example.com --root /var/www
# caddy reverse-proxy --from example.com --to 10.20.1.50:5000

В консольном режиме Caddy удобно использовать даже для разового получения сертификатов. Запустил по примеру выше и получил на выходе сертификаты в директории ~/.local/share/caddy/certificates/. Если используется служба, то она по умолчанию хранит сертификаты в /var/lib/caddy/.local/share/caddy/certificates/.

Пример для php сайта, типа Worpdress:

example.com {
  root * /var/www
  file_server {
    index index.php
  }
  php_fastcgi unix//run/php/php8.2-fpm.sock
}

Простой и функциональный веб сервер. У него нормальная документация, где все возможности описаны. Я показал примеры для консольного режима и обычного конфигурационного файла. Дополнительно он поддерживает конфигурацию в формате JSON, которую помимо текстового файла, можно передавать напрямую через API. В документации есть примеры.

Если вы не хотите или вам не нужно разбираться в конфигурация Nginx или Apache, а надо, чтобы просто работало, то Caddy - отличный вариант типового веб сервера для общих прикладных задач. При этом он обладает дополнительными возможностями, актуальными для современной эксплуатации:

◽️логи в формате json;
◽️экспорт метрик в формате prometheus;
◽️обновление и перезагрузка конфигурации на лету через API;
◽️снятие профилей для профилировщика pprof.

Он в настройках по умолчанию простой, но при желании можно много всего добавить.

🌐 Сайт / Исходники (58.5k⭐️ 😱)

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#webserver

ServerAdmin.ru

20 Nov, 09:30


Открытый практикум Linux by Rebrain: IPsec в Linux

После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.

👉Регистрация

Время проведения:


27 ноября (среда) в 19:00 по МСК

Программа практикума:

▪️Изучим стек протоколов IPsec
▫️Рассмотрим реализации IPsec в Linux: ядро и демоны в userspace
▪️Познакомимся с командами ip xfrm
▫️Настроим различные сценарии IKE в StrongSWAN

Кто ведёт?


Даниил Батурин — основатель проекта VyOS, системы для корпоративных и провайдерских маршрутизаторов с открытым исходным кодом.

Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!

Реклама. ООО "РЕБРЕИН". ИНН 7727409582 erid: 2Vtzqw9Xvd6

ServerAdmin.ru

20 Nov, 06:11


Писал уже не раз про контрольные точки на виртуальных машинах, но возвращаюсь снова, так как лично столкнулся с небольшой проблемой на днях. Есть гипервизоры Hyper-V и есть Veeam Backup & Replication. Иногда, прямо совсем редко, случается так, что он почему-то не удаляет за собой контрольные точки после создания бэкапа.

Я лет за 10 пару раз такое у себя видел. В этот раз они остались у нескольких виртуалок. Заметил случайно. Но в целом это не уникальная ситуация. К прошлой подобной заметке люди написали много комментариев с описанием проблем, которые они словили из-за оставшихся снепшотов. Вот комментарий от одного человека к подобной заметке в прошлом:

Работал в ТП Veeam, на обучении, запомнил фразу: снапшоты - зло, особенно в руках, которые не понимают, зачем они нужны; но при этом совсем отключать их нельзя, бэкапы работать не будут. А потом на кейсах чего я только не видел - сотни снапшотов на каждой виртуалке на всем парке виртуальных машин, снапшоты с дельтой в терабайт, снапшоты, которым буквально по 10 лет (самое забавное, что дельта в этом случае была не особо большой, особенно относительно вышеописанной терабайтной, и мерджинг прошел буквально за час). Снапшот "здорового" человека - это описываемый в посте способ быстро откатить изменения при обновлении неповоротливого софта, зачем их вручную использовать в других случаях - не понимаю.

Подобные ошибки бывают у разного софта. Видел лично на разных гипервизорах. Из недавнего заметил во время теста Vinchin, что он тоже с определёнными настройками оставлял после работы неудалённые снепшоты. В определённых ситуациях это может привести к сбою в работе виртуалки или всего гипервизора. Особенно если виртуалка очень большая по диску и накопилась большая дельта изменений. Может тупо не хватить места или производительности дисков для слияния. И всё встанет колом.

По хорошему тут надо настраивать мониторинг. Я не делал никогда, потому что у меня нет таких виртуалок, где прям реально будут проблемы, если снепшоты останутся. Плюс, лично сталкивался очень редко. Большой нужды так то и нет. Но если у вас другая ситуация, то настраивайте. Готовых решений по этой теме я не видел, так что скорее всего придётся костылись на скриптах под свою систему мониторинга и виртуализации.

И дам ещё одну подсказку по теме Hyper-V, если с ними работаете. Все работы с гипервизором лучше выполнять через его Windows Admin Center или консоль. И сам не раз сталкивался, и в комментариях к своим статьям видел, что люди жалуются на странные ошибки при работе в оснастке. А те же самые действия в WAC выполняются нормально. Если что-то не работает в оснастке, сразу пробуйте в WAC. Скорее всего там всё нормально получится. Например, я не мог удалить снепшоты через оснастку. А через WAC без проблем зашёл и удалил. Не знаю, с чем это связано.

#виртуализация

ServerAdmin.ru

19 Nov, 15:30


Решил провести небольшой эксперимент и поддержать авторов, которые ведут блоги по IT тематике. Думаю, среди читателей моего канала такие найдутся. В конечном счёте цель написания статей в публичном доступе - их прочтение другими людьми. Я хочу попробовать помочь в достижении этой цели.

Моя идея в следующем.

1️⃣ Я делаю каталог авторских IT сайтов. Закрепляю его в отдельном сообщении в этом канале. По мере накопления желающих в нём находиться, обновляю.

2️⃣ Создаю отдельный чат только для авторов блогов, куда они будут присылать ссылки и небольшие анонсы своих новых материалов, где я смогу с ними знакомиться.

3️⃣ По мере накопления новых статей я буду делать публикацию на канале с ними и краткими своими комментариями после моего знакомства с материалом по примеру того, как я это делаю с видеороликами.

4️⃣ Авторы сайтов размещают на своих ресурсах простые формы для донатов, чтобы каждый читающий смог закинуть туда денег.

5️⃣ Читатели моего канала знакомятся со статьями и донатят авторам, если считают, что их материалы достойны этого. Если идея реализуется, каталог с сайтами соберётся, а статьи будут регулярно выходить, то я выделю от себя лично небольшой бюджет и буду регулярно донатить.

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

Мне лично от этого мероприятия ничего не нужно. Я сам готов поддерживать тех, кто пишет текстовые материалы по IT теме. Основная моя поддержка - аудитория, которой это интересно.

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

#статьи

ServerAdmin.ru

19 Nov, 09:30


Распродажа VPS для ваших задач!
DLine Media предлагает VPS от 100 рублей 😎

Преимущества:
▪️серверное железо
◽️быстрые NVMe диски
▪️ неограниченный трафик
◽️ топовые зарубежные и российские локации
▪️цены в рублях (!)
◽️оплата по договору или картой РФ
▪️собственный ЦОД
◽️выделенный VLAN
▪️поддержка IPv6
◽️VNC доступ из браузера
▪️удобная панель управления
◽️установка любой ОС
▪️низкая стоимость
◽️круглосуточная поддержка

Количество VPS по скидке ограничено, заказ на сайте:
https://dline-media.com

Реклама, ИП Горошко Е.А., ИНН 560910904031

ServerAdmin.ru

19 Nov, 06:11


Пробую в ежедневной рутине использовать в качестве помощника ИИ. В данном случае я имею ввиду Openchat-3.5-0106, которым пользуюсь. Как я уже отмечал ранее, там, где нужно выдать какую-то справочную информацию или скомбинировать известную информацию, он способен помочь. А где надо немного подумать и что-то написать новое, то уже не очень.

У меня возникла простая задача. В запросах к API на выборку данных нужно указывать год, номер месяца, дни месяца. Это нетрудно сделать с помощью bash. Решил сразу задать вопрос боту и посмотреть результат. Сформулировал запрос так:

Напиши bash скрипт, который будет показывать текущую дату, номер текущего месяца, текущий год, первый и последний день текущего месяца, прошлого месяца и будущего месяца.

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

Гугл первой же ссылкой дал правильный ответ на stackexchange. Идею я понял, немного переделал скрипт под свои потребности. То есть сделал сразу себе мини-шпаргалку, заготовку. Получилось вот так:

#!/bin/bash

CUR_DATE=$(date "+%F")
CUR_YEAR=$(date "+%Y")
CUR_MONTH=$(date "+%m")
DAY_CUR_START_FULL=$(date +%Y-%m-01)
DAY_CUR_START=$(date "+%d" -d $(date +'%Y-%m-01'))
DAY_CUR_END_FULL=$(date -d "`date +%Y%m01` +1 month -1 day" +%Y-%m-%d)
DAY_CUR_END=$(date "+%d" -d "$DAY_CUR_START_FULL +1 month -1 day")

LAST_MONTH_DATE=$(date "+%F" -d "$(date +'%Y-%m-01') -1 month")
LAST_MONTH_YEAR=$(date "+%Y" -d "$(date +'%Y-%m-01') -1 month")
LAST_MONTH=$(date "+%m" -d "$(date +'%Y-%m-01') -1 month")
DAY_LAST_START=$(date "+%d" -d "$(date +'%Y-%m-01') -1 month")
DAY_LAST_START_FULL=$(date "+%Y-%m-01" -d "$(date +'%Y-%m-01') -1 month")
DAY_LAST_END=$(date "+%d" -d "$LAST_MONTH_DATE +1 month -1 day")
DAY_LAST_END_FULL=$(date -d "$LAST_MONTH_DATE +1 month -1 day" +%Y-%m-%d)

echo -e "\n"
echo "Полная текущая дата: $CUR_DATE"
echo "Текущий год: $CUR_YEAR"
echo "Номер текущего месяца: $CUR_MONTH"
echo "Первый день этого месяца: $DAY_CUR_START_FULL, $DAY_CUR_START"
echo "Последний день этого месяца: $DAY_CUR_END_FULL, $DAY_CUR_END"
echo -e "\n"
echo "Начало прошлого месяца: $LAST_MONTH_DATE"
echo "Год прошлого месяца: $LAST_MONTH_YEAR"
echo "Номер прошлого месяца: $LAST_MONTH"
echo "Первый день прошлого месяца: $DAY_LAST_START_FULL, $DAY_LAST_START"
echo "Последний день прошлого месяца: $DAY_LAST_END_FULL, $DAY_LAST_END"
echo -e "\n"


Можете себе забрать, если есть нужда работать с датами. Иногда это нужно для работы с бэкапами, которые по маске с датой создаются. Директории удобно по месяцам и годам делать. Потом оттуда удобно забирать данные или чистить старое. То же самое с API. К ним часто нужно указывать интервал запроса. Года, месяцы, даты чаще всего отдельными переменными идут.

Проверять подобные скрипты удобно с помощью faketime:

# apt install faketime
# faketime '2024-01-05' bash date.sh

Я в своей деятельности пока не вижу какой-то значимой пользы от использования ИИ. Не было так, что вот задал ему вопрос и получил готовый ответ.

#bash #scripts

ServerAdmin.ru

18 Nov, 15:30


Для мониторинга за S.M.A.R.T одиночного сервера есть простой open source проект - Scrutiny. Он состоит из сборщика метрик с помощью smartmontools, веб интерфейса для отображения данных и оповещений через различные каналы связи.

Scrutiny можно установить вручную из отдельных компонентов, но проще, конечно, запустить в Docker контейнере. Инструкция из репозитория предлагает сделать это так:

# docker run -it --rm -p 8080:8080 -p 8086:8086 \
 -v `pwd`/scrutiny:/opt/scrutiny/config \
 -v `pwd`/influxdb2:/opt/scrutiny/influxdb \
 -v /run/udev:/run/udev:ro \
 --cap-add SYS_RAWIO \
 --device=/dev/sda \
 --device=/dev/sdb \
 --name scrutiny \
 ghcr.io/analogj/scrutiny:master-omnibus

То есть мы пробрасываем диски внутрь контейнера и добавляем необходимые права, чтобы можно было увидеть SMART. Если у вас контейнеры крутятся прямо на железе, то это самый простой и быстрый вариант.

Мне захотелось настроить то же самое на гипервизоре Proxmox, где Docker ставить на хост - плохая идея. Каких-то реальных проблем может и не будет, но я обычно ничего не устанавливаю на гипервизоры. Сделал по-другому. Взял LXC контейнер, установил туда Docker (так можно). Дальше очень долго возился с тем, чтобы пробросить информацию о дисках в LXC контейнер. Это оказалась непростая задача. Сами диски вроде бы прокинул, он были видны в LXC контейнере, но smartctl так и не смог с них забрать информацию.

Хотел уже забросить эту идею, пока внимательнее не изучил репозиторий Scrutiny. У него есть API и есть сборщик метрик, который можно запустить где угодно и просто отправить метрики в веб интерфейс. Сборщик работает и в Windows.

В итоге сделал так. В указанном LXC контейнере запустил веб интерфейс:

# docker run -it --rm -p 8080:8080 -p 8086:8086 \
-v `pwd`/scrutiny:/opt/scrutiny/config \
-v `pwd`/influxdb2:/opt/scrutiny/influxdb \
--name scrutiny \
ghcr.io/analogj/scrutiny:master-omnibus

Можно идти по IP адресу сервера на порт 8080. По умолчанию нет аутентификации. Сразу всё доступно. Служба запустится с конфигурацией по умолчанию. Для того, чтобы её настроить, нужно положить файл scrutiny.yaml в директорию /scrutiny. Пример конфигурации. В ней же настраиваются уведомления. Поддерживается telegram, discord, smtp, gotify и много других каналов.

На сам гипервизор скачал бинарник - сборщик данных. Он лежит в репозитории:

# wget https://github.com/AnalogJ/scrutiny/releases/download/v0.8.1/scrutiny-collector-metrics-linux-amd64
# mv scrutiny-collector-metrics-linux-amd64 scrutiny-collector-metrics

Отправляю метрики в веб интерфейс:

# ./scrutiny-collector-metrics run --api-endpoint "http://10.20.1.64:8080"

Они сразу же отображаются там. Команду выше нужно будет поставить в планировщик (cron или systemd.timer). Часто собирать данные не обязательно, если вам не нужен подробный график температуры. Достаточно отправлять их раз в час. У сборщика есть свой конфигурационный файл, в котором можно настроить некоторые дополнительные параметры, исключить ненужные диски и т.д. Пример collector.yaml.

Мне понравилась программа. Простая, удобная, для выполнения одной задачи. Ждал от неё возможность объединить в едином интерфейсе информацию с разных серверов, но не увидел там такого. Единственный вариант - для каждого сервера запускать веб интерфейс на отдельном порту и менять этот порт в сборщике в зависимости от сервера. Но это уже так себе решение по удобству.

4️⃣ Исходники Scrutiny

Я лично использую Zabbix для мониторинга за SMART. Настраиваю примерно так, как в статье:

Настройка мониторинга SMART жесткого диска в zabbix

Она устарела, поменялись и скрипты, и шаблоны, так как с новыми версиями Zabbix уже не работают некоторые вещи из статьи. Недавно настраивал с нуля и повозился немного. Надо бы статью обновить, но пока руки не доходят. Сам принцип остался тот же - smartmontools на хостах, скрипты для автоопределения дисков и шаблон Zabbix для парсинга вывода smartctl.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#железо #мониторинг

ServerAdmin.ru

18 Nov, 09:31


Тренинги 🔍ElasticSearch и 🔍OpenSearch c нуля до администратора в декабре — отличный способ прокачать скиллы под конец года

Приходите на наши авторские курсы по ElasticSearch или OpenSearch и развивайте внутреннюю экспертизу по этим решениям. Если вашей команде требуется экспертиза по поддержке этих систем и нет времени на их изучение, наши трёхдневные интенсивы дадут максимум знаний и опыта по установке, настройке и администрированию ElasticSearch/OpenSearch. Вложитесь в обучение один раз и не тратьте время сотрудников на многодневное изучение документации.

За время курса вы:

🔎 разберетесь в принципах работы ElasticSearch/OpenSearch
🔎 установите и настроите кластер
🔎 настроите сбор и обработку неструктурированных данных
🔎 получите опыт работы с политикам жизненного цикла индексов
🔎 научитесь проработке архитектуры будущего кластера в зависимости от нагрузки
🔎 поймете как оптимизировать хранение данных
🔎 узнаете много интересного, о чём не написано в документации

Ближайшие курсы уже в декабре:

▶️ Программа OpenSearch 16-18 декабря

▶️ Программа ElasticSearch 23-25 декабря

Заявку можно оставить через форму обратной связи на соответствующей странице либо написать @galssoftware.

❗️❗️ Подписывайтесь на наши каналы по мониторингу и логированию:

🚀 ElasticSearch/OpenSearch @elasticstack_ru

🚀 Zabbix @zabbix_ru

🚀 Мониторим ИТ @monitorim_it

Реклама, ООО "ГАЛС СОФТВЭР", ИНН 5047195298, erid: 2SDnjbxhfpP

ServerAdmin.ru

18 Nov, 06:11


У меня есть старый сервер, в котором используется рейд контроллер Adaptec RAID 6805E. Ему лет 10-12. Раньше эти контроллеры были распространены, но со временем их почти полностью заменили контроллеры от LSI. Тестировал программу для мониторинга за SMART жёстких дисков и озадачился. А можно ли посмотреть информацию о дисках за этим рейд контроллером?

В общем случае операционная система не видит информацию о дисках, которые подключены через рейд контроллер, особенно если из них собраны массивы. В брендовых серверах такую информацию проще всего брать по SNMP или IPMI от BMC (Baseboard Management Controller) сервера. Второй вариант - поставить управляющий софт контроллера в операционную систему. Это немного сложнее, потому что скорее всего понадобится дополнительно установить модуль ядра. Для контроллеров LSI есть программа MegaCli, которая развивается и поддерживается. Я много раз её ставил и мониторил диски.

Для Adaptec оказывается всё не намного сложнее. До сих пор жив сайт и доступны драйвера для указанного контроллера:

⇨ https://storage.microsemi.com/en-us/support/raid/sas_raid/sas-6805e/

Основная проблема - они давно не обновляются. Самая свежая версия от 2016 года и под Debian 8. У нас уже Debian 12 под капотом Proxmox. Скачал представленный архив, там пакет. Установил его:

# dpkg -i aacraid-1.2.1-52011-Debian8.1-x86_64.deb

Никаких ошибок не было. Перезагрузил сервер, проверяю:

# lsmod | grep aacraid
aacraid        143360 31

Модуль ядра загружен. Проверяю контроллер:

# arcconf getconfig 1 AD
Controllers found: 1
----------------------------------------------------------------------
Controller information
----------------------------------------------------------------------
  Controller Status            : Optimal
  Channel description           : SAS/SATA
  Controller Model             : Adaptec 6805E
.........

Всё работает. Смотрю состояние собранных массивов:

# arcconf getconfig 1 LD

Смотрю информацию о дисках:

# arcconf getconfig 1 PD

Всё нормально отображает. Теперь можно и SMART посмотреть. Если стоит софт от контроллера, то smartctl может работать с дисками за контроллером примерно так же, как и с обычными:

# smartctl -a -d "aacraid,0,0,0" /dev/sda

Увидим информацию о самом первом диске на первом контроллере. Если не ошибаюсь, то первый 0 - контроллер, вторые два нуля это Reported Channel,Device(T:L) : 0,0(0:0) в описании дисков через arcconf getconfig 1 PD. Проверил у себя, у меня совпадает.

Таким образом можно использовать информацию от smartctl в любом мониторинге, который построен на его базе. Либо можно взять шаблон Zabbix, который работает через парсинг вывода arcconf.

❗️Если у вас где-то в проде всё ещё работают такие контроллеры, то не рекомендую без веских оснований ставить этот софт. Всё же он очень старый и могут возникнуть какие-то проблемы на современных системах. Нет смысла рисковать без особой надобности.

#железо

ServerAdmin.ru

16 Nov, 12:30


Пришло время заглянуть под капот и научиться создавать драйвера на Linux!

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

🖐 Что ждет вас на курсе?

- Создание и настройка модулей ядра: Вы научитесь легко интегрировать новое оборудование и расширять функциональность системы.
- Внутренние механизмы ядра и управление памятью: Поймете, как более точно настраивать и оптимизировать систему под конкретные задачи, что улучшит общую эффективность работы.
- Навыки разработки драйверов: Освоите взаимодействие с аппаратными устройствами, что позволит легко интегрировать аппаратные функции и управлять ими, расширяя функциональность мобильных приложений.

➡️ Что будет в программе курса?

1. Узнаем архитектуру ядра Linux и разберемся с драйверами.
2. Создадим простой модуль ядра: будем использовать printk(), сборку и макроопределения __init и __exit.
3. Связь модулей ядра с приложениями? Легко!
4. Работать с файлами символьных устройств — это просто!
5. Создадим драйверы для файловой системы /proc и научимся блокировать процессы при конкуренции.
6. Управление памятью в ядре Linux — прокачаемся!
7. Разработка и регистрация блочных устройств? Без проблем!
8. Конкуренция, семафоры, мьютексы — разберемся с примерами драйверов!
9. Типы данных в ядре и их использование — будем разбираться!

Вас ждет пробный урок

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

➡️ Регистрация на демо-доступ

Реклама, ООО Инженеркатех, ИНН 9715483673.

ServerAdmin.ru

16 Nov, 06:11


Рекламное видео стола для работы стоя с кликбейтным заголовком и откровенным враньём (я про заголовок и описание):

▶️ https://www.youtube.com/watch?v=WwnzntwEKig

Тем не менее, решил вынести его в отдельную публикацию и немного прокомментировать, так как мне есть что сказать об этом. И это сможет вам помочь, если у вас проблемы со спиной. Кто меня давно читает, знает, что у меня, как и у многих с сидячим образом жизни, есть проблемы со спиной. Я писал об этом в разное время. В том числе и про стол для работы стоя. Я им пользовался несколько лет, сейчас перестал. Отдал сыну под рабочий стол. Удобно, так как он растёт и можно под рост регулировать высоту. В стоячем столе нет ничего плохого или особенно полезного. Если вам нравится, можете за ним работать. Я сейчас спокойно работаю сидя.

У меня есть цикл статей с тэгом #спина, где я очень подробно рассказал, как избавил себя от болей. Уже прошло некоторое время, можно прокомментировать все мои описанные ранее действия. Если не читали, то начинайте с самой старой публикации и до этой. Если не читать старые, то пользы от этой не будет.

Основная причина болей в спине и не только - перегрузка мышц либо из-за большой разовой нагрузки, типа подъёма тяжести, либо из-за постоянной статической нагрузки, типа сидения с напряжённой спиной. Если понять этот принцип, то дальше уже будет проще. Вы сами отбросите варианты в виде коленных стульев или фитболов вместо стула. Это верный способ усугубить свою ситуацию кратно, так как вы будете сидеть с вечной статической нагрузкой в мышцах. Это я всё тоже проходил, когда пытался сидеть с прямой спиной. Сидеть надо так, чтобы все мышцы были максимально расслаблены. Как это будет организовано - вторично. У каждого свои особенности тела, привычки, проблемы. Главное понять принцип.

В моих прошлых публикациях я уже писал о том, что мне реально помогло - миопрессура. Я побывал у специалистов, понял принцип. Сейчас лично мне помогает жена ежедневной прессурой проблемных мест. Занимает 20-30 минут. Так как у меня проблем много (шея, вся спина, частично ноги до колен), ситуация сильно запущена и уже осложнена миофиброзом, мне приходится заниматься этим постоянно, чтобы ничего не болело. Плюс, я целый день работаю сидя. В простых случаях нужно только время от времени делать профилактику.

Метод простой и рабочий на 100%. Убедился уже неоднократно на родственниках. Избавил от болей в колене супругу, помог отцу с поясницей, объяснив принцип лечения. Он сам занимается с теннисным мячиком. С тех пор больше не было обострений в пояснице. А иногда даже вставать не мог, ползал на карачках. На днях узнал, что сестра мучается с болями в спине уже 3 недели!!! Прошла по стандартной программе от неврологов, была у остеопата и гомеопата. Понятное дело, что это не помогло. Они реально не лечат, так как даже не вникают в суть проблемы. Я приехал, просто руками потрогал её мышцы. Нашёл те, что жёстче остальных. Хорошенько размял все проблемные зоны. Скинул пару видео о том, как выполнять профилактику с мячиками, показал, какие лучше купить, так как сам пользовался.

Через пару дней она мне написала:

Привет. У меня спина уже получше. Сегодня уже делала массаж шариками. Жаль, что раньше про них не знала. Делаю душ и растяжку. За два дня полегчало.

Многим рассказывал про это лечение, но большинство людей не воспринимают информацию, пока не допечёт так, что боль делает жизнь невыносимой. Тогда включается голова и человек начинает пробовать всё, что теоретически может помочь. Так что кого-то убеждать и спорить не буду. Напомню, что я хроник с большим стажем и пробовал всё более-менее популярное и доступное из лечения. Миопрессура относительно проста и эффективна. И главное, практически сразу помогает. Попробуйте. И не нужны будут чудо стулья, столы, матрасы, подушки, подкладки на сиденье в машине и т.д. Я ничем этим не пользуюсь и нормально живу. Одно время был в такой депрессии от нахлынувших болей, что не понимал, как буду жить.

Если у кого-то есть вопросы по теме, то можете задавать тут или в личку. Я всем отвечу, если это сможет вам помочь.

#спина

ServerAdmin.ru

15 Nov, 15:31


▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Как обычно, ниже те видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне показались интересными и полезными.

GitLab CI/CD - Полный DevOps Pipeline с НУЛЯ, Создание Docker Image и деплой в AWS Lambda
GitLab - Как работать используя TOKEN
Продолжение начатой ранее автором темы про Gitlab и CI/CD на его основе. Если самостоятельно изучаете эту тему, то видео будут отличным подспорьем. Автор хорошо объясняет, показывает на примерах.

KEYNOTE by Alexei Vladishev / Zabbix Summit 2024
У Zabbix недавно прошёл масштабный саммит. Они выложили на своём канале кучу видео оттуда. Посмотрите, может вас заинтересуют какие-то темы. Мне очень хочется некоторые видео посмотреть и разобрать, но не знаю, найду ли для этого время. Хотя бы посмотреть надо для начала. Там и мониторинг MariaDB, и новый веб мониторинг, и самописные проверки по tcp, и мониторинг DNS, и тюнинг производительности, и т.д. В общем, интересно.

Proxmox Network. Обзор и настройка. Bridge, Bond, VLAN.
Очень подробное наглядное видео с картинками и схемами по организации виртуальной сети в Proxmox. Рассмотрены не только тривиальные случаи. Например, автор рассказал, как настроить две изолированные подсети виртуалок, в которой каждая подсеть выходит в инет через свой роутер. Там же он создаёт и тестирует Bond - объединение сетевых адаптеров для отказоустойчивости.

Настройка мониторинга c помощью Grafana InfluxDB Prometheus Telegraf
Большое видео на тему установки и настройки указанного стэка. Я похожий стэк тестировал и писал об этом: TICK Stack. Из своих изысканий не особо понял, зачем нужно использовать Telegraf и InfluxDB. Из плюсов только то, что это и метрики, и логи в одном месте. Но сейчас есть Loki для этого, и я бы отдал предпочтение ему.

Какой софт у меня в моей homelab в 2024
Интересно было посмотреть, как всё организовано у автора. У него один общий сервер под Proxmox и там виртуалки с контейнерами: opnsense, truenas, pbs, pi-hole, nut, homapage, plex, sonarr, nextcloud и т.д. Он рассказал не только про софт, но и про организацию сети. Почти по всему софту у него есть отдельные ролики.

Best Docker Update Image Tools for Automating Container Updates
Обзор софта, который умеет автоматически обновлять образы контейнеров: Watchtower, Shepherd, Portainer, CI/CD pipelines.

Как быстро определить версию дистрибутива Linux и эффективно управлять пакетами?
Небольшое справочное видео по теме. Заголовок немного некорректно подобран, так как в видео в основном про пакеты речь идёт, а про версию ОС в самом начале. Автор предлагает смотреть так: cat /etc/*release. Я лично привык использовать hostnamectl. Так не только ОС видно, но тип виртуализации и некоторую другую информацию.

Reacting to your CURSED Homelab Setups
Длинное развлекательное видео, где автор показывает и обсуждает домашние лаборатории своих пользователей. Ранее он просил прислать картинки и описание своих домашних лабораторий, а теперь обработал всё это и оформил в видео.

How To Rebrand Zabbix 7.0 ( Replace Logos )
Небольшое обзорное видео на тему брендирования своего сервера Zabbix с заменой логотипа.

MiniTool ShadowMaker - простая и бесплатная программа для бекапа и восстановления системы
Рекламный обзор небольшой бесплатной версии программы для бэкапа ОС Windows. У программы, соответственно, есть и коммерческая версия. На вид вроде ничего особенного по сравнению с другими подобными программами. Посмотрите, может вам приглянется.

В подписках было много видео с рекламой различных продуктов, типа того, что выше. Понимал об этом по UTM меткам в ссылках с описанием. При этом сами блогеры явно не говорят, что публикуют оплаченный рекламный обзор. Это как-то некрасиво. Привык уже к нашему закону о рекламе, где блогеров обязали маркировать и явно указывать, что они публикуют рекламу. Для конечного пользователя это большой плюс.

#видео

ServerAdmin.ru

15 Nov, 09:30


Хотите прокачать навыки работы с Linux? Присоединяйтесь к бесплатному практикуму от Rebrain

Вы сможете познакомиться с платформой, узнать, как устроены практические задания и определить свой уровень работы с Linux.

Что входит в программу?

• Подключение к виртуальной машине по SSH и работа с ней: создание файлов, запись данных
• Установка веб-серверов nginx и Apache
• Работа с конфигурацией установленного ПО, проверка статуса программ

Вы выполните два задания разного уровня сложности и сможете сориентироваться, какой практикум наилучшим образом поможет вам прокачать свои навыки работы с Linux. А за выполнение всех заданий мы подарим вам промокод на 15 000 ₽ на дальнейшее обучение.

↘️ Начните практикум бесплатно: ссылка регистрации

Реклама. ООО "РЕБРЕИН". ИНН 7727409582 erid: 2Vtzqxh1hAB

ServerAdmin.ru

15 Nov, 06:11


В одном интервью человека, который занимается наймом системных администраторов, услышал мельком вопрос, который он иногда задаёт на собеседованиях.

У вас непрогнозируемо и очень быстро растёт размер базы данных. Что вы будете экстренно предпринимать в связи с этим?

Ответа там не было, как и конкретики, какая СУБД имеется ввиду. Решил немного порассуждать на эту тему на примере MySQL, как наиболее простой и популярной СУБД. Сразу скажу, что я так вот сходу не знаю, как быстро решать такие проблемы. Просто немного подумал и прикинул, что бы я стал делать.

1️⃣ Первым делом я бы зашёл на сервере в консоль, открыл mysql клиент и запустил там:

> SHOW FULL PROCESSLIST;
или так, чтобы было удобнее смотреть:
# mysql -e "SHOW FULL PROCESSLIST;" > ~/processlist.txt

Это первое, что приходит в голову. В нагруженном сервере список будет очень большой и по нему понять, что происходит, не всегда возможно. Если это какой-нибудь Битрикс, то там будут длиннющие запросы от одного и того же клиента в виде веб сервера. Тем не менее, получить какое-то представление о том, что происходит на сервере можно. Тем более, если там много баз данных, то можно заметить, что есть аномально большое количество запросов к одной из них.

Так как у нас стоит вопрос о росте базы данных, имеет смысл отфильтровать запросы по типу, оставив только UPDATE и INSERT. По идее именно они загружают данные в таблицы:

> SELECT * FROM information_schema.processlist WHERE `INFO` LIKE 'UPDATE %';
> SELECT * FROM information_schema.processlist WHERE `INFO` LIKE 'INSERT %';

2️⃣ Для более детального просмотра активности в режиме реального времени можно запустить Mytop и посмотреть информацию там. Можно быстро фильтрануть по клиентам и базам данных, чтобы быстрее определить аномалии.

3️⃣ Параллельно я бы посмотрел размер таблиц. Можно просто отсортировать файлы по размеру в директории /var/lib/mysql/database_name. В MySQL чаще всего каждая таблица в отдельном файле. Либо можно зайти клиентом и посмотреть там:

> SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "database_name" ORDER BY (data_length + index_length) DESC;

У меня есть отдельная заметка по таким прикладным запросам.

Таким образом у нас есть информация о клиентах, которые подключаются к базе данных и информация о том, какие таблицы или таблица растут. Подключения клиентов можно посчитать, если на глазок не видно, от кого их больше всего.

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

Если причина роста базы в том, что кто-то просто заливает туда много данных, то по идее нам полученной информации достаточно, чтобы это прекратить. На этом моя фантазия по расследованию кончилась.

В памяти всплыло ещё то, что размер базы раздувают индексы. Возможно кто-то их лепит на автомате, что приводит к росту базы. По идее это всё тоже будет видно в списке процессов как запросы с CREATE INDEX. Проблемного клиента можно отключить, индексы удалить, базу оптимизировать. Но тут я уже темой не владею. Не знаю, сколько и как этих индексов можно насоздавать и реально ли это может привести к лавинообразному росту объема занимаемого пространства на диске.

Если вам есть, чем дополнить заметку и ответить на поставленный вопрос, с удовольствием почитаю. Кстати, этот вопрос в разных интерпретациях позадавал ChatGPT. Ничего содержательного не ответил. Я потихоньку стал им пользоваться, а то столько восторженных отзывов слышал. Если честно, лично я не впечатлён. Точные ответы он знает на то, что и так быстро ищется через поисковики. А если где-то надо подумать, то там в основном вода.

#mysql

ServerAdmin.ru

14 Nov, 15:30


Для анализа сетевого трафика в первую очередь вспоминаешь про tcpdump. В принципе, он покрывает все основные потребности. Там можно посмотреть и отфильтровать всё, что угодно. Но не сказать, что он удобен и интуитивен, поэтому существуют более специализированные программы.

Я на днях увидел упоминание утилиты ngrep. Название показалось очень знакомым, как-будто я её знаю и уже писал о ней. Поискал по каналу и сайту и ничего не нашёл. Потом вспомнил, что спутал её с sngrep, которую я постоянно использовал, когда плотно работал с VOIP серверами. Очень её рекомендую, если приходится анализировать SIP протокол. Хотя скорее всего вы про неё знаете, если с ним работаете. Это очень удобная и функциональная утилита, известная в узких кругах.

Возвращаясь к ngrep. Это старая программа, которая есть в базовых репозиториях дистрибутивов. В некоторых случаях она будет удобнее tcpdump. Сразу покажу на конкретном примере. В качестве параметра ngrep принимает regex по содержимому пакетов. То есть можно сделать вот так:

# ngrep -q 'HTTP'

И посмотреть информацию о пакетах, где есть строка HTTP. Собственно, это будут все пакеты данного протокола. В примере выше ключ -q означает отображать только сетевые пакеты. Непонятно зачем ngrep без этого ключа рисует полоску из псевдографики в консоли, когда ожидает пакеты.

Ngrep умеет отображать содержимое пакетов с переходом на новую строку. Это особенно удобно для анализа HTTP или SMTP протокола. Как это выглядит, можно посмотреть на картинках снизу:

# ngrep -q 'HTTP' -W byline

Подобным образом можно тут же в консоли отфильтровать все запросы с определённым User-Agent:

# ngrep -q 'YaBrowser' -W byline

Чтобы не анализировать вообще весь трафик, его можно конкретизировать примерно таким же синтаксисом, как у tcpdump:

# ngrep -q 'YaBrowser' -W byline -d ens18 port 80

Указали интерфейс и порт. Если слушаете трафик на шлюзе, то можно конкретизировать сервер назначения, куда идёт трафик:

# ngrep -q 'YaBrowser' -W byline 'host 10.20.1.36 and port 80 or 443'

Host может принимать значения не только IP адреса, но и домена. Если смотрите на веб сервере запросы к конкретному домену, то указать адрес этого домена можно в фильтре для содержимого пакетов:

# ngrep -q 'example.com' -W byline 'port 80 or 443'

Подобные выборки по содержимому актуальны для всех протоколов, где иногда приходится заглядывать в сетевой трафик для дебага. Это упомянутый HTTP, а так же SMTP, SIP. Это из того, что я сам делал.

Например, смотрим обмен с конкретным почтовым сервером, добавляя метки времени:

# ngrep -q '' -t -W byline 'port smtp and host 94.142.141.246'

Можно конкретизировать, если нужно посмотреть только EHLO:

# ngrep -q -i 'EHLO' -t -W byline 'port smtp and host 94.142.141.246'

Сохраните себе информацию о ngrep. Прямо здесь и сейчас вряд ли он нужен будет, но в будущем может пригодиться.

#network #terminal

ServerAdmin.ru

14 Nov, 09:30


Хотите ли вы получить мощный веб-сервер, который переплюнет Nginx? 😁

Узнайте как на вебинаре "Веб-сервер Angie на РЕД ОС"!

Представьте себе:
◽️Вы с легкостью устанавливаете и настраиваете Angie на РЕД ОС.
◽️Запускаете свои веб-приложения с непревзойденной производительностью.
◽️Используете уникальные возможности Angie!

На этом увлекательном открытом уроке👇

Вы узнаете, почему Angie — это революционный шаг в мире веб-серверов.
Поймете ключевые различия между Angie и Nginx.
Научитесь практически применять уникальные возможности Angie.

Запишитесь на бесплатный открытый урок прямо сейчас, и получите список литературы для развития ПРО навыков администратора:
https://clck.ru/3EZSqS

До 17 ноября скидка 10% на курс Расширенное администрирование РЕД ОС!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, erid: 2SDnjerNfKZ

ServerAdmin.ru

14 Nov, 06:11


На неделе возникла небольшая задача по публикации баз 1С через веб сервер. Сделал всё быстро, так как выполнял эту задачу не раз и не два. Там всё относительно просто, если понимаешь, что к чему и как работает. Да и статей ни одну написал по этой теме. Но всё это было давно ещё на базе Centos. А сейчас у меня всё на Debian, так что решил сразу написать статью по этой теме.

Публикация баз 1С на веб севере Apache в Debian

Хотел по-быстрому всё сделать, чтобы потом, если придётся настраивать, просто копипастом всё сделать. Но как обычно разошёлся, написал и про лицензии, и про сеансы, и про обратное проксирование через второй веб сервер, и про распределение функциональности по виртуалкам. В общем, написал всё, что вспомнил по ходу дела. Хотел ещё и про логи, мониторинг, файрвол написать, но не стал. Времени не осталось, да и не захотелось всё в кучу мешать. Надо разделять на темы и объединять ссылками.

Давно не писал новые статьи. А мне это нравится. Прям натуральное удовольствие получаю от их написания. Есть какое-то призвание и способности к этому. Мечтаю, когда дети подрастут и снизится финансовая нагрузка, потратить часть времени на создание какой-то связанной информационной библиотеки или обучающих курсов на отдельные изолированные темы, типа мониторинга или сбора логов. Жаль, что современные технологии напрочь убили монетизацию обычных статейных сайтов. Уже по-всякому прикидывал и тестировал монетизацию, но увы, дохода там почти нет. На это не прожить и даже как дополнительный заработок не тянет, поэтому остаётся только как хобби.

Это я на всякий случай предупреждаю тех, кто может строить планы по созданию сайта и получению какого-то прямого дохода с него. Я по всем своим делам строго веду бухгалтерию и точно знаю, где и как я получаю доход. В лучшие годы баннеры от рекламных сетей приносили по 20-30 т.р. ещё в то время, когда их покупательская способность была выше. Это примерно 2019-2020 год. Потом в 22-м заблокировали Adsense и доход упал где-то до 5 т.р. Я сетевые баннеры вообще снял. Оставил ровно один от Яндекса в середине статей, чтобы он ранжирование не понижал. Яндекс отдаёт больше предпочтения тем сайтам, где есть его реклама.

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

#1С #webserver

ServerAdmin.ru

13 Nov, 15:30


Посмотрел очень интересное видео про снижение задержек в SSD дисках. Там и по теории прошлись, но в основном по практике. По шагам рассказали, что пробовали сделать, какие параметры ОС и софта меняли и к чему это приводило.

Как в Айри.рф сократили SSD-задержки в 61 раз

Мне такой формат выступления нравится, потому что его можно оформить в мини-инструкцию, зафиксировать основные моменты и потом использовать в своей работе. Так что я законспектировал выступление и выделил ключевые моменты, которые могут пригодиться.

У автора стал тормозить классический веб стек под Nginx. Увеличились как задержки на отдачу обычной статики пользователю из кэша, доходили до 1-2 секунд, так и динамические запросы мимо кэша. Было не понятно, с чем это связано. Использовались одиночные SSD диски Samsung Evo без рейда, файловая система ext4 поверх LVM разделов.

Начали разбор ситуации с выделения метрик и утилит для отслеживания отклика дисков:

◽️системный i/o wait
◽️метрики disk timings (статистика от Prometheus)
◽️утилиты ioping / iostat / iotop
◽️HTTP response time

Эти данные ничего не прояснили и не подсказали, куда в итоге надо смотреть и что делать. Далее начали анализировать очередь на запись операционной системы. На практике это никак не помогло понять, где возникают дисковые задержки.

Между приложением и диском есть несколько звеньев: буфер nginx, буфер ОС, очередь на запись. Каждый из этих этапов может добавлять задержку. Проанализировать всё это - нетривиальная задача.

Пробовали следующие изменения:

● асинхронные потоки в nginx через параметр aio threads = default; результат: снижение задержек на 5-10%;
● уменьшение очереди на запись ОС:
vm_dirty_expire_centisecs=1
vm_dirty_writeback_centisecs=1
не дало заметных улучшений
● изменение планировщика с cfq на deadline не принесло значимых изменений
● отключение журналирования через монтирование в fstab с параметром noatime снизило на 10% задержки.
● перенос логов nginx на внешние хранилища и отключение или перенос других системных логов еще уменьшили задержки на 10%.

Для дальнейшего анализа производительности сервиса решили привязаться к метрикам nginx для запросов, которые проходят мима кэша: nginx_time_request и nginx_upstream_header_time. Анализ этих метрик позволил оценить производительность сервиса в целом: лучше он стал работать или нет. Я, кстати, тоже включаю метрику request_time для веб серверов, где требуется оценка производительности. Можно почитать об этом в моей статье Мониторинг производительности бэкенда с помощью ELK Stack.

Что в итоге помогло больше всего?

🔹Отключение полностью журналирования на серверах с кэшем, который можно без последствий потерять
🔹Включение Trim по расписанию примерно тогда, когда объём диска предположительно полностью перезаписан. В данном случае это происходило примерно через неделю работы. Этот интервал и использовали. Я раз в сутки обычно ставлю на своих виртуалках.
🔹Использование tmpfs там, где это возможно. Уменьшает нагрузку на запись, увеличивает срок жизни SSD, работает только на небольших объёмах данных, которые можно потерять.

Каждый из этих шагов дал примерно в 2-3 раза снижение задержек. И в сумме получился заметный прирост для всего сервиса. Плюс, оптимизировали немного само приложение. И в итоге всё заработало в десятки раз быстрее.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#perfomance #disk