Для того, чтобы получить быстрое представление о производительности системы, а тем более сравнить её с другой, можно воспользоваться простой утилитой sysbench. Во времена Centos её приходилось ставить либо вручную, либо из стороннего репозитория. В Debian 12 она живёт в базовой репе:
Причём, я уже писал о ней раньше в контексте нагрузочных тестирований Mysql или Postgresql сервера. Это наиболее простое и поэтому популярное решение для подобных задач. Если тюните СУБД где-то на тесте, то возьмите на вооружение эту утилиту и делайте на ней прогоны.
А сейчас перейдёт к стандартным нагрузочным тестам системы. Для CPU, судя по man утилиты, есть только один тест -
Смотрим на events per second и total number of events, чем больше, тем лучше.
Тест памяти, соответственно:
Смотреть надо на Total operations или transferred MiB/sec. В абсолютных значениях это мало что скажет. Подойдёт для сравнения двух серверов.
С тестированием диска не всё очевидно и просто. Там уже имеет смысл заморочиться с параметрами, так надо учесть системный кэш, кэш гипервизора, если он есть, кэш рейд контроллера, если он используется и т.д. То есть надо немного разбираться в теме, иначе можно получить неверные представления о результатах теста. Как минимум, надо задать размер тестового файла больше оперативной памяти сервера и выбрать тип операций для теста. Например, запустим тест на последовательную запись суммарного объёма файлов в 10G:
По умолчанию запись идёт в один поток. В результатах смотреть надо на Throughput written, MiB/s, total number of events. Тут ещё на Latency имеет смысл посмотреть. Важный параметр для дисков.
Посмотреть все доступные настройки можно так:
В целом, там более-менее всё понятно по описанию. Можно менять количество потоков, размер блоков, типы операций, использование флагов sync, dsync или direct. Если вам всё это не знакомо, имеет смысл изучить. Это нужная база для понимания работы в Linux с дисками.
После работы тестов на диск, остаются тестовые файлы. Их надо удалить либо вручную, либо автоматически:
Запускаете ту же команду, только на конце не
Такая вот простая и полезная утилита. Я во время написания заметки гонял её на двух разных VPS. По памяти и процу разница была примерно в 1,5-2 раза. А по диску почти идентично. Когда ты арендуешь виртуалку, невозможно оценить, насколько стоимость будет соотноситься с производительностью. Только на тестах можно это увидеть.
Sysbench, кстати, можно гонять и в Windows, в WSL. Я погонял на своём рабочем ноуте в виртуалке HyperV и в WSL. Тесты по CPU и Памяти идентичны в пределах стат погрешностей. Сделал несколько прогонов. Думал, что по диску будет разница, но тоже нет. Тесты последовательной записи проходят идентично. Другие не делал.
⇨ Исходники
#perfomance
# 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
GitHub
GitHub - akopytov/sysbench: Scriptable database and system performance benchmark
Scriptable database and system performance benchmark - akopytov/sysbench
На днях разработчики Angie анонсировали свой готовый Dashboard для мониторинга веб сервера через Prometheus и Grafana. Решил сразу его попробовать. Забегая вперёд скажу, что всё это существенно упрощает настройку мониторинга, который и так уже был на хорошем уровне в Angie. Стало просто отлично.
Напомню, что у Angie есть встроенный prometheus exporter. Включаем его так. Добавляем куда-нибудь location. Я обычно на ip адрес его вешаю в default сервер и ограничиваю доступ:
И добавляем в секцию http:
Далее добавляем в prometheus:
Только убедитесь, что ваш веб сервер отдаёт метрики по http://1.2.3.4/p8s. Либо какой-то другой url используйте, который настроили.
Вот и всё. Теперь идём в свою Grafana и добавляем готовый дашборд. Вот он:
⇨ https://grafana.com/grafana/dashboards/20719-angie-dashboard
Дашборд полностью автоматизирован. Сам подхватывает все настройки из Angie. Покажу, как это работает. Допустим, вы хотите получать метрики по какому-то конкретному виртуальному хосту. Идём в него и добавляем в секцию server:
Перезапускаем Angie и переходим в Dashboard. В разделе HTTP Server Zones появится отдельная статистика по этому виртуальному хосту. То же самое можно сделать с отдельными location. Добавим отдельную зону в основной location и с php бэкендом:
или
Идём в раздел HTTP Location Zones и смотрим там статистику по указанным location.
Статистика по бэкендам, зонам с лимитами тоже подхватывается автоматически, если они у вас настроены, и сразу видна в дашборде.
Сделано всё очень удобно. Мониторинг веб сервера настраивается максимально быстро и при этом очень функционально.
Отдельно напомню, что у Angie вся эта же статистика видна в веб интерфейсе Console Light. И так же доступна через модуль API. Я через него сделал шаблон для Zabbix с основными метриками. Шаблон по ссылке стоит рассматривать только как пример создания. Он был сделан на скорую руку. Я его у себя немного доделал, но новую версию не выкладывал. Уже не помню, какие там отличия. С выходом этого дашборда для графаны мне шаблоном для Zabbix заниматься не хочется. Довольно хлопотно всё это реализовывать в нём и не особо имеет смысл, раз уже всё сделано за нас. Графаной я и так постоянно пользуюсь в связке с Zabbix, и Prometheus тоже использую.
📌 Ссылки по теме:
⇨ Настройка панели Prometheus
⇨ Модуль API
⇨ Директива status_zone
⇨ Web Console Demo
Как по мне, возможностей бесплатного веб сервера Angie на текущий момент существенно больше, чем у бесплатного Nginx. И речь не только о мониторинге. Там есть много других удобств. Разница в функциональности тянет уже на отдельную заметку.
#angie #мониторинг #grafana
Напомню, что у 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:
И сразу же делаю некоторые настройки, которые мне кажутся удобными. Во-первых, складываю логи cron в отдельный файл. Во-вторых, убираю логи почты из основного файла
..................................
*.*;auth,authpriv.none,cron.none,mail.none -/var/log/syslog
cron.* -/var/log/cron.log
mail.* -/var/log/mail.log
..................................
Мне интересно, много таких же ретроградов, которые предпочитают текстовые логи? Мне лично удобнее зайти в
Проще открыть текстовый файл и промотать куда надо. Ещё и не у всех служб есть логи в systemd. Тот же fail2ban всю основную информацию пишет в текстовый файл. По крайней мере это его поведение по умолчанию. Специально не проверял, можно ли его логи в journald отправить. С postfix, dovecot та же история. В итоге проще и удобнее всё в старых добрых текстовых файлах хранить и смотреть в одном месте -
#logs
# 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С
▶️ Из чего складывается производительность 1С и с чего начать расследование тормозов
Сделаю краткую выжимку основных моментов, чтобы вы понимали о чём там речь и стоит ли смотреть.
◽Если на сервере СУБД настроены все необходимые регламентные операции (обновление статистики, перестройка индексов, автокавкуум хорошо отлажен) и параметры адекватны железу, то это самое последнее место, куда следует лезть за поиском тормозов. Чаще всего тормозит что-то другое.
◽В большом количестве случаев причина тормозов 1С - клиентские компьютеры. Нехватка ресурсов, вирусы, антивирусы и т.д. Особенно, если работа идёт в терминальном сервере. Сами эти терминальники очень часто тормозят под пользовательской нагрузкой.
◽Скорость открытия конфигурации у разработчика вообще не показатель производительности сервера 1С. Конфигуратор может долго открываться по разным причинам.
◽Никакие настройки сервера 1С не увеличивают его производительность. Он всегда работает с максимальной производительностью. Он может зависать по разным причинам, но ускорить его работу какой-то настройкой невозможно. Таких настроек нет.
◽Никакой разницы производительности сервера 1С в редакциях ПРОФ и КОРП нет. Там полностью одинаковые экзешники сервера.
◽RAGENT и RMNGR - это чёрные ящики. Полностью закрытый код, на работу которого вы никак влиять не можете. Весь код 1С выполняется в RPHOST. И тормозит именно ваш код.
◽Главный грех программиста - поиск по журналу регистраций на продуктовой базе. Это вешает RMNGR от большой нагрузки. Любую базу можно положить через поиск в журнале по неиндексированному полю.
🔥 Полнотекстовый поиск нужно обязательно отключать на базах более 2 Гб.
◽Очень часто на сервере 1С тормозит диск из-за каталога сеансовых данных. Он хранится на диске. Постоянно перезаписывается огромный объём данных. Его надо вынести куда-то на быстрый диск. То же самое для временных файлов пользователя, под которым работает 1С. Их тоже надо куда-то на быстрый диск поместить. Всё это делается средствами операционной системы. В самой 1С настроек на этот счёт нет.
◽В dt можно выгрузить базу любого объёма. Никаких ограничений нет. Если не получается выгрузить базу, скорее всего у вас не хватает места на диске на сервере 1С для этого.
◽Очень часто тормоза дают фоновые задания. Их надо аккуратно настраивать.
В видео, соответственно, всё это подробно, с примерами разобрано. Мне очень понравилось, рекомендую. Конкретное с наглядными примерами повествование.
#1С
YouTube
Из чего складывается производительность 1С и с чего начать расследование тормозов
Видео с конференции для специалистов 1С "Желтая субмарина"
Спикер: Антон Дорошкевич, руководитель ИТ-направления «ИнфоСофт»
Быстродействие 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 #подборка
📌 Начну с веб панелей для разворачивания и управления сервером:
▪️ 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
Очень много лет назад туда был куплен легендарный 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
Server Admin
Ограничение скорости (qos) в Микротик с помощью queues
Настройка qos в mikrotik с помощью queue на примере ограничения скорости по ip и приоритизации sip и http трафика.
Media is too big
VIEW IN TELEGRAM
Уже старенькая известная песня и клип - Все любят программистов (Громкие рыбы). Странно, что я его тут ни разу не публиковал. У меня она есть в плейлисте, иногда слушаю. В ней хоть и идёт речь о программистах, но в широком понимании этого слова среднестатистическим человеком, для которого любой айтишник это программист, который может починить "мой сломанный айтюнс".
Прикольно снято и спето. Понравилось.
#юмор
Прикольно снято и спето. Понравилось.
#юмор
Начиная с пятницы, в сети наперебой постили новости с шокирующей уязвимостью в OpenSSH сервере CVE-2024-3094, которая позволяет получить доступ к SSH-серверу без аутентификации (на самом деле это не так). Якобы ей подвержены почти все современные системы. Я всю пятницу и субботу в сборах и дороге был, так что только вчера смог спокойно сесть и разобраться, что там случилось.
Сразу скажу, что если у вас Debian 11 или 12 можно вообще не переживать и не торопиться обновляться. Никаких проблем с найденной уязвимостью в этих системах нет. Заражённый пакет успел приехать только в тестовый репозиторий sid.
Расскажу своими словами, в чём там дело. OpenSSH сервер использует библиотеку liblzma. Насколько я понял, не все сервера её используют, но большая часть. Проверить можно так:
Уязвимой является версия библиотеки 5.6.0 и 5.6.1. Проверяем установленную у себя версию через пакетный менеджер. Для deb вот так:
Или напрямую через просмотр версии xz:
В Debian 12 указанной уязвимости нет, можно не переживать. В security-tracker есть отдельная страница по этой уязвимости. Там видно, что версия 5.6.1 была только в sid.
В rpm дистрибутивах нужно проверять версию пакета xz-libs:
Для 8-й ветки форков RHEL проблема тоже неактуальна. 9-й у меня нигде нет, там не проверял.
Вообще, история с этой уязвимостью очень любопытная. На самом деле она позвоялет выполнить произвольный код в системе, не оставляя следов в логах sshd. Подробный разбор работы есть на opennet. Сделано всё очень мудрёно и запутанно не без использования bash портянки, которая выглядит как обфускация. А обнаружили уязвимость случайно, потому что sshd стал чуток медленнее работать, чем раньше. А сколько таких уязвимостей есть в системах, которые ещё никто случайно не заметил?
#linux #security
Сразу скажу, что если у вас 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
www.opennet.ru
Разбор логики активации и работы бэкдора в пакете xz
Доступны предварительные результаты обратного инжиниринга вредоносного объектного файла, встроенного в liblzma в результате кампании по продвижению бэкдора в пакет xz. Бэкдор затрагивает только системы x86_64 на базе ядра Linux и Си-библиотеки Glibc, в которых…
🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлый год.
Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые возможности по настройке (не только публикацию историй): 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)
#топ
Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые возможности по настройке (не только публикацию историй): 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
Решил посмотреть, что это такое. Впервые услышал это название. Истрия этого сервиса немного запутанная. Я не сразу понял, кто это такие. Когда разобрался, решил сделать заметку, чтобы упростить задачу остальным, кто тоже будет выбирать. К тому же сервис этот на самом деле старый и известный. Я сам им давно пользуюсь.
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 в одно действие. Примерно так:
Dashboard для Kea реализован на базе отдельного продукта от тех же авторов - Stork. Помимо непосредственно веб интерфейса с информацией о работе сервисов, stork предоставляет экспорт метрик в prometheus и готовые дашборды для Grafana.
Все описанные возмжоности представлены в open source версии. Я посмотрел примеры настроек. Там всё относительно просто. Не сложнее, чем было в isc-dhcp. Вместе с веб интерфейсом, метриками и дашбордами это выглядит наиболее привлекательным dhcp сервером на текущий момент. При случае попробую его натсроить вместо dnsmasq.
#network #dhcp
⇨ 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:
Примерный вариант настройки можно в моей статье посмотреть:
⇨ Настройка мониторинга SMART жесткого диска в zabbix
#железо #zabbix
Я, собственно, зашёл проверить ресурс и статистику по записи. Просто любопытно стало. Решил и с вами поделиться цифрами. У меня все метрики 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.
Таким вопросом задаются не только 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. Что-то с ним реально сделали, что он немного ускорился. Там помимо флагов для оптимизации при сборке, есть некоторые другие изменения. Подробности в репозитории, не буду тут раздувать заметку. Браузер инетресный, стоит обратить внимание.
⇨ Исходники / Сайт
#разное
Возвращаюсь к 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. Что-то с ним реально сделали, что он немного ускорился. Там помимо флагов для оптимизации при сборке, есть некоторые другие изменения. Подробности в репозитории, не буду тут раздувать заметку. Браузер инетресный, стоит обратить внимание.
⇨ Исходники / Сайт
#разное
Как быстро и малыми усилиями попытаться выяснить, почему что-то тормозит в php коде сайта? Расскажу, с чего уместнее всего начать расследование, если вы используете php-fpm. Если нет каких-то особых требований, то лично я всегда исользую именно его.
У него есть две простые настройки, которые можно применить в нужном пуле, когда проводите расследование:
Таймаут выставляете под свои требования. Если сайт в целом тормозной (bitrix, админка wordpress), то 1 секунда слишком малый интервал, но в идеале хочется, чтобы весь код выполнялся быстрее этого времени.
Далее необходимо перезаустить php-fpm и идти смотреть лог:
В логе запросов будет не только информация о скрипте, который долго выполняется, но и его трассировака. Она будет включать в себя все инклюды и функции. То, что было вызвано сначала, будет внизу трейса, последняя функция - в самом верху. Причём верхней функцией будет та, что выполнялась в момент наступления времени, указанного в request_slowlog_timeout. Часто именно она и причина тормозов.
Разобраться во всём этом не такая простая задача, но в целом выполнимая даже админом. Самое главное, что иногда можно сразу получить подсказку, которая ответит на ворос о том, что именно томозит. Бывает не понятно, какой именно запрос приводит к выполнению того или иного скрипта. Нужно сопоставить по времени запрос в access.log веб сервера и slowlog php-fpm.
Очень часто тормозят какие-то заросы к внешним сервисам. Они могут делаться, к примеру, через curl_exec. И вы это сразу увидите в slowlog в самом верху трейса. Нужно будет только пройтись по функуциям и зависимостям, и найти то место, откуда функция с curl вызывается. Также часто в самом верху трейса можно увидеть функцию mysqli_query или что-то в этом роде. Тогда понятно, что тормозят запросы к базе.
По факту это самый простой инструмент, который имеет смысл использовать в самом начале разборов. Зачастую с его помощью можно сразу найти проблему. Ну а если нет, то можно подключать strace и смотреть более детально, что там внутри происходит. Но это уже сложнее, хотя какие-то простые вещи тоже можно сразу отловить. Тот же внешний тормозящий запрос тоже будет виден сразу.
#php #webserver #perfomance
У него есть две простые настройки, которые можно применить в нужном пуле, когда проводите расследование:
slowlog = /var/log/php-fpm/site01.ru.slow.log
request_slowlog_timeout = 1s
Таймаут выставляете под свои требования. Если сайт в целом тормозной (bitrix, админка wordpress), то 1 секунда слишком малый интервал, но в идеале хочется, чтобы весь код выполнялся быстрее этого времени.
Далее необходимо перезаустить php-fpm и идти смотреть лог:
# systemctl restart php8.0-fpm
В логе запросов будет не только информация о скрипте, который долго выполняется, но и его трассировака. Она будет включать в себя все инклюды и функции. То, что было вызвано сначала, будет внизу трейса, последняя функция - в самом верху. Причём верхней функцией будет та, что выполнялась в момент наступления времени, указанного в request_slowlog_timeout. Часто именно она и причина тормозов.
Разобраться во всём этом не такая простая задача, но в целом выполнимая даже админом. Самое главное, что иногда можно сразу получить подсказку, которая ответит на ворос о том, что именно томозит. Бывает не понятно, какой именно запрос приводит к выполнению того или иного скрипта. Нужно сопоставить по времени запрос в access.log веб сервера и slowlog php-fpm.
Очень часто тормозят какие-то заросы к внешним сервисам. Они могут делаться, к примеру, через curl_exec. И вы это сразу увидите в slowlog в самом верху трейса. Нужно будет только пройтись по функуциям и зависимостям, и найти то место, откуда функция с curl вызывается. Также часто в самом верху трейса можно увидеть функцию mysqli_query или что-то в этом роде. Тогда понятно, что тормозят запросы к базе.
По факту это самый простой инструмент, который имеет смысл использовать в самом начале разборов. Зачастую с его помощью можно сразу найти проблему. Ну а если нет, то можно подключать strace и смотреть более детально, что там внутри происходит. Но это уже сложнее, хотя какие-то простые вещи тоже можно сразу отловить. Тот же внешний тормозящий запрос тоже будет виден сразу.
#php #webserver #perfomance
Услышал неожиданную и новую для себя информацию. Нельзя последовательно соединить две и более rj45 розетки для того, чтобы пользоваться только одной из них одновременно. Работать будет только последняя розетка. Спорить не стал, но слегка удивился, так как для меня это неочевидная информация. К тому же я сам у себя в доме электрические розетки собирал и некоторые из них соединялись последовательно. То же самое для температурных датчиков делал, которые соединял последовательно на шине от контроллера. То есть для меня такая схема подключения выглядит вполне привычной. Я бы даже не подумал, что тут есть какой-то нюанс.
Полез в интернет за подробностями и действительно нашёл подтверждение этому. Последовательно соединять ethernet розетки нельзя, даже если будет использоваться только одна. Если подключиться к розетке посередине, то тот конец, что идёт до дальней розетки, будет отражать сигнал. Это будет приводить к помехам в сети, соединение будет либо постоянно обрываться, либо вообще не установится.
Надо либо отдельный кабель кидать к каждой розетке, либо ставить какое-то устройство, которое будет физически отсекать конец кабеля до других розеток, чтобы подключенная была последней в цепи.
❗️Век живи, век учись. Знали об этом? Либо может быть сталкивались с таким соединением?
#железо #network
Полез в интернет за подробностями и действительно нашёл подтверждение этому. Последовательно соединять ethernet розетки нельзя, даже если будет использоваться только одна. Если подключиться к розетке посередине, то тот конец, что идёт до дальней розетки, будет отражать сигнал. Это будет приводить к помехам в сети, соединение будет либо постоянно обрываться, либо вообще не установится.
Надо либо отдельный кабель кидать к каждой розетке, либо ставить какое-то устройство, которое будет физически отсекать конец кабеля до других розеток, чтобы подключенная была последней в цепи.
❗️Век живи, век учись. Знали об этом? Либо может быть сталкивались с таким соединением?
#железо #network
На канале накопилось много полезных материалов по MySQL, которые я использую сам, особенно во время настройки нового сервера. Чтобы упростить себе и вам задачу, решил объединить всё наиболее полезное в одну публикацию для удобной навигации.
📌 Настройка:
▪️ Базовые настройки сервера, которые нужно проконтроллировать при установке
▪️ MySQLTuner - помощник по подбору оптимальных параметров под железо и профиль нагрузки
▪️ Скрипт mysql-stat для упрощения выбора параметров в зависимости от доступной оперативы на сервере
▪️ Рекомендации по безопасности от CIS
▪️ Разбор параметра innodb_temp_data_file_path
▪️ Настройка Audit Plugin для отслеживания действий на сервере
▪️ Настройка репликации
📌 Бэкап:
▪️ Полный и инкрементный backup Mysql с помощью Percona XtraBackup
▪️ Mydumper - многопоточное создание дампов
▪️ SQLBackupAndFTP - приложение под Windows для бэкапа
▪️ Скрипт AutoMySQLBackup для автоматического бэкапа баз
▪️ Восстановление отдельной таблицы из дампа всей базы
📌 Мониторинг:
▪️ Мониторинг MySQL с помощью Zabbix
▪️ Консольный Mytop для мониторинга в режиме реального времени
▪️ Проверка успешности создания дампа
▪️ Мониторинг с помощью Percona Monitoring and Management
📌 Эксплуатация:
▪️ Пошаговый план оптимизации запросов MySQL сервера
▪️ Полезные консольные команды mysql клиента
▪️ Подборка MySQL клиентов для работы с СУБД
▪️ Удаление всех таблиц в базе без удаления самой базы
▪️ ProxySQL для проксирования и кэша SQL запросов
▪️ Краткая информация о том, что такое индексы в MySQL
#mysql #подборка
📌 Настройка:
▪️ Базовые настройки сервера, которые нужно проконтроллировать при установке
▪️ MySQLTuner - помощник по подбору оптимальных параметров под железо и профиль нагрузки
▪️ Скрипт mysql-stat для упрощения выбора параметров в зависимости от доступной оперативы на сервере
▪️ Рекомендации по безопасности от CIS
▪️ Разбор параметра innodb_temp_data_file_path
▪️ Настройка Audit Plugin для отслеживания действий на сервере
▪️ Настройка репликации
📌 Бэкап:
▪️ Полный и инкрементный backup Mysql с помощью Percona XtraBackup
▪️ Mydumper - многопоточное создание дампов
▪️ SQLBackupAndFTP - приложение под Windows для бэкапа
▪️ Скрипт AutoMySQLBackup для автоматического бэкапа баз
▪️ Восстановление отдельной таблицы из дампа всей базы
📌 Мониторинг:
▪️ Мониторинг MySQL с помощью Zabbix
▪️ Консольный Mytop для мониторинга в режиме реального времени
▪️ Проверка успешности создания дампа
▪️ Мониторинг с помощью Percona Monitoring and Management
📌 Эксплуатация:
▪️ Пошаговый план оптимизации запросов MySQL сервера
▪️ Полезные консольные команды mysql клиента
▪️ Подборка MySQL клиентов для работы с СУБД
▪️ Удаление всех таблиц в базе без удаления самой базы
▪️ ProxySQL для проксирования и кэша SQL запросов
▪️ Краткая информация о том, что такое индексы в MySQL
#mysql #подборка
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Как обычно к выходным.
⇨ Best Free Hypervisors in 2024
Обзор существующих бесплатных гипервизоров. Автор рассмотрел Nutanix CE, Proxmox VE, XCP-ng, KubeVirt, Vanilla KVM. Nutanix Community Edition лично я вообще никогда не использовал и не видел в работе.
⇨ Анализатор сети Wireshark
Урок из обновлённого курса по сетям от Созыкина Андрея. Если не знакомы с Wireshark, то этот урок для вас.
⇨ It’s time for a new HomeLab Dashboard // Homepage
Удобная и функциональная штуковина для организации дашборда с различными виджетами. Эти виджеты интегрируются с существующими сервисами и отображают различные метрики и состояния на дашборде. Например, можно настроить интергацию с uptime kuma, portainer, prometheus, proxmox и т.д.
⇨ RetroPie - игровая ретро консоль на Raspberry Pi. Установка и настройка
Превращение Raspberry Pi в игровую консоль со старыми играми и джойстиками. Настраивается всё очень быстро и просто. Получается дешевле и функциональнее отдельных игровых консолей. Тут они все в одной куче поддерживаются: Super nintendo, Sega, Sony Play Station и другие.
⇨ Apache Guacamole доступ к SSH RDP и VNC из веб-клиента с помощью Docker
Краткая настройка Apache Guacamole, установленного в Docker. Дополнительно используется двухфакторная аутентификация с помощью auth-totp. Текстовая версия настройки.
⇨ Complete Ansible Semaphore Tutorial: From Installation to Automation
Установка и настройка веб интерфейса для управления Ansible, Terraform, Bash. Я когда-то давно смотрел эту панель и писал о ней. Кстати, интересная штука. Набрала попуялрность и появилась платная версия. Но open source тоже осталась.
⇨ Расследую инцидент взлома MEERKAT.HTB
Очередной классный разбор задания с HackTheBox от уже известного автора. Тут надо будет не взламывать, а расследовать инцидент. Как обычно, хорошо снято и тема интересная. Рекомендую видео этого автора. Они интересные все.
⇨ Fastest Way To Install Kubernetes Cluster Using Portainer
Разворачивание учебного кластера Kubernetes на базе MikroK8s через Portainer.
#видео
⇨ Best Free Hypervisors in 2024
Обзор существующих бесплатных гипервизоров. Автор рассмотрел Nutanix CE, Proxmox VE, XCP-ng, KubeVirt, Vanilla KVM. Nutanix Community Edition лично я вообще никогда не использовал и не видел в работе.
⇨ Анализатор сети Wireshark
Урок из обновлённого курса по сетям от Созыкина Андрея. Если не знакомы с Wireshark, то этот урок для вас.
⇨ It’s time for a new HomeLab Dashboard // Homepage
Удобная и функциональная штуковина для организации дашборда с различными виджетами. Эти виджеты интегрируются с существующими сервисами и отображают различные метрики и состояния на дашборде. Например, можно настроить интергацию с uptime kuma, portainer, prometheus, proxmox и т.д.
⇨ RetroPie - игровая ретро консоль на Raspberry Pi. Установка и настройка
Превращение Raspberry Pi в игровую консоль со старыми играми и джойстиками. Настраивается всё очень быстро и просто. Получается дешевле и функциональнее отдельных игровых консолей. Тут они все в одной куче поддерживаются: Super nintendo, Sega, Sony Play Station и другие.
⇨ Apache Guacamole доступ к SSH RDP и VNC из веб-клиента с помощью Docker
Краткая настройка Apache Guacamole, установленного в Docker. Дополнительно используется двухфакторная аутентификация с помощью auth-totp. Текстовая версия настройки.
⇨ Complete Ansible Semaphore Tutorial: From Installation to Automation
Установка и настройка веб интерфейса для управления Ansible, Terraform, Bash. Я когда-то давно смотрел эту панель и писал о ней. Кстати, интересная штука. Набрала попуялрность и появилась платная версия. Но open source тоже осталась.
⇨ Расследую инцидент взлома MEERKAT.HTB
Очередной классный разбор задания с HackTheBox от уже известного автора. Тут надо будет не взламывать, а расследовать инцидент. Как обычно, хорошо снято и тема интересная. Рекомендую видео этого автора. Они интересные все.
⇨ Fastest Way To Install Kubernetes Cluster Using Portainer
Разворачивание учебного кластера Kubernetes на базе MikroK8s через Portainer.
#видео
YouTube
Best Free Hypervisors in 2024
As we deal with the death of the VMware ESXi free edition, in this video we look at the best free hypervisor solutions now that VMware ESXi free edition is dead.
Check out the written write up of this video here:
https://www.virtualizationhowto.com/2024/02/best…
Check out the written write up of this video here:
https://www.virtualizationhowto.com/2024/02/best…
🎮 Для тех, у кого есть время на поиграть в компьютерные игры (это не про меня). Недавно вышел 3D симулятор на тему разработки программного обеспечения, где для игры нужно писать код на Python. Судя по отзывам, игра не обучалка, нужен хоть какой-то минимульный уровень. Это больше практика в игровой форме для тех, кто хоть немного может программировать. То есть примерно наш уровень. Админам как раз достатчоно немного знать Python и писать что-то базовое, либо просто понимать код.
Игра называется JOY OF PROGRAMMING - Software Engineering Simulator. В Steam она в раннем доступе. Не знаю, как сейчас с покупкой игр там, но на торрентах, если что, она тоже есть.
Игра смотрится необычно. Отзывы в целом тоже неплохие, так что для коллекции игр на тему IT она вполне подходит. У меня кто-то спрашивал в комментариях к прошлому посту с игрой, какие я ещё тематические игры могу посоветовать. Для тех, кто не так давно читает мой канал, поясню, что тут под тэгом #игра собраны практически все игры, так или иначе связанные с информационными технологиями от простых проходилок из 90-х типа Компьютерщик и Взломщик до современных инди игр от Zachtronics. Соберу как-нибудь всё это в единую заметку для удобства.
Вовзращаясь к упомянутой игре. Немного отзывов из Steam:
Я купил это, чтобы поддержать автора, потому что подобных игр, к сожалению, мало. А тут еще есть решение задач в неделю и рейтинг. Мне понравилось абсолютно все, ведь тут ты решаешь задачи и ищешь подход. Я, например, решил с роботом и дорогой задачу короче, чем автор =)
На самом деле отличная игра. Головоломки, еженедельные задания и песочница могут дать некоторые полезные навыки в реальной жизни, хотя система начисления очков вызывает сомнения.
Удивительно.
Затягивает.
Порой очень сложно.
С помощью этой игры вы научитесь программировать на Python, а также потренируете логическое мышление в попытках решать головоломки с программированием. В ней всё ещё есть баги, но играть в целом можно. Игру рекомендую.
Программистам, думаю, было бы странно играть в подобные игры 😁 А тем, кто хочет к ним приобщиться, наверное, в самый раз.
⇨ Steam / Посмотреть игровой процесс: раз, два
#игра
Игра называется JOY OF PROGRAMMING - Software Engineering Simulator. В Steam она в раннем доступе. Не знаю, как сейчас с покупкой игр там, но на торрентах, если что, она тоже есть.
Игра смотрится необычно. Отзывы в целом тоже неплохие, так что для коллекции игр на тему IT она вполне подходит. У меня кто-то спрашивал в комментариях к прошлому посту с игрой, какие я ещё тематические игры могу посоветовать. Для тех, кто не так давно читает мой канал, поясню, что тут под тэгом #игра собраны практически все игры, так или иначе связанные с информационными технологиями от простых проходилок из 90-х типа Компьютерщик и Взломщик до современных инди игр от Zachtronics. Соберу как-нибудь всё это в единую заметку для удобства.
Вовзращаясь к упомянутой игре. Немного отзывов из Steam:
Я купил это, чтобы поддержать автора, потому что подобных игр, к сожалению, мало. А тут еще есть решение задач в неделю и рейтинг. Мне понравилось абсолютно все, ведь тут ты решаешь задачи и ищешь подход. Я, например, решил с роботом и дорогой задачу короче, чем автор =)
На самом деле отличная игра. Головоломки, еженедельные задания и песочница могут дать некоторые полезные навыки в реальной жизни, хотя система начисления очков вызывает сомнения.
Удивительно.
Затягивает.
Порой очень сложно.
С помощью этой игры вы научитесь программировать на Python, а также потренируете логическое мышление в попытках решать головоломки с программированием. В ней всё ещё есть баги, но играть в целом можно. Игру рекомендую.
Программистам, думаю, было бы странно играть в подобные игры 😁 А тем, кто хочет к ним приобщиться, наверное, в самый раз.
⇨ Steam / Посмотреть игровой процесс: раз, два
#игра
Познакомлю вас интересной VPN системой на базе Wireguard, которую недавно посоветовали в комментариях - DefGuard. Это open source проект с очень привлекательными возможностями, который можно развернуть полностью у себя. Это аналог таких продуктов, как firezone, pritunl, netbird.
📌 Что в первую очередь привлекает внимание:
▪️ многофакторная (MFA) или двухфакторная (2FA) аутентификация на базе TOTP/Email и pre-shared keys;
▪️ интеграция с OpenID
▪️ возможность объединения нескольких VPN шлюзов с разными настройками в едином веб интерфейсе;
▪️ возможность подтягивать пользователей из LDAP;
▪️ система прав доступа к туннелям на базе пользователей и паролей;
▪️ свой десктопный клиент для реализации MFA;
Набор возможностей для бесплатного self-hosted продукта внушительный. При этом по стурктуре он не очень сложный. Я почитал описание, документацию, развернул у себя и в целом разобрался с его концепцией. Но сразу скажу, что быстро настроить и всё попробовать не получилось. Где-то часа два провозился, часть возможностей настроил, но не всё. MFA не сделал. Попробовал только создание пользователей, заведение VPN шлюза, подключение клиента.
Расскажу оснвную идею, как это работает. DefGuard упакован в Docker. Развернуть монжо как вручную через docker compose, так и автоматически через bash скрипт. Вся информация в репозитории и документации.
Далее вы идёте в веб интерфейс, добавляете новый Location. Это сущность, которая представялет из себя настроенный сервер Wireguard. Он может быть установлен как локально вместе с веб интерфейсом, так и вынесен куда-то в другое место. Таких Location может быть много. У каждого свои настройки, маршруты, которые он обслуживает, группы пользователей, которым можно к нему подключаться.
Далее создаёте пользователя со своими параметрами. Можно настроить сервер так, что после создания пользователя, он будет отправлять email со всеми ссылками и паролями. Пользователь может зайти в веб интерфейс под своей учёткой, посмотреть свои настройки, WG туннели, которые ему доступны, статистику подключений. Может скачать настройки отдельных туннелей, чтобы использовать их в любых других клиентах WireGuard, если у него не включена MFA.
Родное приложение позволяет реализовать возмжоность MFA при подключении к серверам DefGuard, а так же использовать его как обычный WG клиент для подключения к любым другим VPN туннелям. У меня не получилось настроить MFA. Либо что-то не допонял по последовательности действий, либо где-то ошибся. Думаю, что там всё работает нормально, так как в Issues не заметил каких-то вопросов по этой теме. Думаю, надо просто больше времени потратить на настройку.
Помимо всего описанного, DefGuard поддерживает YubiKeys. У меня, кстати, есть такой. Любопытная штука, но я так и не стал им пользоваться. Также реализованы Webhooks на некоторые действия с пользователями: создание, удаление, смена пароля, добавление YubiKey. В осноном это для того, чтобы настроить те или иные введомления для пользователя.
Благодаря интеграции с OpenID, можно настроить сквозную аутентификацию через DefGuard в друиге сервисы, которые тоже его поддерживают. Например, Proxmox. Пример, как это выглядит, показан в документации. Там же есть примеры интеграции с Portainer, Grafana, MinIO, Vault, Django, Matrix.
В целом, продукт очень привлеактельный. Из бесплатных self-hosted аналогов не много. Netbird.io разве что. Расскажу про него на днях отдельно.
⇨ Сайт / Исходники
#vpn #wireguard
📌 Что в первую очередь привлекает внимание:
▪️ многофакторная (MFA) или двухфакторная (2FA) аутентификация на базе TOTP/Email и pre-shared keys;
▪️ интеграция с OpenID
▪️ возможность объединения нескольких VPN шлюзов с разными настройками в едином веб интерфейсе;
▪️ возможность подтягивать пользователей из LDAP;
▪️ система прав доступа к туннелям на базе пользователей и паролей;
▪️ свой десктопный клиент для реализации MFA;
Набор возможностей для бесплатного self-hosted продукта внушительный. При этом по стурктуре он не очень сложный. Я почитал описание, документацию, развернул у себя и в целом разобрался с его концепцией. Но сразу скажу, что быстро настроить и всё попробовать не получилось. Где-то часа два провозился, часть возможностей настроил, но не всё. MFA не сделал. Попробовал только создание пользователей, заведение VPN шлюза, подключение клиента.
Расскажу оснвную идею, как это работает. DefGuard упакован в Docker. Развернуть монжо как вручную через docker compose, так и автоматически через bash скрипт. Вся информация в репозитории и документации.
Далее вы идёте в веб интерфейс, добавляете новый Location. Это сущность, которая представялет из себя настроенный сервер Wireguard. Он может быть установлен как локально вместе с веб интерфейсом, так и вынесен куда-то в другое место. Таких Location может быть много. У каждого свои настройки, маршруты, которые он обслуживает, группы пользователей, которым можно к нему подключаться.
Далее создаёте пользователя со своими параметрами. Можно настроить сервер так, что после создания пользователя, он будет отправлять email со всеми ссылками и паролями. Пользователь может зайти в веб интерфейс под своей учёткой, посмотреть свои настройки, WG туннели, которые ему доступны, статистику подключений. Может скачать настройки отдельных туннелей, чтобы использовать их в любых других клиентах WireGuard, если у него не включена MFA.
Родное приложение позволяет реализовать возмжоность MFA при подключении к серверам DefGuard, а так же использовать его как обычный WG клиент для подключения к любым другим VPN туннелям. У меня не получилось настроить MFA. Либо что-то не допонял по последовательности действий, либо где-то ошибся. Думаю, что там всё работает нормально, так как в Issues не заметил каких-то вопросов по этой теме. Думаю, надо просто больше времени потратить на настройку.
Помимо всего описанного, DefGuard поддерживает YubiKeys. У меня, кстати, есть такой. Любопытная штука, но я так и не стал им пользоваться. Также реализованы Webhooks на некоторые действия с пользователями: создание, удаление, смена пароля, добавление YubiKey. В осноном это для того, чтобы настроить те или иные введомления для пользователя.
Благодаря интеграции с OpenID, можно настроить сквозную аутентификацию через DefGuard в друиге сервисы, которые тоже его поддерживают. Например, Proxmox. Пример, как это выглядит, показан в документации. Там же есть примеры интеграции с Portainer, Grafana, MinIO, Vault, Django, Matrix.
В целом, продукт очень привлеактельный. Из бесплатных self-hosted аналогов не много. Netbird.io разве что. Расскажу про него на днях отдельно.
⇨ Сайт / Исходники
#vpn #wireguard