ServerAdmin.ru
28.9K subscribers
303 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Небольшая шпаргалка с командами, которая пригодится, когда у вас закончилось свободное место на дисках на сервере под управлением Linux.

🟢 Смотрим, что у нас вообще по занимаемому месту:

# df -h

🟢 Если в какой-то точке монтирования занято на 100% свободное место, можно быстро посмотреть, в каких конкретно директориях оно занято. Тут может быть много разных вариантов:

# du -h -d 1 / | sort -hr
# du -hs /* | sort -hr
Ограничиваем вывод:
# 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. Иногда свободное место заканчивается из-за них:

# df -ih

🟢 Если вывод du показывает, что места свободного нет, но сумма всех директорий явно меньше занимаемого места, то надо проверить удалённые файлы, которые всё ещё держит какой-то процесс. Они не видны напрямую, посмотреть их можно через lsof:

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

Если увидите там файлы большого размера, то посмотрите, какая служба их держит открытыми и перезапустите её. Обычно это помогает. Если служба зависла, то грохните её принудительно через kill -9 <pid>.

🟢 Ещё один важный момент. Может получиться так, что du оказывает, что всё место занято. В файловой системе напрямую вы не можете найти, чем оно занято, так как сумма всех файлов и директорий явно меньше, чем занято места. Среди удалённых файлов тоже ничего нет. Тогда проверяйте свои точки монтирования. Бывает так, что у вас, к примеру, скриптом монтируется сетевой диск в /mnt/backup и туда копируются бэкапы. А потом диск отключается. Если по какой-то причине в момент бэкапа диск не подмонтируется, а данные туда скопируются, то они все лягут на корневую систему, хоть и в папку /mnt/backup. Если после этого туда смонтировать сетевой диск, то ранее скопированные файлы будут не видны, но они будут занимать место. Ситуация хоть и кажется довольно редкой, но на самом деле она иногда случается и я сам был свидетелем такого. И читатели писали такие же истории. Вот одна из них. Поэтому если скриптом подключаете диски, то всегда проверяйте, успешно ли они подключились, прежде чем копировать туда файлы. Вот примеры, как это можно сделать.

#bash #terminal
​​Нравятся тенденции последних лет по принятию разных полезных современных утилит в базовые репозитории популярных дистрибутивов. Недавно рассказывал про hyperfine и bat. К ним можно теперь добавить утилиту duf, как замену df. Она теперь тоже переехала в базовый репозиторий:

# apt install duf

Когда первый раз про неё писал, её там не было. Качал бинарник вручную. Рассказывать про неё особо нечего. Так же, как и df, duf показывает использование диска разных устройств и точек монтирования. Вывод более наглядный, чем в df. Плюс, есть несколько дополнительных возможностей, которые могут быть полезны:

▪️ Умеет делать вывод в формате json:
# duf -json

▪️ Умеет сразу сортировать по разным признакам:
# duf -sort size
# duf -sort used
# duf -sort avail

▪️ Умеет группировать и сортировать устройства:
# duf --only local
# duf --only network
# duf --hide local
# duf --only-mp /,/mnt/backup
и т.д.

То есть эта штука удобна не только для визуального просмотра через консоль, но и для использования в различных костылях, велосипедах и мониторингах. Не нужно парсить регулярками вывод df, а можно отфильтровать, выгрузить в json и обработать jq. Написана duf на GO, работает шустро. Хороший софт, можно брать на вооружение.

#linux #terminal
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Как обычно к выходным.

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

Meet LocalSend - A Cross-Platform, Open Source Alternative to AirDrop and Quick Share!
Я уже рассказывал ранее про программу LocalSend. С тех пор, как узнал про неё, постоянно пользуюсь на всех семейных устройствах. Больше всего оценила простоту и удобство передачи файлов между устройствами жена. Популярный IT блоггер Techno Tim снял подробный обзор про эту бесплатную программу. Рекомендую 👍.

Google Maps Integration With Zabbix Geomap Widget
Небольшой обзорный ролик от Dmitry Lambert по интеграции Zabbix с Google Maps. Он, кстати, открыл отдельный канал Dmitry Lambert Tech, где будет выкладывать IT ролики на различные тематики, как остальные блоггеры. Я посмотрел, мне не зашло про всякие TrueNAS и NextCloud смотреть. Они у всех блоггеров примерно одинаковые.

Мобильное приложение Сингулярити: обзор 2024
Как я уже говорил, перешёл на программу по ведению дел и задач Сингулярити. Соответственно, подписался на их канал. Недавно вышел большой обзор мобильного приложения, которым я тоже пользуюсь. Приложение удобное, мне нравится. Реально использую на смартфоне, хоть и не часто. До этого использовал сервис todoist, но приложением их не пользовался. Субъективно, у Сингулярити оно удобнее.

ВСЁ ПРО ИГРЫ НА ЛИНУКСЕ (2024)
Чисто развлекательный контент для меня, так как автор снимает про Linux в качестве рабочей и развлекательной машины, а у меня винда для этого. Просто нравятся ролики этого автора. Хороший монтаж, картинка, тематика и т.д. Так что я их все смотрю. Они редко выходят, поэтому много времени не занимает.

Pika Backup -An open source linux backup solution that rivals the ease of Time Machine!
Когда увидел ролик, обрадовался. Подумал, что-то интересное про бэкапы, так как на этом канале обычно полезное и интересное выходит. Продукт может и неплохой, так как работает на базе BorgBackup, но это по сути GUI обёртка вокруг него. Актуально только для тех, у кого либо рабочая машина под Linux, либо на серверах GIU стоит. У меня ни того, ни другого, так что для меня материал оказался бесполезен. А сама программа неплохая.

Immich для просмотра и хранения личных фото и видео
Immich – одно из самых популярных open source решений для хостинга фотографий и видеороликов. Я в своё время делал подборку подобных решений, где про Immich не упомянул. Автор подробно рассказывает про этот сервис. Как и где развернуть, как спрятать за прокси, как настроить. В общем, хороший и подробный обзор-инструкция.

Install a self-hosted VPN platform // Netbird
Обзор и настройка популярного сервиса netbird.io для организации приватных сетей с peer-to-peer соединениями. Это что-то похожее на Tailscale, современный Hamachi или Nebula. Есть open source версия для установки на свой сервер. Думаю, имеет смысл попробовать этот продукт и написать заметку. Построено на базе WireGuard.

У меня на этом всё. Если тоже посмотрели что-то интересное и полезное, поделитесь в комментариях.

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

Зашёл, такой думаю, что-то необычное – Симулятор системного администратора. Игра сама не вышла, только демка. Вот она на ютубе:

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

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

А для тех, кто не знает или не слышал про серию админских игр Wargames, хочу про них напомнить. Там разные игры, в том числе на реальном Linux сервере, куда надо подключиться по SSH и выполнить те или иные задания. Сделано интересно и необычно. Некоторые игры очень сложные. Какие-то попроще.

Начать стоит с игры Bandit. Начальные уровни у неё совсем простые. Достаточно знаний консольных команд. На сайте к каждому уровню есть задания и подсказки для выполнения. Начинается игра с подключения по SSH:

▪️ server: bandit.labs.overthewire.org
▪️ port: 2220
▪️ user: bandit0 
▪️ pass: bandit0 

Потом можно поиграть в Natas. Там идея другая. Нужно мучать сайт и искать в нём уязвимости, подсказки, ответы. Эта игра посложнее, надо разбираться в устройстве сайтов: css, js и т.д.

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

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

#игра
​​В выходные увидел любопытную рекламу, которая меня сразу же заинтересовала: "Evolution free tier - виртуальная машина бесплатно навсегда". И хостер отечественный cloud.ru. Я про него вообще не слышал ранее. Забегая вперёд скажу, что это облако от Сбера.

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

🔥 Сразу скажу, что бесплатно вы получите чуть больше, чем ничего. Но обо всём по порядку. Решил всё же написать, чтобы если вы увидели где-то это предложение, то не тратили бы на него своё время.

В общем, прошёл регистрацию. Чтобы создать вечную бесплатную VM, надо закинуть на баланс минимум 100 р. Причём можно именно разово закинуть, а не привязывать свою карту. Сделал это. И реально создал виртуальную машину с 2vCPU, 4 ГБ RAM и Диск на 30 ГБ.

Дальше всё хорошее закончилось. Виртуалка создаётся во внутренней сети без доступа в интернет. Чтобы доступ появился, нужно купить услугу аренды публичного IP адреса или аренды SNAT шлюза. С IP адресом всё понятно, а SNAT шлюз это такой шлюз, который позволяет выходить виртуалкам в интернет, но к ним из интернета прямого доступа не будет. Один шлюз можно использовать для нескольких виртуалок.

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

Очевидно, что с такими условиями смысла в этой вечной бесплатной виртуалке никакого нет. Аналога free tier от AWS или Oracle не получилось. А я так надеялся 😁 Мне в целом то и нужно. У меня этих виртуалок полно. Мне не влом потратить 150-200 р. за аренду нужной VPS. Но получить бесплатную виртуалку всё равно было приятно. Но увы.

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

#хостинг
​​Для сбора и обработки логов есть много различных решений, как self-hosted, так и облачных. Наиболее популярные - ELK и Loki. Первый прям вообще монстр, его надо плотно изучать, прежде чем пользоваться. Второй попроще, но тоже сходу его не одолеть. Надо разбираться. А самый простой вариант централизованного сбора - какой-нибудь syslog сервер. Во все эти хранилища логи надо как-то передавать и желательно перед этим обрабатывать. Одним из таких сборщиков и обработчиков является NXLog.

NXLog - относительно старое (2011 год) и известное решение, которое есть как в редакции Community, так и Enterprise. Различия в возможностях можно тут посмотреть. NXLog поддерживает установку на многие популярные системы, в том числе Windows. Для него есть готовые наборы фильтров для обработки логов. Это в целом популярный вариант для сбора логов в той же винде и отправки их куда-то дальше. Например, в ELK или другое хранилище. Я сам NXLog никогда не использовал. Предпочитаю другие варианты (Vector, Fluentd, Winlogbeat). Но много раз видел отзывы о том, что с его помощью собирают и обрабатывают логи с винды и потом куда-то пересылают.

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

Допустим, нам надо распарсить логи postfix и куда-то передать в формате json. Качаем пакет под свою систему и устанавливаем. Все настройки будут в едином конфигурационном файле. Идём в раздел документации Integration, находим там Postfix. Видим готовый пример фильтра, который распарсит лог и выдаст результат в json, чтобы получилось вот так:

{
"EventReceivedTime": "2016-10-05 16:38:57",
"SourceModuleName": "postfix",
"SourceModuleType": "im_file",
"EventTime": "2016-10-10 01:23:46",
"HostName": "mail",
"SourceName": "postfix",
"Component": "smtp",
"ProcessID": "2538",
"Message": "4F9D195432C: to=<destination@example.com>, relay=mail.example.com[216.150.150.131], delay=11, status=sent (250 Ok: queued as 8BDCA22DA71)",
"QueueID": "4F9D195432C",
"Recipient": "<destination@example.com>",
"RelayHostname": "mail.example.com",
"RelayIP": "216.150.150.131",
"Delay": "11",
"Status": "sent",
"SMTPCode": "250",
"QueueIDDelivered": "8BDCA22DA71"
}

Я нигде не видел такого простого готового решения. Правда специально и не искал. Когда нужно было парсить логи postfix для ELK, писал свой фильтр для Grok. Не скажу, что это было сильно сложно, но изначально для Grok нужно какое-то время, чтобы разобраться. Я просто это уже умею.

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

Список готовых интеграций у NXLog солидный. Он умеет в том числе ходить в SQL базы и брать данные оттуда. В документации есть примеры. Дальше логи можно отправить в различные популярные современные хранилища - ELK, Graylog, Splunk или тот же Syslog. В простых случаях можно забирать логи, парсить и выгружать их рядом обработанными в отдельный лог файл.

⇨ Сайт / Исходники

#logs
​​Среди бесплатных систем для совместной работы, которые можно развернуть на своих серверах, не так много продуктов, из которых можно выбирать. Наиболее популярные:

- Nextcloud
- Onlyoffice Workspace

Есть менее распространённые и функциональные:

- Univention Corporate Server (UCS)
- EGroupware

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

Предлагаю вашему вниманию ещё один продукт из этой серии - Group-Office. Это относительно простая система из далёкого прошлого на базе PHP + MySQL. Как обычно, есть Community версия с открытыми исходниками на github и Professional за деньги.

Основные возможности +- как у всех продуктов такого класса - почтовый клиент, адресная книга, хранение файлов, заметок, задач, календарь. В платной версии онлайн редактор документов для совместной работы, учёт времени, helpdesk и другие плюшки. То есть в бесплатной версии редактора документов нет вообще.

У Group-Office есть свои интересные фишки. Отмечу их отдельно:

Поддержка синхронизации с различными устройствами и приложениями через ActiveSync. То есть задачи, контакты, календари, заметки можно синхронизировать с тем же Outlook, Thunderbird, мобильными устройствами.

В списке бесплатных плагинов видел плагины для аутентификации через IMAP или LDAP сервер. При первом заходе нового пользователя создаётся его аккаунт. Выглядит интересно, особенно интеграция с IMAP. У Group-Office, кстати, есть свой почтовый сервер на базе postfix и dovecot. Там очень простая, базовая настройка без каких-либо дополнительных компонентов. Я для всех подобных продуктов рекомендую использовать отдельный внешний почтовый сервер.

Как уже сказал, возможности продукта расширяются плагинами. Какие-то стоят денег, какие-то бесплатные. Например, есть бесплатные плагины для OTP Authenticator, Oauth2 аутентификации, интеграции с Jitsi, DokuWiki и т.д.

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

Вообще, по набору возможностей и веб интерфейсу он мне напомнил Zimbra. Она хоть и считается больше почтовым сервером, но по факту это уже комбайн для совместной работы.

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

Для посмотреть развернуть можно в Docker в пару шагов:

# git clone https://github.com/Intermesh/docker-groupoffice
# cd docker-groupoffice
# docker compose up -d

И идём на 9000 порт сервера по ip адресу. При желании можно поставить из пакетов. Для Debian они собираются и поддерживаются. Более того, в документации разработчики рекомендуют использовать именно пакеты.

Видел в комментариях кто-то писал, что пользовался Group-Office. У кого есть опыт с этим продуктом, пожалуйста, поделитесь своим мнением о нём.

Сайт / Исходники / Docker версия

#groupware
Для того, чтобы получить быстрое представление о производительности системы, а тем более сравнить её с другой, можно воспользоваться простой утилитой sysbench. Во времена Centos её приходилось ставить либо вручную, либо из стороннего репозитория. В Debian 12 она живёт в базовой репе:

# apt install sysbench

Причём, я уже писал о ней раньше в контексте нагрузочных тестирований Mysql или Postgresql сервера. Это наиболее простое и поэтому популярное решение для подобных задач. Если тюните СУБД где-то на тесте, то возьмите на вооружение эту утилиту и делайте на ней прогоны.

А сейчас перейдёт к стандартным нагрузочным тестам системы. Для CPU, судя по man утилиты, есть только один тест - --cpu-max-prime, генератор простых чисел. Можно указать верхнюю границу чисел, а можно этого не делать. По умолчанию запускается в одном потоке на одном ядре CPU на 10 секунд с лимитом в 10000:

# sysbench cpu run

Смотрим на events per second и total number of events, чем больше, тем лучше.

Тест памяти, соответственно:

# sysbench memory run

Смотреть надо на Total operations или transferred MiB/sec. В абсолютных значениях это мало что скажет. Подойдёт для сравнения двух серверов.

С тестированием диска не всё очевидно и просто. Там уже имеет смысл заморочиться с параметрами, так надо учесть системный кэш, кэш гипервизора, если он есть, кэш рейд контроллера, если он используется и т.д. То есть надо немного разбираться в теме, иначе можно получить неверные представления о результатах теста. Как минимум, надо задать размер тестового файла больше оперативной памяти сервера и выбрать тип операций для теста. Например, запустим тест на последовательную запись суммарного объёма файлов в 10G:

# sysbench fileio --file-total-size=10G --file-test-mode=seqwr run

По умолчанию запись идёт в один поток. В результатах смотреть надо на Throughput written, MiB/s, total number of events. Тут ещё на Latency имеет смысл посмотреть. Важный параметр для дисков.

Посмотреть все доступные настройки можно так:

# sysbench fileio help

В целом, там более-менее всё понятно по описанию. Можно менять количество потоков, размер блоков, типы операций, использование флагов sync, dsync или direct. Если вам всё это не знакомо, имеет смысл изучить. Это нужная база для понимания работы в Linux с дисками.

После работы тестов на диск, остаются тестовые файлы. Их надо удалить либо вручную, либо автоматически:

# sysbench fileio --file-total-size=10G --file-test-mode=seqwr cleanup

Запускаете ту же команду, только на конце не run, а cleanup.

Такая вот простая и полезная утилита. Я во время написания заметки гонял её на двух разных VPS. По памяти и процу разница была примерно в 1,5-2 раза. А по диску почти идентично. Когда ты арендуешь виртуалку, невозможно оценить, насколько стоимость будет соотноситься с производительностью. Только на тестах можно это увидеть.

Sysbench, кстати, можно гонять и в Windows, в WSL. Я погонял на своём рабочем ноуте в виртуалке HyperV и в WSL. Тесты по CPU и Памяти идентичны в пределах стат погрешностей. Сделал несколько прогонов. Думал, что по диску будет разница, но тоже нет. Тесты последовательной записи проходят идентично. Другие не делал.

Исходники

#perfomance
​​На днях разработчики Angie анонсировали свой готовый Dashboard для мониторинга веб сервера через Prometheus и Grafana. Решил сразу его попробовать. Забегая вперёд скажу, что всё это существенно упрощает настройку мониторинга, который и так уже был на хорошем уровне в Angie. Стало просто отлично.

Напомню, что у Angie есть встроенный prometheus exporter. Включаем его так. Добавляем куда-нибудь location. Я обычно на ip адрес его вешаю в default сервер и ограничиваю доступ:

  location =/p8s {
    prometheus all;
    allow 127.0.0.1;
    allow 1.2.3.4;
    allow 4.3.2.1;
    deny all;
  }

И добавляем в секцию http:

include prometheus_all.conf;

Далее добавляем в prometheus:

scrape_configs:
- job_name: "angie"
scrape_interval: 15s
metrics_path: "/p8s"
static_configs:
- targets: ["1.2.3.4:80"]

Только убедитесь, что ваш веб сервер отдаёт метрики по http://1.2.3.4/p8s. Либо какой-то другой url используйте, который настроили.

Вот и всё. Теперь идём в свою Grafana и добавляем готовый дашборд. Вот он:

⇨  https://grafana.com/grafana/dashboards/20719-angie-dashboard

Дашборд полностью автоматизирован. Сам подхватывает все настройки из Angie. Покажу, как это работает. Допустим, вы хотите получать метрики по какому-то конкретному виртуальному хосту. Идём в него и добавляем в секцию server:

server {
server_name serveradmin.ru;
status_zone serveradmin.ru;
................
}

Перезапускаем Angie и переходим в Dashboard. В разделе HTTP Server Zones появится отдельная статистика по этому виртуальному хосту. То же самое можно сделать с отдельными location. Добавим отдельную зону в основной location и с php бэкендом:

location / {
status_zone main;
...............
}

или

location ~ \.php$ {
status_zone php;
...................
}

Идём в раздел HTTP Location Zones и смотрим там статистику по указанным location.

Статистика по бэкендам, зонам с лимитами тоже подхватывается автоматически, если они у вас настроены, и сразу видна в дашборде.

Сделано всё очень удобно. Мониторинг веб сервера настраивается максимально быстро и при этом очень функционально.

Отдельно напомню, что у Angie вся эта же статистика видна в веб интерфейсе Console Light. И так же доступна через модуль API. Я через него сделал шаблон для Zabbix с основными метриками. Шаблон по ссылке стоит рассматривать только как пример создания. Он был сделан на скорую руку. Я его у себя немного доделал, но новую версию не выкладывал. Уже не помню, какие там отличия. С выходом этого дашборда для графаны мне шаблоном для Zabbix заниматься не хочется. Довольно хлопотно всё это реализовывать в нём и не особо имеет смысл, раз уже всё сделано за нас. Графаной я и так постоянно пользуюсь в связке с Zabbix, и Prometheus тоже использую.

📌 Ссылки по теме:

⇨ Настройка панели Prometheus
⇨ Модуль API
⇨ Директива status_zone
⇨ Web Console Demo

Как по мне, возможностей бесплатного веб сервера Angie на текущий момент существенно больше, чем у бесплатного Nginx. И речь не только о мониторинге. Там есть много других удобств. Разница в функциональности тянет уже на отдельную заметку.

#angie #мониторинг #grafana
Не знаю, как вы, а я так и не привык к логам в journald. Уже и команды основные запомнил, но всё равно кажется каким-то неудобным интерфейс для просмотра логов через systemctl. Поэтому, когда настраиваю сервер на Debian, в обязательном порядке возвращаю туда rsyslog:

# apt install rsyslog

И сразу же делаю некоторые настройки, которые мне кажутся удобными. Во-первых, складываю логи cron в отдельный файл. Во-вторых, убираю логи почты из основного файла /var/log/syslog. Если на сервере идёт отправка почты, то она забивает весь этот файл. Потом неудобно в нём системные записи искать. Для всего этого делаю такие настройки в /etc/rsyslog.conf:

..................................
*.*;auth,authpriv.none,cron.none,mail.none   -/var/log/syslog
cron.*             -/var/log/cron.log
mail.*             -/var/log/mail.log
..................................

Мне интересно, много таких же ретроградов, которые предпочитают текстовые логи? Мне лично удобнее зайти в /var/log и открыть нужный лог файл, чтобы посмотреть информацию. Это кажется быстрее и удобнее, чем тыкаться в systemctl, указывать там службы, даты, с какого конца читать и т.д.:

# systemctl list-units --type=service
# journalctl -u ssh -r

Проще открыть текстовый файл и промотать куда надо. Ещё и не у всех служб есть логи в systemd. Тот же fail2ban всю основную информацию пишет в текстовый файл. По крайней мере это его поведение по умолчанию. Специально не проверял, можно ли его логи в journald отправить. С postfix, dovecot та же история. В итоге проще и удобнее всё в старых добрых текстовых файлах хранить и смотреть в одном месте - /var/log.

#logs
Давно уже посмотрел очень интересное видео про производительность сервера 1С, но всё откладывал заметку, потому что сразу не законспектировал. Автор очень хорошо подал материал и прошёлся по основным заблуждениям по этой теме. 1С в нашей стране - популярная тема, так что, думаю, многим будет интересно и полезно:

▶️ Из чего складывается производительность 1С и с чего начать расследование тормозов

Сделаю краткую выжимку основных моментов, чтобы вы понимали о чём там речь и стоит ли смотреть.

Если на сервере СУБД настроены все необходимые регламентные операции (обновление статистики, перестройка индексов, автокавкуум хорошо отлажен) и параметры адекватны железу, то это самое последнее место, куда следует лезть за поиском тормозов. Чаще всего тормозит что-то другое.

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

Скорость открытия конфигурации у разработчика вообще не показатель производительности сервера 1С. Конфигуратор может долго открываться по разным причинам.

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

Никакой разницы производительности сервера 1С в редакциях ПРОФ и КОРП нет. Там полностью одинаковые экзешники сервера.

RAGENT и RMNGR - это чёрные ящики. Полностью закрытый код, на работу которого вы никак влиять не можете. Весь код 1С выполняется в RPHOST. И тормозит именно ваш код.

Главный грех программиста - поиск по журналу регистраций на продуктовой базе. Это вешает RMNGR от большой нагрузки. Любую базу можно положить через поиск в журнале по неиндексированному полю.

🔥 Полнотекстовый поиск нужно обязательно отключать на базах более 2 Гб.

Очень часто на сервере 1С тормозит диск из-за каталога сеансовых данных. Он хранится на диске. Постоянно перезаписывается огромный объём данных. Его надо вынести куда-то на быстрый диск. То же самое для временных файлов пользователя, под которым работает 1С. Их тоже надо куда-то на быстрый диск поместить. Всё это делается средствами операционной системы. В самой 1С настроек на этот счёт нет.

В dt можно выгрузить базу любого объёма. Никаких ограничений нет. Если не получается выгрузить базу, скорее всего у вас не хватает места на диске на сервере 1С для этого.

Очень часто тормоза дают фоновые задания. Их надо аккуратно настраивать.

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

#1С
​​Последнее время WireGuard стал наиболее распространённым решением для построения VPN туннелей. Его используют и как самостоятельный продукт, и в составе каких-то готовых решений. Решил сделать подборку полезных заметок по данной теме, которые уже были ранее на канале.

 📌 Начну с веб панелей для разворачивания и управления сервером:

▪️ Wg-easy - очень простая в установке и настройке панель. Позволяет только управлять пользователями. Кому ничего другого и не надо - идеальный вариант.

▪️ WireGuard Portal - более функциональная панель с возможностью различных типов аутентификации (OAuth, LDAP) и хранения своих данных (различные СУБД).

▪️ Subspace - простая веб панель для управления пользователями. В качестве SSO (Single Sign-On) поддерживает G Suite и Okta. Всё остальное +- как у wg-easy, только интерфейс чуть поприятнее.

 📌  Клиенты:

▪️ TunnlTo - очень удобное приложение клиента WG, которое позволяет поднимать один или несколько туннелей и управлять приложениями и маршрутами, направляя их в заданные туннели.

 📌  Платформы для построения VPN сетей на базе WG с управлением пользователями, доступом, файрволами и т.д.:

▪️ Netmaker - популярное self-hosted решение для построения многофункциональных VPN сетей как для site-to-site соединений, так и для peer-to-peer. Всё управление через веб интерфейс: мониторинг сетей и хостов, списки доступа к сетям и хостам, пользователи и группы доступа.

▪️ Firezone - распределённая VPN сеть на базе WG с load balancing и failover. Поддерживает peer-to-peer соединения, различные способы аутентификации (email, okta, google).

▪️ Tailscale - платный сервис с бесплатным тарифным планом. Представляет из себя децентрализованную VPN-сеть на базе WG по принципу mesh-сети.

 📌  Другой софт на базе WG:

▪️ Wireproxy - подключается как WG клиент к существующей VPN сети и сразу поднимает у себя socks5/http прокси. Другие клиенты сети могут использовать её как точку выхода.

▪️ Onetun - программа, которая умеет подключаться к существующей WG сети и пробрасывать локальный порт на любую другую машину WG сети. Не требует установки и админстративных прав. Представляет из себя один бинарник под все популярные системы.

▶️ Очень подробный разбор темы настройки WireGuard для новичков:
https://www.youtube.com/watch?v=inx_dVfjadI

#wireguard #подборка
Расскажу про одну историю с Микротиком, которая недавно у меня произошла. Есть небольшой филиал компании, который сидит в бизнес-центре, где до сих пор нет возможности подключить скоростной интернет по адекватной цене. Они сидят много лет на тарифе 10 Мбит/с. Для работы, в принципе, хватает. Вообще, это дикость, но я до сих пор с таким сталкиваюсь в разных местах.

Очень много лет назад туда был куплен легендарный MikroTik RB2011UIAS-2HND-IN. Такой красный, с рогами, 8-ю портами и двумя switch чипами по 4 порта на каждый. Сейчас его уже сняли с продажи и заменили более современной и мощной моделью. Этот Микротик выступал в роли шлюза, подключаясь к OpenVPN серверу. На такой ширине канала его производительности хватало за глаза.

Недавно ответственный человек оттуда сказал, что провайдер просит заменить сетевые настройки, которые он в итоге и изменил. Я обновил все списки с этим IP и закрыл тему. Дальше начались странности. В мониторинг стали прилетать алерты по ночам об очень высокой нагрузке на CPU. Сначала напрягся, подумал, не случилось ли что неладное. Этот Микрот вообще не беспокоил такими сообщениями никогда.

Полез в Zabbix и ELK смотреть графики и логи. В мониторинге увидел, что CPU улетает в потолок во время ночных бэкапов. Оттуда много информации приходится тянуть. Этот процесс длится несколько часов. В логах периодически вижу отвал VPN соединения. Думаю, что за ерунда.

Стал смотреть графики загрузки каналов. Увидел, что по OpenVPN соединению стал бегать трафик 30 Мбит/с и это потолок для данной железки. Больше она тянуть по OpenVPN не может. Судя по всему изменился тариф на более скоростной. И чтобы получить скорость по VPN выше, чем 30 Мбит/с, надо менять железку. Особой нужды в этом нет. Скорее всего ограничу скорость на интерфейсе через Simple queue. У меня есть статья по этой теме:

Ограничение скорости в Mikrotik с помощью QUEUE

Написал давно, но с тех пор в 6-й версии ROS особо ничего не менялось. Сам постоянно туда заглядываю, когда надо что-то простое настроить в QOS. Вот ещё пару ссылок по этой теме:

Централизованный сбор логов Mikrotik в ELK Stack
Мониторинг Mikrotik в Zabbix

Маршрутизаторы эти появились лет 10 назад и до сих пор благополучно работают во многих местах. Как ни крути, а Mikrotik продаёт качественное железо.

#mikrotik
Media is too big
VIEW IN TELEGRAM
Уже старенькая известная песня и клип - Все любят программистов (Громкие рыбы). Странно, что я его тут ни разу не публиковал. У меня она есть в плейлисте, иногда слушаю. В ней хоть и идёт речь о программистах, но в широком понимании этого слова среднестатистическим человеком, для которого любой айтишник это программист, который может починить "мой сломанный айтюнс".

Прикольно снято и спето. Понравилось.

#юмор
Начиная с пятницы, в сети наперебой постили новости с шокирующей уязвимостью в OpenSSH сервере CVE-2024-3094, которая позволяет получить доступ к SSH-серверу без аутентификации (на самом деле это не так). Якобы ей подвержены почти все современные системы. Я всю пятницу и субботу в сборах и дороге был, так что только вчера смог спокойно сесть и разобраться, что там случилось.

Сразу скажу, что если у вас Debian 11 или 12 можно вообще не переживать и не торопиться обновляться. Никаких проблем с найденной уязвимостью в этих системах нет. Заражённый пакет успел приехать только в тестовый репозиторий sid.

Расскажу своими словами, в чём там дело. OpenSSH сервер использует библиотеку liblzma. Насколько я понял, не все сервера её используют, но большая часть. Проверить можно так:

# ldd "$(command -v sshd)" | grep liblzma
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f4f01c9d000)

Уязвимой является версия библиотеки 5.6.0 и 5.6.1. Проверяем установленную у себя версию через пакетный менеджер. Для deb вот так:

# dpkg -l | grep liblzma
ii liblzma5:amd64         5.4.1-0.2           amd64    XZ-format compression library

Или напрямую через просмотр версии xz:

# xz --version
xz (XZ Utils) 5.4.1
liblzma 5.4.1

В Debian 12 указанной уязвимости нет, можно не переживать. В security-tracker есть отдельная страница по этой уязвимости. Там видно, что версия 5.6.1 была только в sid.

В rpm дистрибутивах нужно проверять версию пакета xz-libs:

# rpm -qa | grep xz-libs
xz-libs-5.2.4-4.el8_6.x86_64

Для 8-й ветки форков RHEL проблема тоже неактуальна. 9-й у меня нигде нет, там не проверял.

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

#linux #security
🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлый год.

Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые возможности по настройке (не только публикацию историй): https://t.me/boost/srv_admin.

📌 Больше всего просмотров:
◽️Бесплатные курсы от Postgres Professional (12790)
◽️Подборка авторских IT роликов (11920)
◽️Сервис по генерации конфигов Nginx (11025)

📌 Больше всего комментариев:
◽️Evolution free tier - виртуальная машина бесплатно навсегда (153)
◽️Скрипт для бэкапа файловых баз 1С (112)
◽️Memos - self-hosted сервис заметок (95)

📌 Больше всего пересылок:
◽️Бесплатные курсы от Postgres Professional (955)
◽️Готовые профили для Wireshark (859)
◽️Шпаргалка по поиску свободного места в Linux (720)
◽️Подборка с обучающими материалами по GIT (606)

📌 Больше всего реакций:
◽️Готовые профили для Wireshark (204)
◽️Бесплатные курсы от Postgres Professional (192)
◽️Evolution free tier - виртуальная машина бесплатно навсегда (180)
◽️Запуск виртуалок Windows через Docker (179)
◽️Утилита duf как замена df (175)

#топ
​​Я немного слежу за более-менее известными программами и сервисами для удалённого управления компьютерами. Посмотреть о них заметки можно по соответствующему тэгу #remote на канале. На днях читал статью на хабре, где крупная бюджетная организация выбирала себе платную программу для этих задач. Все упомянутые там сервисы мне знакомы, кроме одного - PRO32 Connect, на котором в итоге остановился выбор автора статьи.

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

PRO32 Connect - это бывший getscreen.me, который в какой-то момент стал международным, а для российского рынка сделал отдельный сервис getscreen.ru. Через некоторое время этот сервис переименовали в pro32connect.ru. Теперь это его итоговое название, под которым осуществляются продажи в РФ.

Я зарегистрировался в pro32connect.ru. Там есть бесплатный тарифный план на одно устройство, которым можно управлять. Интерфейс почти 1 в 1 как у getscreen.me, которым я пользуюсь уже много лет. Мне очень нравится этот сервис. Всё управление через браузер. Несколько лет назад я писал обзор на этот сервис, да и тут заметки о нём были. С тех пор так им и пользуюсь сам.

Это качественный софт родом из Казани (если не ошибаюсь). Написан уже давно полностью с нуля без всяких переклеиваний шильдиков на open source продуктах. Ещё до всей истории с активным импортозамещением. Именно поэтому я пишу эту заметку. Мне не трудно прорекламировать хороший софт. У меня никто не заказывал обзор продукта, как и многих других, о которых я иногда пишу (tegu, angie, kaspersky и т.д.). Если мне нравится продукт, то с удовольствием о нём напишу, чтобы другие тоже пользовались.

Так что если ищите продукт для удалённого управления компьютерами, обратите внимание. Цены там нормальные, как для личного пользования (200 ₽ в месяц за 5 устройств), так и для бизнеса (от 13 000 ₽ / в год за 40 устройств). Возможностей у этого сервиса очень много. Можно потестировать на бесплатном тарифном плане, либо запросить триал.

#remote
​​С удивлением недавно узнал, что известный и популярный ISC DHCP Server с 2022 года не развивается и не поддерживается. Вот соответствующая новость на сайте разработчиков:

ISC DHCP Server has reached EOL

Я начинал работу с DHCP серверами в Linux как раз с этим сервером. Его базовая настройка была простая и быстрая. Один конфиг с несколькими опциями и дальше настройка подсетей и резервирований. Лог файл и выданные leases в отдельных текстовых файлах. Было удобно поддерживать и дебажить.

Со временем переехал на Dnsmasq, так как он объединяет службы dns и dhcp, что для небольших сетей удобно, поэтому за isc-dhcp следить перестал. Разработчики перестали его развивать, потому что с их слов его код труден для тестирования и внедрения нововведений. Поэтому они прекратили его поддержку, а всё развитие продолжили в новом проекте Kea DHCP, внедрив туда:

модульную структуру, где DHCPv4, DHCPv6, DDNS службы работают независимо друг от друга;
изменение конфигурации на лету через запросы к REST API;
конфигурация в json формате;
графический дашборд через web интерфейс;
поддержку разных бэкендов для хранения конфигурации: MySQL, PostgreSQL, Cassandra или CSV файл;
возмжоность настроить отказоустойчивую конфигурацию;

Сразу отмечу, что для Kea есть пакет netbox-kea-dhcp для интеграции с известным сервисом netbox.

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

▪️ kea - как я понял общий пакет, который в зависимостях тянет все остальные
▪️ kea-admin - утилиты управления
▪️ kea-common - общие библиотеки сервера
▪️ kea-ctrl-agent - служба REST API
▪️ kea-dhcp-ddns-server - служба DDNS
▪️ kea-dhcp4-server - IPv4 DHCP сервер
▪️ kea-dhcp6-server - IPv6 DHCP сервер

Есть инструмент для автоматической миграции с isc-dhcp в одно действие. Примерно так:

# keama -4 -i /etc/dhcp/dhcp4.conf -o /etc/kea/kea-dhcp4.conf

Dashboard для Kea реализован на базе отдельного продукта от тех же авторов - Stork. Помимо непосредственно веб интерфейса с информацией о работе сервисов, stork предоставляет экспорт метрик в prometheus и готовые дашборды для Grafana.

Все описанные возмжоности представлены в open source версии. Я посмотрел примеры настроек. Там всё относительно просто. Не сложнее, чем было в isc-dhcp. Вместе с веб интерфейсом, метриками и дашбордами это выглядит наиболее привлекательным dhcp сервером на текущий момент. При случае попробую его натсроить вместо dnsmasq.

#network #dhcp
​​Заглядывал на днях на один из серверов 1С, который настраивал примерно 3 года назад. Купил туда бюджетные серверные диски KINGSTON SEDC500M 960G в RAID1. Стоят они очень умеренно, а по ресурсу значительно преворсходят десктопные модели. Раньше там каждые год-два меняли SSD. В принципе, хватало производительности, но при интенсивной записи во время дампов баз всё подтормаживало. С этими стало намного лучше.

Я, собственно, зашёл проверить ресурс и статистику по записи. Просто любопытно стало. Решил и с вами поделиться цифрами. У меня все метрики SMART собирал Zabbix, а основные выведены на дашборд. Так что удобно оценить разом.

Основные метрики, за которыми следил:

▪️ Flash_Writes_GiB - количество сырых данных, записанных в NAND flash.
▪️ Lifetime_Writes_GiB - количество записанных данных, прошедших через ATA интерфейс.
▪️ Lifetime_Reads_GiB - количество прочитанных данных.
▪️ SSD_Life_Left - остаток ресурса жизни SSD.

По записи для обоих дисков получились примерно одинаковые значения:

sdb: ID 233 Flash_Writes_GiB 515.61 TB
sdb: ID 241 Lifetime_Writes_GiB 431.86 TB

sdc: ID 233 Flash_Writes_GiB 516.49 TB
sdc: ID 241 Lifetime_Writes_GiB 432.73 TB

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

А вот по чтению данные сильно разнятся:

sdb: ID 242 Lifetime_Reads_GiB 205.54 TB
sdc: ID 242 Lifetime_Reads_GiB 148.85 TB

С одного диска данные читались на четверть чаще, чем с другого. Рейд организован средствами mdadm. То есть обычный софтовый RAID1.

Ну и по ресурсу там запас ещё огромный. SMART показывает 92%. За последние два года изменение с 97% до 92%. Если смарт не врёт, то скорее заменят сервер с дисками, чем они израсходуют свой ресурс. В день там примерно по 400 GB пишется.

Мониторится всё это через парсинг вывода smartctl:

# smartctl -A /dev/sdb

Примерный вариант настройки можно в моей статье посмотреть:

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

#железо #zabbix
Системы оркестрации контейнеров популярны. Но как тестировать их надежность?

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

💬 Приходите на вебинар от OTUS. На этом открытом уроке вы:

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

📆 Занятие пройдёт 3 апреля в 19:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes». Спикер — ведущий DevOps-инженер. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников.

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок — https://clck.ru/39pfMR

🔥 Для всех, кто запишется на бесплатный вебинар этого курса, будет доступна спец.цена на курс — обсудите свое обучение с менеджерами OTUS.
​​Увидел упоминание браузера Thorium в контексте того, что он типа очень быстрый. Заинтересовала информация, поэтому решил попробовать. Мне просто нравится различные браузеры пробовать. Я когда-то писал про LibreWolf на базе Firefox. И я им реально с тех пор пользуюсь как второстепенным браузером под различные задачи. И на работчем ноуте стоит, и на некоторые виртуалки ставлю portable версию.

Возвращаюсь к Thorium. Это форк Chromium, только якобы с какими-то флагами оптимизации, указанными при сборке. За счёт этого получается прирост производительности, особенно на современных компьютерах, так как оригинальный Chromium и Chrome поддерживают огромное количество старого железа и не могут позволить себе собираться с поддержкой всех современных технологий в процессорах.

Браузер собрает какой-то энтузиаст-одиночка под все современные системы. И под Windows, и под Linux. Меня немного удивило наличие отзывов в инетренте, когда я искал информацию по нему, на тему того, что браузер реально быстрый. Чуть ли не быстрее всех остальных. Стало любопытно попробовать. Решил взять чистую виртуалку с Windows 11, скачал туда сборку с флагами под набор инструкций AVX, так как тестовый комп AVX2 судя про всему не знает, так как эта сборка не запустилась.

В сравнение к нему взял голые Edge и Chrome, как наиболее популярные браузеры. И прогнал на них поочерёдно набор тестов:

https://browserbench.org/Speedometer3.0
https://browserbench.org/JetStream
https://browserbench.org/MotionMark1.3

Результаты получились следующие.

Edge: 7,06 -=- 134,5 -=- 712,91
Chrome: 6,85 -=- 130,5 -=- 727,81
Thorium AVX: 7,31 -=- 131,3 -=- 781,21

В целом, у Thorium реально результаты лучше. Не сказать, что намного, но Chrome он однозначно по всем тестам обходит. Возможно версия с AVX2 ещё быстрее будет. Поленился тестировать. Тесты долгие, много времени уходит.

Ко всему прочему, у Thorium есть portable версия. Получился неплохой браузер для тех, кто предпочитает браузеры на базе Chromium. Что-то с ним реально сделали, что он немного ускорился. Там помимо флагов для оптимизации при сборке, есть некоторые другие изменения. Подробности в репозитории, не буду тут раздувать заметку. Браузер инетресный, стоит обратить внимание.

Исходники / Сайт

#разное