Давно подыскиваю замену программе для хранения заметок. У меня сейчас это Joplin и она меня не устраивает. Я уже не раз писал, чем конкретно, не хочу повторяться. Узнал, что существует некая open source альтернатива популярного сервиса Notion. Сам им немного пользовался и постоянно вижу отзывы людей о том, что используют его. Мне он не понравился тем, что во-первых, это онлайн сервис, завязанный на внешнюю инфраструктуру, во-вторых, локальное приложение показалось тормозным. А по функционалу там всё хорошо, и выглядит симпатично.
Есть проект Appflowy, который позиционирует себя как бесплатный аналог Notion. Я его решил попробовать. Позиционирование как аналог, на деле выглядит странно, так как Appflowy это локальное приложение, доступное под Windows, MacOS, Linux, написанное на Rust и Flutter. Отсюда вытекает его серьезное преимущество - оно очень шустрое. Быстро запускается и сам интерфейс отзывчивый. Не похоже на типичные электроновские приложения.
Но в целом впечатление от программы так себе. Сразу скажу, что себе её не оставлю, так как есть серьёзные недостатки. Расскажу о плюсах и минусах, которые заметил.
🟠 Проект всё ещё в бете и есть некоторые помарки в работе. Например, я не вижу вертикального скрола справа в длинных документах. Мотаешь его и не понимаешь, где конец. Есть ещё небольшие помарки, не влияющие серьезно на работоспособность.
🟢 Внешний вид простой и приятный. Интерфейс понравился. Сразу видно, какой-то маковод его делал, так как видны признаки корней из этой системы.
🟠 Не нашёл возможности менять размер шрифта. При этом русский и английский шрифты имеют разную высоту. В одном документе это смотрится плохо.
🟢 Приложение портированное, база данных хранится локально, в директории приложения. Можно легко переносить или хранить где-то на сетевом или облачном диске. То есть это приложение для единоличного использования.
🟠 Почти нет никаких настроек. Можно выбрать только светлую или тёмную тему и язык. Это все настройки.
🟢 Хороший функционал по созданию и оформлению самих записей. Разработчики реально стараются воспроизвести возможности Notion. Получается в целом неплохо. Таблицы, листы задач, Канбан доски выглядят очень красиво. Это то, чего вообще нет в Joplin.
Итог такой. Приложение реально красивое и функциональное в плане оформления самих заметок. Есть куча всяких элементов в виде списков, чекбоксов, картинок, заголовок, таблиц и т.д. Выглядит всё это достойно. Программа не требует установки, быстро запускается и работает. Ресурсы не жрёт. Других аналогов Notion не существует.
При этом явно видно, что программа недоработана. Хотя стоит отметить, что разработка активно ведётся. Постоянно новые релизы выходят, а в разработке принимает участие много людей. У программы 30000 звёзд на гитхабе. Так что перспективы есть. Фундамент, мне кажется, неплохой сделали. Может что-то и выйдет интересное. Программа совсем молодая - первая бета вышла меньше года назад.
⇨ Сайт / Исходники
#заметки
Есть проект Appflowy, который позиционирует себя как бесплатный аналог Notion. Я его решил попробовать. Позиционирование как аналог, на деле выглядит странно, так как Appflowy это локальное приложение, доступное под Windows, MacOS, Linux, написанное на Rust и Flutter. Отсюда вытекает его серьезное преимущество - оно очень шустрое. Быстро запускается и сам интерфейс отзывчивый. Не похоже на типичные электроновские приложения.
Но в целом впечатление от программы так себе. Сразу скажу, что себе её не оставлю, так как есть серьёзные недостатки. Расскажу о плюсах и минусах, которые заметил.
🟠 Проект всё ещё в бете и есть некоторые помарки в работе. Например, я не вижу вертикального скрола справа в длинных документах. Мотаешь его и не понимаешь, где конец. Есть ещё небольшие помарки, не влияющие серьезно на работоспособность.
🟢 Внешний вид простой и приятный. Интерфейс понравился. Сразу видно, какой-то маковод его делал, так как видны признаки корней из этой системы.
🟠 Не нашёл возможности менять размер шрифта. При этом русский и английский шрифты имеют разную высоту. В одном документе это смотрится плохо.
🟢 Приложение портированное, база данных хранится локально, в директории приложения. Можно легко переносить или хранить где-то на сетевом или облачном диске. То есть это приложение для единоличного использования.
🟠 Почти нет никаких настроек. Можно выбрать только светлую или тёмную тему и язык. Это все настройки.
🟢 Хороший функционал по созданию и оформлению самих записей. Разработчики реально стараются воспроизвести возможности Notion. Получается в целом неплохо. Таблицы, листы задач, Канбан доски выглядят очень красиво. Это то, чего вообще нет в Joplin.
Итог такой. Приложение реально красивое и функциональное в плане оформления самих заметок. Есть куча всяких элементов в виде списков, чекбоксов, картинок, заголовок, таблиц и т.д. Выглядит всё это достойно. Программа не требует установки, быстро запускается и работает. Ресурсы не жрёт. Других аналогов Notion не существует.
При этом явно видно, что программа недоработана. Хотя стоит отметить, что разработка активно ведётся. Постоянно новые релизы выходят, а в разработке принимает участие много людей. У программы 30000 звёзд на гитхабе. Так что перспективы есть. Фундамент, мне кажется, неплохой сделали. Может что-то и выйдет интересное. Программа совсем молодая - первая бета вышла меньше года назад.
⇨ Сайт / Исходники
#заметки
В Linux существует удобный инструмент для просмотра сообщений ядра в виде команды dmesg. Думаю, про неё знают все или почти все администраторы Linux. Впервые с ней знакомишься, когда возникают какие-то проблемы на сервере, особенно после перезагрузки, когда что-то начинает работать не так или вообще не работать. Например, не определился сетевой адаптер или ещё какое-то устройство. В первую очередь захочется посмотреть в dmesg.
Я совсем недавно узнал, что если добавить параметр -T, то dmesg покажет время в человеческом формате. До этого даже как-то в голову не приходило изучать его возможности. Обычно ограничивалось всё либо grep, чтобы увидеть что-то конкретное, либо less, чтобы последовательно читать информацию. Теперь всегда добавляю этот ключ. Информация лучше воспринимается:
С помощью этого ключа легко узнать время загрузки системы. Понятно, что uptime можно посмотреть разными способами и прикинуть, когда сервер загружался, но с dmesg это сделать проще:
Первые строки покажут точное время и дату загрузки системы.
После загрузки системы быстро оценить наличие какой-то важной информации можно с помощью указания приоритета выводимых сообщений. Например, выведем уровни emerg,alert,crit,err,warn:
Чаще всего warn тоже можно убрать, так как ничего критически важного там не будет.
Ещё бывает полезно вывести сообщения из пространства пользователя. Туда попадает информация от systemd, которая может быть полезной.
Можно быстро узнать тип виртуализации, на которой работает виртуальная машинa. Systemd её пишет в момент запуска. Пример для KVM:
А вот для Hyper-V:
Ещё из часто используемых ключей можно отметить -H (human). Этот вывод заменяет less, добавляет раскраску цветами и вывод времени в виде нарастающей разницы со стартового значения. Я редко использую.
#linux #консоль
Я совсем недавно узнал, что если добавить параметр -T, то dmesg покажет время в человеческом формате. До этого даже как-то в голову не приходило изучать его возможности. Обычно ограничивалось всё либо grep, чтобы увидеть что-то конкретное, либо less, чтобы последовательно читать информацию. Теперь всегда добавляю этот ключ. Информация лучше воспринимается:
# dmesg -T
С помощью этого ключа легко узнать время загрузки системы. Понятно, что uptime можно посмотреть разными способами и прикинуть, когда сервер загружался, но с dmesg это сделать проще:
# dmesg -T | less
Первые строки покажут точное время и дату загрузки системы.
После загрузки системы быстро оценить наличие какой-то важной информации можно с помощью указания приоритета выводимых сообщений. Например, выведем уровни emerg,alert,crit,err,warn:
# dmesg -T --level=emerg,alert,crit,err,warn
Чаще всего warn тоже можно убрать, так как ничего критически важного там не будет.
Ещё бывает полезно вывести сообщения из пространства пользователя. Туда попадает информация от systemd, которая может быть полезной.
# dmesg -u
Можно быстро узнать тип виртуализации, на которой работает виртуальная машинa. Systemd её пишет в момент запуска. Пример для KVM:
# dmesg -u | grep virtualization
systemd[1]: Detected virtualization
kvm
.
А вот для Hyper-V:
# dmesg -u | grep virtualization
systemd[1]: Detected virtualization
microsoft
.
Ещё из часто используемых ключей можно отметить -H (human). Этот вывод заменяет less, добавляет раскраску цветами и вывод времени в виде нарастающей разницы со стартового значения. Я редко использую.
# dmesg -H
#linux #консоль
Решил освежить информацию по теме бесплатных чатов, которые можно развернуть на своих серверах. В ближайшее время будет несколько публикаций по этой теме. Напомню, что я ранее рассказывал про наиболее известные продукты:
◽ Zulip
◽ MyChat
◽ Mattermost
◽ Rocket.Chat
◽ Matrix + Element
◽ Delta Chat
◽ Jami
◽ SimpleX Chat
Некоторые из них я сам настраивал и внедрял. На мой взгляд, наиболее зрелые продукты, которые можно внедрить в организации - Zulip, Rocket.Chat, Mattermost. Matrix + Element тоже не плох, но есть шероховатости по качеству работы, как-будто немного сыровато, хотя за год может что-то и изменилось. Можно почитать комментарии к каждому чату.
Моё внимание привлёк проект Wire. Заявляется в СМИ, что это разработка бывших сотрудников Skype. На github представлены исходники всех клиентов и серверной части. На вид всё неплохо. Продукт довольно старый (с 2014 года), команда опытная, открыты исходники, можно поднять у себя.
Когда стал разбираться более подробно, приуныл. Во-первых, клиент, как у всех популярных чатов, на JavaScript. То есть привычный лагодром в перспективе, по мере роста чатов и истории. Во-вторых, открытые исходники сервера вроде как есть, но реально развернуть сервер и попробовать затруднительно.
В готовом к установке виде серверная часть представлена в виде helm чартов для установки в Kubernetes. Разработчики считают это наиболее подходящей средой для работы сервера. Если посмотреть на схему сервисов, то можно их понять. Сервер состоит из множества различных служб (более десятка: Cassandra, MinIO, ElasticSearch и т.д.). Кубер видится логичной инфраструктурой для его работы.
Есть возможность для теста поднять всё в Docker контейнерах на одном хосте, но придётся немного повозиться, собрать всё это, запустить и убедиться, что всё правильно стартовало. Я решил не тратить своё время на это.
Сервис чата Wire поставляется по подписке. Есть бесплатный тарифный план на 5 пользователей. У меня создалось впечатление, что исходники были выложены в основном для галочки. Я не очень представляю, кто готов будет решиться развернуть и поддерживать у себя такой масштабный проект без технической поддержки. Документация по продукту скудная и местами недоделанная.
Зарегистрировал бесплатный аккаунт и протестировал чат. Не нашёл там чего-то особенного, что выделяло бы его среди других и стоило таких заморочек с собственной установкой или покупкой подписки. Более популярных и именитых аналогов полно. Если есть кто-то, кто разворачивал Wire у себя или пользовался им, то поделитесь впечатлением.
⇨ Сайт / Исходники / Клиенты
#chat
◽ Zulip
◽ MyChat
◽ Mattermost
◽ Rocket.Chat
◽ Matrix + Element
◽ Delta Chat
◽ Jami
◽ SimpleX Chat
Некоторые из них я сам настраивал и внедрял. На мой взгляд, наиболее зрелые продукты, которые можно внедрить в организации - Zulip, Rocket.Chat, Mattermost. Matrix + Element тоже не плох, но есть шероховатости по качеству работы, как-будто немного сыровато, хотя за год может что-то и изменилось. Можно почитать комментарии к каждому чату.
Моё внимание привлёк проект Wire. Заявляется в СМИ, что это разработка бывших сотрудников Skype. На github представлены исходники всех клиентов и серверной части. На вид всё неплохо. Продукт довольно старый (с 2014 года), команда опытная, открыты исходники, можно поднять у себя.
Когда стал разбираться более подробно, приуныл. Во-первых, клиент, как у всех популярных чатов, на JavaScript. То есть привычный лагодром в перспективе, по мере роста чатов и истории. Во-вторых, открытые исходники сервера вроде как есть, но реально развернуть сервер и попробовать затруднительно.
В готовом к установке виде серверная часть представлена в виде helm чартов для установки в Kubernetes. Разработчики считают это наиболее подходящей средой для работы сервера. Если посмотреть на схему сервисов, то можно их понять. Сервер состоит из множества различных служб (более десятка: Cassandra, MinIO, ElasticSearch и т.д.). Кубер видится логичной инфраструктурой для его работы.
Есть возможность для теста поднять всё в Docker контейнерах на одном хосте, но придётся немного повозиться, собрать всё это, запустить и убедиться, что всё правильно стартовало. Я решил не тратить своё время на это.
Сервис чата Wire поставляется по подписке. Есть бесплатный тарифный план на 5 пользователей. У меня создалось впечатление, что исходники были выложены в основном для галочки. Я не очень представляю, кто готов будет решиться развернуть и поддерживать у себя такой масштабный проект без технической поддержки. Документация по продукту скудная и местами недоделанная.
Зарегистрировал бесплатный аккаунт и протестировал чат. Не нашёл там чего-то особенного, что выделяло бы его среди других и стоило таких заморочек с собственной установкой или покупкой подписки. Более популярных и именитых аналогов полно. Если есть кто-то, кто разворачивал Wire у себя или пользовался им, то поделитесь впечатлением.
⇨ Сайт / Исходники / Клиенты
#chat
▶️ Рекомендую вам к просмотру цикл роликов на тему собеседования Devops от Антона Павленко. Я их сам посмотрел, реально полезные. Подача, как обычно, специфическая, авторская. Но сама фактура заслуживает внимания.
◽ Вопросы и ответы по Linux
◽ Вопросы и ответы по сетям и протоколам
◽ Вопросы и ответы по DevOps
Автор в видео является соискателем, которому задают типовые вопросы из собеседований, а он на них отвечает. Я не могу сказать, что прямо что-то новое для себя узнал. Информация там базовая и специалистам с опытом скорее всего известна хотя бы в общих чертах. А если вы начинающий, то точно будет полезно. А уж если ищите работу, то тем более посмотрите.
Вообще, мне нравится этот канал. Я на него подписан и почти всё смотрю. Автор с энтузиазмом ведёт канал, старается снимать интересные ролики, даёт хорошую фактуру по IT. Так что советую подписаться.
#видео
◽ Вопросы и ответы по Linux
◽ Вопросы и ответы по сетям и протоколам
◽ Вопросы и ответы по DevOps
Автор в видео является соискателем, которому задают типовые вопросы из собеседований, а он на них отвечает. Я не могу сказать, что прямо что-то новое для себя узнал. Информация там базовая и специалистам с опытом скорее всего известна хотя бы в общих чертах. А если вы начинающий, то точно будет полезно. А уж если ищите работу, то тем более посмотрите.
Вообще, мне нравится этот канал. Я на него подписан и почти всё смотрю. Автор с энтузиазмом ведёт канал, старается снимать интересные ролики, даёт хорошую фактуру по IT. Так что советую подписаться.
#видео
После недавней публикации по поводу dmesg произошла забавная ситуация, которая меня повеселила. Решил поделиться с вами. В комментариях в VK один читатель справедливо заметил, что сейчас более уместно использовать другие инструменты. Привожу его комментарий дословно:
Вместо dmesg стоит использовать уже journactl.
У него есть опция -k для просмотра сообщений ядра, опция -p для указания уровня важности сообщений, --since, --until для указания диапазона времени. А время загрузки вроде по who -b можно глянуть.
Сказано всё по делу. Примечательно тут то, что journalctl написано с ошибкой. Позабавил меня этот момент, потому что я сам не люблю эту команду, и либо забываю, как правильно писать, либо пишу с ошибкой. В данном случае dmesg гораздо проще и удобнее.
Вообще, тема с длинными командами постепенно стала проникать в мир Linux вместе с systemd. Например, указание имени хоста:
Настройка часового пояса:
В данных командах hostnamectl и timedatectl видятся как совершенно лишние слова. Понятно, что сделано это для привязки команд к функционалу systemd.
Старые команды более короткие и простые для запоминания и набора. Посмотреть время:
или новое
Выбрать и установить часовой пояс:
или
Разница налицо. Особенно мне нравится команда ip своей простотой и краткостью. Посмотреть настройки сетевых адресов:
или просто
Могу пофантазировать, как то же самое могло бы выглядеть, если бы в systemd был аналог:
С приходом systemd мы постепенно стали лишаться простых и коротких команд. Точнее systemd их стала вытеснять.
#linux
Вместо dmesg стоит использовать уже journactl.
У него есть опция -k для просмотра сообщений ядра, опция -p для указания уровня важности сообщений, --since, --until для указания диапазона времени. А время загрузки вроде по who -b можно глянуть.
Сказано всё по делу. Примечательно тут то, что journalctl написано с ошибкой. Позабавил меня этот момент, потому что я сам не люблю эту команду, и либо забываю, как правильно писать, либо пишу с ошибкой. В данном случае dmesg гораздо проще и удобнее.
Вообще, тема с длинными командами постепенно стала проникать в мир Linux вместе с systemd. Например, указание имени хоста:
# hostnamectl set-hostname srv-02
Настройка часового пояса:
# timedatectl set-timezone Europe/Moscow
В данных командах hostnamectl и timedatectl видятся как совершенно лишние слова. Понятно, что сделано это для привязки команд к функционалу systemd.
Старые команды более короткие и простые для запоминания и набора. Посмотреть время:
# date
или новое
# timedatectl
Выбрать и установить часовой пояс:
# tzselect
или
# timedatectl list-timezones
# timedatectl set-timezone Europe/Moscow
Разница налицо. Особенно мне нравится команда ip своей простотой и краткостью. Посмотреть настройки сетевых адресов:
# ip address
или просто
# ip a
Могу пофантазировать, как то же самое могло бы выглядеть, если бы в systemd был аналог:
# ipaddrctl address-list
С приходом systemd мы постепенно стали лишаться простых и коротких команд. Точнее systemd их стала вытеснять.
#linux
Эта информация — настоящая находка, если ваш ИТ-проект когда-либо горел на всех этапах.
Опытные менеджеры, руководители проектов, исследователи, дизайнеры и разработчики поделятся опытом управления проектами в формате интерактивной игры.
Вы будете погружены в сказочный путь с дебатами, интервью, включением зрителей и двумя играми, благодаря которым узнаете:
✔️как уберечь проект от провала;
✔️как прописать сильный экшн-план;
✔️ как дизайнерам общаться с командой и создавать дизайн-системы;
✔️ как спланировать спринты так, чтобы не делать все в последнюю ночь;
Также можно будет выбрать классическую версию конференции с докладами, топовыми спикерами и успешными кейсами.
Увидимся 18 ноября! Узнать больше и зарегистрироваться можно тут 👈
Реклама. ПАО “Ростелеком”. 2Vtzqw17prU
Опытные менеджеры, руководители проектов, исследователи, дизайнеры и разработчики поделятся опытом управления проектами в формате интерактивной игры.
Вы будете погружены в сказочный путь с дебатами, интервью, включением зрителей и двумя играми, благодаря которым узнаете:
✔️как уберечь проект от провала;
✔️как прописать сильный экшн-план;
✔️ как дизайнерам общаться с командой и создавать дизайн-системы;
✔️ как спланировать спринты так, чтобы не делать все в последнюю ночь;
Также можно будет выбрать классическую версию конференции с докладами, топовыми спикерами и успешными кейсами.
Увидимся 18 ноября! Узнать больше и зарегистрироваться можно тут 👈
Реклама. ПАО “Ростелеком”. 2Vtzqw17prU
Продолжаю тему бесплатных чатов, которые можно развернуть на своих мощностях и использовать бесплатно. Сегодня будет обзор на чат-сервер, позиционирующий себя как альтернатива проприетарному Discord - Revolt.
Сразу перейду к главному - под капотом у Revolt бэкенд на Rust, в качестве БД используется MongoDB, клиентская часть ... барабанная дробь ... написана на TypeScript, а конкретно десктопные приложения на базе Electron. Если я не ошибаюсь, то всё как в оригинале. Discord тоже написан на Rust, а клиент на Electron.
Кажется, совсем провал - очередной Electron. Но на самом деле не всё так плохо. Во-первых, на Electron сейчас пишется очень много приложений (а клиенты чатов почти все), так что приходится с этим как-то жить. Тот же Rocket.Chat тоже на электроне, так у него ещё и серверная часть на JavaScript. И это не мешает ему быть довольно популярным. Из бесплатных selfhosted чат-серверов он один из самых известных. Так что серверная часть на Rust смотрится неплохо на фоне всех остальных.
Revolt очень просто попробовать, так как доступен бесплатный публичный сервис, где можно зарегистрироваться, создать со знакомыми группы и всё проверить. Так как клиенты это по сути обёртки над web версией, через браузер можно оценить весь функционал. Отмечу, что приложение под Windows можно установить через Microsoft Store или просто скачать установщик. Под все остальные популярные системы тоже есть отдельные клиентские приложения.
В целом, мне чат понравился. Выглядит современно, удобно. Сильно похож на Rocket.Chat и Mattermost. Нашёл публичный чат-сервер сообщества Arch Linux. Полазил по нему. Функционал плюс-минус как у всех - боты каналы, закрепы, картинки и т.д. Можно в один клиент добавлять разные серверы и переключаться между ними.
Если чат понравится и решите развернуть свою серверную часть - добро пожаловать в отдельный репозиторий. Всё оформлено через docker-compose, так что запускается в несколько кликов. Необходимо будет только .env заполнить. Серверная часть состоит из контейнеров:
▪ MongoDB
▪ Redis
▪ API server
▪ Events service
▪ Web App
▪ S3-compatible storage server Minio
▪ File server (autumn)
Стек стандартный. Хранение файлов в S3. Забыл упомянуть про русификацию. Она нормально сделана, русским языком пользоваться можно. Не заметил каких-то ляпов в переводе или проблем с длиной текста, как часто бывает, когда просто переводят без учёта длины строк. Но есть отдельные непереведённые места.
Revolt свежий проект. Судя по репозиторию, в районе года назад всё началось. Сейчас нет никаких ограничений у бесплатной версии, а платная вообще не появилась. Так что выглядит по функционалу очень привлекательно.
#chat
Сразу перейду к главному - под капотом у Revolt бэкенд на Rust, в качестве БД используется MongoDB, клиентская часть ... барабанная дробь ... написана на TypeScript, а конкретно десктопные приложения на базе Electron. Если я не ошибаюсь, то всё как в оригинале. Discord тоже написан на Rust, а клиент на Electron.
Кажется, совсем провал - очередной Electron. Но на самом деле не всё так плохо. Во-первых, на Electron сейчас пишется очень много приложений (а клиенты чатов почти все), так что приходится с этим как-то жить. Тот же Rocket.Chat тоже на электроне, так у него ещё и серверная часть на JavaScript. И это не мешает ему быть довольно популярным. Из бесплатных selfhosted чат-серверов он один из самых известных. Так что серверная часть на Rust смотрится неплохо на фоне всех остальных.
Revolt очень просто попробовать, так как доступен бесплатный публичный сервис, где можно зарегистрироваться, создать со знакомыми группы и всё проверить. Так как клиенты это по сути обёртки над web версией, через браузер можно оценить весь функционал. Отмечу, что приложение под Windows можно установить через Microsoft Store или просто скачать установщик. Под все остальные популярные системы тоже есть отдельные клиентские приложения.
В целом, мне чат понравился. Выглядит современно, удобно. Сильно похож на Rocket.Chat и Mattermost. Нашёл публичный чат-сервер сообщества Arch Linux. Полазил по нему. Функционал плюс-минус как у всех - боты каналы, закрепы, картинки и т.д. Можно в один клиент добавлять разные серверы и переключаться между ними.
Если чат понравится и решите развернуть свою серверную часть - добро пожаловать в отдельный репозиторий. Всё оформлено через docker-compose, так что запускается в несколько кликов. Необходимо будет только .env заполнить. Серверная часть состоит из контейнеров:
▪ MongoDB
▪ Redis
▪ API server
▪ Events service
▪ Web App
▪ S3-compatible storage server Minio
▪ File server (autumn)
Стек стандартный. Хранение файлов в S3. Забыл упомянуть про русификацию. Она нормально сделана, русским языком пользоваться можно. Не заметил каких-то ляпов в переводе или проблем с длиной текста, как часто бывает, когда просто переводят без учёта длины строк. Но есть отдельные непереведённые места.
Revolt свежий проект. Судя по репозиторию, в районе года назад всё началось. Сейчас нет никаких ограничений у бесплатной версии, а платная вообще не появилась. Так что выглядит по функционалу очень привлекательно.
#chat
❗️Подобные новости не мой формат, но на всякий случай предупреждаю, так как походу завтра эпичная массовая проблема будет:
Критично: срочно, сегодня обновите платформу "1С:Предприятие 8"!
https://1c.ru/news/info.jsp?id=29958
У 1С что-то случилось. Подробности не говорят, скорее всего будет понятно завтра. Меня тоже зацепило. Сам лично так и не смог скачать последнюю версию платформы с сайта 1С. Похоже, там всё перегружено. Поделился знакомый в итоге.
Фирма "1С" доводит до сведения пользователей и партнеров, что в версиях платформы "1С:Предприятие" 8.3.22.1672, 8.3.22.1603, 8.3.21.1607, 8.3.21.1508, 8.3.21.1484, 8.3.20.2076, 8.3.20.2039, 8.3.19.1665, 8.3.19.1659, 8.3.18.1902, 8.3.18.1894, 8.3.17.2733, 8.3.17.2665 обнаружена критическая проблема, которая может привести к закрытию приложения в начале работы с программой.
Изменение внешних условий 15.11.2022 может существенно повысить вероятность проявления данной проблемы – предполагается, что многие пользователи перечисленных версий завтра не смогут работать.
Проблема не приводит к потере данных пользователей.
Положил платформу windows64full_8_3_22_1704.rar к себе на Яндекс.Диск для тех, кто тоже не сможет сам скачать:
https://disk.yandex.ru/d/f5rJTFMavNWwJQ
#1С
Критично: срочно, сегодня обновите платформу "1С:Предприятие 8"!
https://1c.ru/news/info.jsp?id=29958
У 1С что-то случилось. Подробности не говорят, скорее всего будет понятно завтра. Меня тоже зацепило. Сам лично так и не смог скачать последнюю версию платформы с сайта 1С. Похоже, там всё перегружено. Поделился знакомый в итоге.
Фирма "1С" доводит до сведения пользователей и партнеров, что в версиях платформы "1С:Предприятие" 8.3.22.1672, 8.3.22.1603, 8.3.21.1607, 8.3.21.1508, 8.3.21.1484, 8.3.20.2076, 8.3.20.2039, 8.3.19.1665, 8.3.19.1659, 8.3.18.1902, 8.3.18.1894, 8.3.17.2733, 8.3.17.2665 обнаружена критическая проблема, которая может привести к закрытию приложения в начале работы с программой.
Изменение внешних условий 15.11.2022 может существенно повысить вероятность проявления данной проблемы – предполагается, что многие пользователи перечисленных версий завтра не смогут работать.
Проблема не приводит к потере данных пользователей.
Положил платформу windows64full_8_3_22_1704.rar к себе на Яндекс.Диск для тех, кто тоже не сможет сам скачать:
https://disk.yandex.ru/d/f5rJTFMavNWwJQ
#1С
1c.ru
Как можно скорее обновите платформу "1С:Предприятие 8", чтобы продолжить работу!
Существует не так много бесплатных продуктов по анализу трафика. Это в основном коммерческая ниша - NTA (network traffic analysis) с серьезными и дорогими решениями, интегрированными с системами информационной безопасности.
У меня на канале было пару заметок про бесплатные варианты:
▪ Elastiflow
▪ Ntopng
У этих бесплатных программ довольно скудный функционал. В этом плане приятно удивляет другой Open Source проект - Arkime, про который пойдёт речь далее. Это целостное функциональное решение с управлением через веб интерфейс.
Arkime умеет парсить трафик и складывать его в Elasticsearch. Там его удобно анализировать через веб-интерфейс. Плюс, он имеет интеграцию с Suricata, что позволяет связать из неё события с сессиями из статистики. И нетипичный для бесплатного продукта функционал - возможность работать с различными выборками и сигнатурами. Последнее как раз и делает подобные продукты востребованными в среде безопасников.
Установить Arkime очень просто. Есть готовые rpm/deb пакеты под популярные системы, так что даже с докером связываться не придётся. Достаточно скачать пакет и установить. Проверить, что все службы запущены и отправиться в веб интерфейс для настройки и работы с системой. Единственная проблема, для работы Arkime нужен пакет elasticsearch-7, а доступ к репозиторию с адресов РФ заблокирован. Так что нужно будет вручную это сделать, например, используя mirror.yandex.ru. Я так и поступил.
Ниже полная инструкция без пояснений для установки последней версии Arkime на Ubuntu 22.04.
Указываем имена сетевых интерфейсов, которые будем парсить, от установки elasticsearch отказываемся.
Идём в веб интерфейс http://212.193.52.150:8005 и логинимся под учёткой admin, THEPASSWORD. Если что-то не работает, то смотрите логи в /opt/arkime/logs. У меня всё получилось почти сразу. Немного с зависимостями разобрался, установил elasticsearch. Сначала не заработало, так как забыл инициализировать elasticsearch и добавить туда пользователя. Потом ещё раз внимательно почитал инструкцию и всё получилось.
Не забывайте, что для подобного рода программ нужно производительное железо, которое будет зависеть от объёмов трафика и глубины хранения.
🔥 Программа реально крутая. Мне неизвестно что-то подобное забесплатно. Поставил, развернул очень быстро. Отлично работает, трафик парсится, анализируется. Всё доступно через веб интерфейс. Меня часто спрашивали в комментариях рекомендацию на что-то подобное. Вот она и есть. Весь трафик сервера как на ладони.
⇨ Сайт / Исходники / Инструкция / Загрузка
#gateway #netflow
У меня на канале было пару заметок про бесплатные варианты:
▪ Elastiflow
▪ Ntopng
У этих бесплатных программ довольно скудный функционал. В этом плане приятно удивляет другой Open Source проект - Arkime, про который пойдёт речь далее. Это целостное функциональное решение с управлением через веб интерфейс.
Arkime умеет парсить трафик и складывать его в Elasticsearch. Там его удобно анализировать через веб-интерфейс. Плюс, он имеет интеграцию с Suricata, что позволяет связать из неё события с сессиями из статистики. И нетипичный для бесплатного продукта функционал - возможность работать с различными выборками и сигнатурами. Последнее как раз и делает подобные продукты востребованными в среде безопасников.
Установить Arkime очень просто. Есть готовые rpm/deb пакеты под популярные системы, так что даже с докером связываться не придётся. Достаточно скачать пакет и установить. Проверить, что все службы запущены и отправиться в веб интерфейс для настройки и работы с системой. Единственная проблема, для работы Arkime нужен пакет elasticsearch-7, а доступ к репозиторию с адресов РФ заблокирован. Так что нужно будет вручную это сделать, например, используя mirror.yandex.ru. Я так и поступил.
Ниже полная инструкция без пояснений для установки последней версии Arkime на Ubuntu 22.04.
# echo "deb [trusted=yes] https://mirror.yandex.ru/mirrors/elastic/7/ stable main" \
| sudo tee /etc/apt/sources.list.d/elastic-7.x.list
# apt update && apt install elasticsearch
# systemctl start elasticsearch.service
# wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-22.04/arkime_4.0.2-1_amd64.deb
# dpkg -i arkime_4.0.2-1_amd64.deb
# /opt/arkime/bin/Configure
Указываем имена сетевых интерфейсов, которые будем парсить, от установки elasticsearch отказываемся.
# /opt/arkime/db/db.pl http://localhost:9200 init
# /opt/arkime/bin/arkime_add_user.sh admin "Admin User" THEPASSWORD --admin
# systemctl start arkimecapture.service
# systemctl start arkimeviewer.service
Идём в веб интерфейс http://212.193.52.150:8005 и логинимся под учёткой admin, THEPASSWORD. Если что-то не работает, то смотрите логи в /opt/arkime/logs. У меня всё получилось почти сразу. Немного с зависимостями разобрался, установил elasticsearch. Сначала не заработало, так как забыл инициализировать elasticsearch и добавить туда пользователя. Потом ещё раз внимательно почитал инструкцию и всё получилось.
Не забывайте, что для подобного рода программ нужно производительное железо, которое будет зависеть от объёмов трафика и глубины хранения.
🔥 Программа реально крутая. Мне неизвестно что-то подобное забесплатно. Поставил, развернул очень быстро. Отлично работает, трафик парсится, анализируется. Всё доступно через веб интерфейс. Меня часто спрашивали в комментариях рекомендацию на что-то подобное. Вот она и есть. Весь трафик сервера как на ладони.
⇨ Сайт / Исходники / Инструкция / Загрузка
#gateway #netflow
После недавней заметки про Appflowy, в комментариях, как обычно, было бурное обсуждение. Очень активно советовали Obsidian. Я знаю про него, так как и раньше мне его тоже советовали, но попробовать руки дошли только сейчас. Остановился в итоге не на нём, но обо всё по порядку.
Obsidian реально удобное бесплатное для личного использования приложение. Очень много возможностей, большое сообщество, функционал расширяется плагинами, которых написано очень много. По всем параметрам это хороший продукт. Но чисто субъективно мне не очень понравился. По умолчанию разметка документа Markdown. Мне не нравится этот формат для локальных заметок. Посмотрел все настройки, так и не понял, как сделать так, чтобы выделенный текст можно было тут же сделать жирным или курсивом. Наверняка это решается, но я не стал сильно разбираться.
Второе, что не понравилось в Obsidian, это опять клиент на JavaScript. Не знаю, Electron там или что-то другое, но смысл тот же. Не очень отзывчивый интерфейс и в перспективе тормоза. Ещё обратил внимание на то, что в Obsidian акцент на связях всех и вся. Мне особо это не нужно. Привык структурировать данные сам по условным папкам или темам.
В итоге, я остановился на программе MyTetra. Привлёк старпёрский интерфейс и то, что написано на С++. Мне реально такой интерфейс, как в классических почтовых программах типа TheBat, Thunderbird (пользуюсь регулярно), Outlook и т.д., кажется удобным. Слева дерево, сверху список заметок, снизу текст. Всегда такой вид делал по умолчанию.
MyTetra умеет всё хранить локально, поддерживает шифрование. Просто положил её на Яндекс.Диск, так как программа портированная, установки не требует. Мобильного приложения нет, но мне и не надо. Никогда не пользовался заметками на смартфоне, не работаю с него, всё в ноуте. Иногда если сильно надо что-то посмотреть, по RDP подключался к виндовой машине.
Понемногу начал в MyTetra переносить заметки. Попользуюсь немного, посмотрю, как пойдёт. Если понравится, напишу более подробные впечатления и итог. Редактор в ней - WYSIWYG. Программа полностью бесплатна и пишется примерно 10 лет силами одного автора разработчика. Исходники есть на github. Никаких привязок к внешним сервисам и обновлениям нет. Программа полностью локальная.
⇨ Сайт / Исходники / Видеообзор / Обсуждение
#заметки
Obsidian реально удобное бесплатное для личного использования приложение. Очень много возможностей, большое сообщество, функционал расширяется плагинами, которых написано очень много. По всем параметрам это хороший продукт. Но чисто субъективно мне не очень понравился. По умолчанию разметка документа Markdown. Мне не нравится этот формат для локальных заметок. Посмотрел все настройки, так и не понял, как сделать так, чтобы выделенный текст можно было тут же сделать жирным или курсивом. Наверняка это решается, но я не стал сильно разбираться.
Второе, что не понравилось в Obsidian, это опять клиент на JavaScript. Не знаю, Electron там или что-то другое, но смысл тот же. Не очень отзывчивый интерфейс и в перспективе тормоза. Ещё обратил внимание на то, что в Obsidian акцент на связях всех и вся. Мне особо это не нужно. Привык структурировать данные сам по условным папкам или темам.
В итоге, я остановился на программе MyTetra. Привлёк старпёрский интерфейс и то, что написано на С++. Мне реально такой интерфейс, как в классических почтовых программах типа TheBat, Thunderbird (пользуюсь регулярно), Outlook и т.д., кажется удобным. Слева дерево, сверху список заметок, снизу текст. Всегда такой вид делал по умолчанию.
MyTetra умеет всё хранить локально, поддерживает шифрование. Просто положил её на Яндекс.Диск, так как программа портированная, установки не требует. Мобильного приложения нет, но мне и не надо. Никогда не пользовался заметками на смартфоне, не работаю с него, всё в ноуте. Иногда если сильно надо что-то посмотреть, по RDP подключался к виндовой машине.
Понемногу начал в MyTetra переносить заметки. Попользуюсь немного, посмотрю, как пойдёт. Если понравится, напишу более подробные впечатления и итог. Редактор в ней - WYSIWYG. Программа полностью бесплатна и пишется примерно 10 лет силами одного автора разработчика. Исходники есть на github. Никаких привязок к внешним сервисам и обновлениям нет. Программа полностью локальная.
⇨ Сайт / Исходники / Видеообзор / Обсуждение
#заметки
Вы никогда не задавались вопросом, почему известный веб сервер в одних дистрибутивах именуется apache (Debian, Ubuntu), а в других httpd (Centos, RHEL, Fedora)? Меня всегда это интересовало, пока в итоге не разобрался, почему так. Поделюсь с вами.
Разработкой веб сервера занимается организация Apache Foundation, а сам продукт внутри организации называется Apache HTTP Server. Для краткости в Unix его стали называть Apache httpd (http daemon), добавив d на конец, как это происходит со многими службами (sshd, rsyslogd, crond и т.д.). В Debian и производных прижилось именование apache из первой части названия.
Название httpd появилось в системах от RedHat. Зачем они это сделали - не понятно. Я не нашёл информации на тему того, чем их не устроило уже имевшееся название программы в виде apache. Но если разобраться, то под брендом apache существует множество продуктов. Именование httpd выглядит более логичным, хотя и не строго, так как службы http тоже могут быть разными. В общем, тут есть предпосылки для разночтений.
Если я не ошибаюсь, то название пакета httpd есть и в MacOS. Возможно именно они первые стали использовать это имя, а RedHat подхватили. Выяснить наверняка не удалось.
Такая вот историческая справка. Я сначала сам путался, когда только начинал администрировать. Не сразу понял, что это одно и то же, хотя по структуре конфига понятно, что что-то похожее. И в комментариях к своим статьям с веб серверами видел вопросы на тему apache и httpd. Некоторые новички реально путаются и не понимают, что httpd это apache и есть.
#webserver #apache #httpd
Разработкой веб сервера занимается организация Apache Foundation, а сам продукт внутри организации называется Apache HTTP Server. Для краткости в Unix его стали называть Apache httpd (http daemon), добавив d на конец, как это происходит со многими службами (sshd, rsyslogd, crond и т.д.). В Debian и производных прижилось именование apache из первой части названия.
Название httpd появилось в системах от RedHat. Зачем они это сделали - не понятно. Я не нашёл информации на тему того, чем их не устроило уже имевшееся название программы в виде apache. Но если разобраться, то под брендом apache существует множество продуктов. Именование httpd выглядит более логичным, хотя и не строго, так как службы http тоже могут быть разными. В общем, тут есть предпосылки для разночтений.
Если я не ошибаюсь, то название пакета httpd есть и в MacOS. Возможно именно они первые стали использовать это имя, а RedHat подхватили. Выяснить наверняка не удалось.
Такая вот историческая справка. Я сначала сам путался, когда только начинал администрировать. Не сразу понял, что это одно и то же, хотя по структуре конфига понятно, что что-то похожее. И в комментариях к своим статьям с веб серверами видел вопросы на тему apache и httpd. Некоторые новички реально путаются и не понимают, что httpd это apache и есть.
#webserver #apache #httpd
Делюсь с вами информацией об очень полезной консольной утилите JC. С её помощью можно поток данных из стандартных команд Linux конвертировать в json. Покажу сразу на простом примере:
Вывод имеет смысл сразу через jq пропустить, чтобы было удобнее смотреть.
JC поддерживает большое количество утилит. Это делает её удобной для настройки мониторинга. Например, очень просто сделать мониторинг бэкапов в виде файлов.
Отправляем вывод на Zabbix Server и парсим с помощью JSONPath нужные данные. Например, имя файла, дату и размер. А дальше делаем нужные триггеры. Я раньше всё это на баше через grep, awk, sed и т.д. делал. Но тут намного удобнее.
В репозитории приведён полный список утилит, которые поддерживает jc. Написана программа на python, ставится через pip:
С помощью jc можно парсить вывод STDOUT у Ansible. В статье приведён простой и наглядный пример.
Утилита по нынешним временам очень актуальна и востребована. Рекомендую обратить внимание и сохранить информацию, если прямо сейчас не нужно.
⇨ Исходники / Много примеров
#json
# free | jc --free
Вывод имеет смысл сразу через jq пропустить, чтобы было удобнее смотреть.
# free | jc --free | jq
[
{
"type": "Mem",
"total": 1014640,
"used": 197868,
"free": 276000,
"shared": 31280,
"buff_cache": 540772,
"available": 634004
},
{
"type": "Swap",
"total": 999996,
"used": 175740,
"free": 824256
}
]
JC поддерживает большое количество утилит. Это делает её удобной для настройки мониторинга. Например, очень просто сделать мониторинг бэкапов в виде файлов.
# ls -lh | jc --ls | jq
Отправляем вывод на Zabbix Server и парсим с помощью JSONPath нужные данные. Например, имя файла, дату и размер. А дальше делаем нужные триггеры. Я раньше всё это на баше через grep, awk, sed и т.д. делал. Но тут намного удобнее.
В репозитории приведён полный список утилит, которые поддерживает jc. Написана программа на python, ставится через pip:
# pip3 install jc
С помощью jc можно парсить вывод STDOUT у Ansible. В статье приведён простой и наглядный пример.
Утилита по нынешним временам очень актуальна и востребована. Рекомендую обратить внимание и сохранить информацию, если прямо сейчас не нужно.
⇨ Исходники / Много примеров
#json
В рамках задачи по изучению бесплатных платформ для запуска чат-серверов нашёл интересный продукт, который помимо чата включает в себя остальные инструменты для совместной работы - онлайн документы, календарь, задачи. Речь пойдёт про Twake - open source продукт с монетизацией через продажу SaaS сервиса по подписке.
Сразу обращаю внимание на некоторые моменты, которые меня привлекли. Во-первых, сайт проекта представлен на английском, французском и русском языках. Во-вторых, на сайте явно указано, что Twake соответствует федеральному закону о персональных данных 152-ФЗ. Сама компания из Франции, но называет свою команду международной. Я так понял, что там есть какие-то связи с РФ, иначе про 152-ФЗ они вряд ли бы знали.
Twake называет сам себя бесплатной альтернативой Microsoft Teams, хотя лично мне он показался вообще непохожим на Teams. В качестве редактора документов там используется OnlyOffice, для видеозвонков Jitsi. Он скорее похож на Nextcloud или Kopano.
Twake расширяет свой функционал за счёт внешних интеграций, которые настраивать должно быть просто, так как архитектура приложения заточена под это. К примеру, уже есть готовая интеграция с n8n. Настройка показана в документации. Фронт написан на React (Javascript), бэкенд на PHP. Клиент, понятное дело, Electron. Ставить отдельно большого смысла нет, потому что он ничем не отличается от веб версии.
Попробовать Twake можно на бесплатном тарифном плане в облаке или развернуть у себя с помощью Docker. Все контейнеры уже собраны. Запустить так:
Только один нюанс. По умолчанию почему-то запускаются очень старые контейнеры еще от 2021 года. Я вручную заменил версию на последнюю 2022.Q4.1120 в файле docker-compose.yml. И ещё момент. Twake использует БД ScyllaBD, которой для работы нужны инструкции процессора pclmul и sse4_2. Без них не запустится. Пришлось в виртуалке на Proxmox, где её запускал, сделать тип процессора host для этой VM, иначе этих инструкций у неё не было.
Как сам чат Twake ничего особенного из себя не представляет. Всё примерно как у всех. Его стоит рассматривать именно как платформу для совместной работы. Заметно, что проект ещё молодой (первые версии от 2020 года) и сыроват. Акцент на готовую платформу для создания собственных интеграций выглядит перспективно и если всё получится, должно выйти дельное приложение. Пока ставить в прод рискованно. Документация слабая, популярность тоже небольшая. Надо наблюдать. Бесплатных продуктов подобного типа практически нет, так что и выбирать особо не из чего.
⇨ Сайт / Исходники
#chat #docs
Сразу обращаю внимание на некоторые моменты, которые меня привлекли. Во-первых, сайт проекта представлен на английском, французском и русском языках. Во-вторых, на сайте явно указано, что Twake соответствует федеральному закону о персональных данных 152-ФЗ. Сама компания из Франции, но называет свою команду международной. Я так понял, что там есть какие-то связи с РФ, иначе про 152-ФЗ они вряд ли бы знали.
Twake называет сам себя бесплатной альтернативой Microsoft Teams, хотя лично мне он показался вообще непохожим на Teams. В качестве редактора документов там используется OnlyOffice, для видеозвонков Jitsi. Он скорее похож на Nextcloud или Kopano.
Twake расширяет свой функционал за счёт внешних интеграций, которые настраивать должно быть просто, так как архитектура приложения заточена под это. К примеру, уже есть готовая интеграция с n8n. Настройка показана в документации. Фронт написан на React (Javascript), бэкенд на PHP. Клиент, понятное дело, Electron. Ставить отдельно большого смысла нет, потому что он ничем не отличается от веб версии.
Попробовать Twake можно на бесплатном тарифном плане в облаке или развернуть у себя с помощью Docker. Все контейнеры уже собраны. Запустить так:
# git clone https://github.com/linagora/Twake
# cd Twake/twake
# ./start.sh
Только один нюанс. По умолчанию почему-то запускаются очень старые контейнеры еще от 2021 года. Я вручную заменил версию на последнюю 2022.Q4.1120 в файле docker-compose.yml. И ещё момент. Twake использует БД ScyllaBD, которой для работы нужны инструкции процессора pclmul и sse4_2. Без них не запустится. Пришлось в виртуалке на Proxmox, где её запускал, сделать тип процессора host для этой VM, иначе этих инструкций у неё не было.
Как сам чат Twake ничего особенного из себя не представляет. Всё примерно как у всех. Его стоит рассматривать именно как платформу для совместной работы. Заметно, что проект ещё молодой (первые версии от 2020 года) и сыроват. Акцент на готовую платформу для создания собственных интеграций выглядит перспективно и если всё получится, должно выйти дельное приложение. Пока ставить в прод рискованно. Документация слабая, популярность тоже небольшая. Надо наблюдать. Бесплатных продуктов подобного типа практически нет, так что и выбирать особо не из чего.
⇨ Сайт / Исходники
#chat #docs
Для тех, кто не в курсе, напомню, что у Zabbix есть собственное очень хорошее обзорное видео, где максимально подробно и наглядно показаны все основные возможности системы мониторинга.
⇨ https://www.zabbix.com/ru/demo
Мне иногда пишут в личку вопросы на тему того, можно ли что-то реализовать через Zabbix, есть ли такой функционал и как это сделать. Если не очень хорошо знакомы с Zabbix, то посмотрите это обзорное видео. Там наглядно показаны возможности, особенно в плане визуализации.
Я лично не видел, чтобы кто-то заморачивался с дашбордами так, как это сделано в демонстрации. Выглядит красиво, но на практике не факт, что это будет удобно в работе. У меня обычно всё сильно проще. Особенно картам не уделяю много внимания. Всё равно в них никто не смотрит, а если что-то случилось, то информацию получаешь от оповещений триггеров.
p.s. Заметил, что у Zabbix продолжаются вебинары на русском языке. Записался на ближайший. Если посмотрю, дам обратную связь. Они там судя по плану регулярно проводятся.
#zabbix
⇨ https://www.zabbix.com/ru/demo
Мне иногда пишут в личку вопросы на тему того, можно ли что-то реализовать через Zabbix, есть ли такой функционал и как это сделать. Если не очень хорошо знакомы с Zabbix, то посмотрите это обзорное видео. Там наглядно показаны возможности, особенно в плане визуализации.
Я лично не видел, чтобы кто-то заморачивался с дашбордами так, как это сделано в демонстрации. Выглядит красиво, но на практике не факт, что это будет удобно в работе. У меня обычно всё сильно проще. Особенно картам не уделяю много внимания. Всё равно в них никто не смотрит, а если что-то случилось, то информацию получаешь от оповещений триггеров.
p.s. Заметил, что у Zabbix продолжаются вебинары на русском языке. Записался на ближайший. Если посмотрю, дам обратную связь. Они там судя по плану регулярно проводятся.
#zabbix
Решил упростить себе задачу и подготовить список настроек, которые надо обязательно проверить при настройке одиночного mysql/mariadb сервера. Я не буду давать описания настроек и советовать какие-то значения, потому что это очень большой объём информации. Вы сами сможете её найти в интернете и подогнать под свою ситуацию.
Первое, что надо сделать - сбалансировать потребление памяти сервером. Не обязательно делать это вручную. Можно воспользоваться скриптом mysqltuner. Перечислю параметры Global + Thread, из которых складывается потребление памяти:
Global:
Эти значения просто суммируются.
Thread:
Эти значения суммируются и умножаются на
Как я уже сказал, не обязательно их все править. Можно воспользоваться mysqltuner или оставить дефолтные значения, а вручную указать наиболее критичные - innodb_buffer_pool_size, max_connections. Остальные параметры mysqltuner подскажет, как подогнать под основные. Innodb_buffer_pool_size подбирают таким образом, чтобы с учётом всех остальных параметров суммарное потребление оперативной памяти не выходило за отведённые для Mysql Server пределы.
Обязательно проверяю:
Если не требуются подключения извне, привязываю к localhost.
Проверяю расположение логов и чаще всего сразу добавляю лог медленных запросов:
Указываю нужную кодировку. Сейчас вроде бы везде utf8mb4 по умолчанию стоит, раньше utf8 ставили.
Важные параметры, которые заметно влияют на производительность:
Они привязаны к количеству соединений и таблиц в базе. Для того же Bitrix эти параметры имеют высокие значения и часто упираются в системные лимиты ОС для отдельного процесса. Их нужно тоже увеличить. Например вот так:
Содержимое файла:
Ещё один параметр, на который стоит обратить внимание:
Он регулирует размер и рост файла с временным табличным пространством. Этот файл иногда может вырастать до огромных размеров и вызывать нехватку свободного места. Имеет смысл его сразу ограничить до разумных пределов. Вот пример ограничения размера в 2 ГБ и роста частями по 12 Мб
Это основное, на что я обращаю внимание. Более детальные настройки делаются, если возникают какие-то проблемы.
#mysql
Первое, что надо сделать - сбалансировать потребление памяти сервером. Не обязательно делать это вручную. Можно воспользоваться скриптом mysqltuner. Перечислю параметры Global + Thread, из которых складывается потребление памяти:
Global:
innodb_buffer_pool_size
innodb_log_file_size
key_buffer_size
innodb_log_buffer_size
query_cache_size
aria_pagecache_buffer_size
Эти значения просто суммируются.
Thread:
sort_buffer_size
join_buffer_size
read_buffer_size
read_rnd_buffer_size
max_allowed_packet
thread_stack
Эти значения суммируются и умножаются на
max_connections
. Как я уже сказал, не обязательно их все править. Можно воспользоваться mysqltuner или оставить дефолтные значения, а вручную указать наиболее критичные - innodb_buffer_pool_size, max_connections. Остальные параметры mysqltuner подскажет, как подогнать под основные. Innodb_buffer_pool_size подбирают таким образом, чтобы с учётом всех остальных параметров суммарное потребление оперативной памяти не выходило за отведённые для Mysql Server пределы.
Обязательно проверяю:
bind-address = 127.0.0.1
Если не требуются подключения извне, привязываю к localhost.
Проверяю расположение логов и чаще всего сразу добавляю лог медленных запросов:
log_error = /var/log/mysql/error.log
slow_query_log
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2.0
Указываю нужную кодировку. Сейчас вроде бы везде utf8mb4 по умолчанию стоит, раньше utf8 ставили.
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
Важные параметры, которые заметно влияют на производительность:
open_files_limit
table_open_cache
Они привязаны к количеству соединений и таблиц в базе. Для того же Bitrix эти параметры имеют высокие значения и часто упираются в системные лимиты ОС для отдельного процесса. Их нужно тоже увеличить. Например вот так:
# mkdir /etc/systemd/system/mysqld.service.d
# touch limit.conf
Содержимое файла:
[Service]
LimitNOFILE=65535
Ещё один параметр, на который стоит обратить внимание:
innodb_temp_data_file_path
Он регулирует размер и рост файла с временным табличным пространством. Этот файл иногда может вырастать до огромных размеров и вызывать нехватку свободного места. Имеет смысл его сразу ограничить до разумных пределов. Вот пример ограничения размера в 2 ГБ и роста частями по 12 Мб
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:2G
Это основное, на что я обращаю внимание. Более детальные настройки делаются, если возникают какие-то проблемы.
#mysql
-50% на Akamai CDN в Selectel до конца ноября
Вы можете ускорять загрузку контента на сайте в два раза дешевле, чем раньше. Скидка действует, если вы подключаете Akamai CDN до конца ноября и оплачиваете услугу на 6 месяцев. Akamai — крупный CDN-провайдер, кэш-серверы которого расположены в более чем 135 странах.
Чем CDN может быть полезен:
▫️Ускоряя загрузку контента сайта, вы можете повлиять на его ранжирование в поисковой выдаче
▫️Используя CDN в работе, вы уменьшаете нагрузку на основную инфраструктуру.
▫️Сервис не боится растущих нагрузок, он без труда умеет под них адаптироваться. А если с одним из кэширующих серверов что-то случится, пользователи получат контент с другого ближайшего и не заметят нарушений.
Переходите по ссылке и подключайте Akamai CDN со скидкой на 6 месяцев: https://slc.tl/zdsoa
Реклама. ООО Селектел 2Vtzqwghymz
Вы можете ускорять загрузку контента на сайте в два раза дешевле, чем раньше. Скидка действует, если вы подключаете Akamai CDN до конца ноября и оплачиваете услугу на 6 месяцев. Akamai — крупный CDN-провайдер, кэш-серверы которого расположены в более чем 135 странах.
Чем CDN может быть полезен:
▫️Ускоряя загрузку контента сайта, вы можете повлиять на его ранжирование в поисковой выдаче
▫️Используя CDN в работе, вы уменьшаете нагрузку на основную инфраструктуру.
▫️Сервис не боится растущих нагрузок, он без труда умеет под них адаптироваться. А если с одним из кэширующих серверов что-то случится, пользователи получат контент с другого ближайшего и не заметят нарушений.
Переходите по ссылке и подключайте Akamai CDN со скидкой на 6 месяцев: https://slc.tl/zdsoa
Реклама. ООО Селектел 2Vtzqwghymz
Для тех, кто не в курсе, что такое прошивка для роутера DD-WRT, рекомендую хорошее обзорное видео. Я несколько лет пользовался обычным роутером Linksys, прошитым этой прошивкой, пока не начал использовать Mikrotik.
DD-WRT. Универсальная прошивка для роутера на примере Netgear R7000P. Обзор и установка
⇨ https://www.youtube.com/watch?v=Lzg8lMFK8Zk
Эта прошивка более дружественна к пользователям. С её настройками я разобрался без проблем. Не пришлось искать руководства и пояснения. Функционал сопоставим с Микротиками для soho устройств. Конкретно мне там нравилась возможность настройки OpenVPN сервера или клиента и написание правил в формате iptables. А также хоть и простое, но хранение статистики использования интернета.
Похоже, придётся опять возвращаться к истокам, так как завышенные цены на Mikrotik в России делают нецелесообразным их использование. Причём совершенно не понятно, почему именно они так подорожали. Многие другие роутеры остались плюс-минус по тем же ценам с поправкой на годовую инфляцию.
У меня только один вопрос возник после просмотра. DD-WRT вообще актуальна сейчас? На вид за 10 лет ничего не поменялось. Сложилось ощущение, что она уже давно устарела. Может есть что-то получше на сегодняшний день? Я не слышал.
#видео #ddwrt
DD-WRT. Универсальная прошивка для роутера на примере Netgear R7000P. Обзор и установка
⇨ https://www.youtube.com/watch?v=Lzg8lMFK8Zk
Эта прошивка более дружественна к пользователям. С её настройками я разобрался без проблем. Не пришлось искать руководства и пояснения. Функционал сопоставим с Микротиками для soho устройств. Конкретно мне там нравилась возможность настройки OpenVPN сервера или клиента и написание правил в формате iptables. А также хоть и простое, но хранение статистики использования интернета.
Похоже, придётся опять возвращаться к истокам, так как завышенные цены на Mikrotik в России делают нецелесообразным их использование. Причём совершенно не понятно, почему именно они так подорожали. Многие другие роутеры остались плюс-минус по тем же ценам с поправкой на годовую инфляцию.
У меня только один вопрос возник после просмотра. DD-WRT вообще актуальна сейчас? На вид за 10 лет ничего не поменялось. Сложилось ощущение, что она уже давно устарела. Может есть что-то получше на сегодняшний день? Я не слышал.
#видео #ddwrt
Расскажу про технологию, которую возможно не все знают. Речь пойдёт про port knocking, который я иногда использую. Это очень простой способ защитить подключение к какому-то сервису через интернет.
Суть метода в том, что разрешающее правило на firewall создаётся после поступления определённой последовательности пакетов. Чаще всего в качестве такой последовательности выбирают icmp пакеты определённой длины. Но совсем не обязательно ограничиваться только этим. Тут можно придумать любую последовательность и использовать различные порты, протоколы, tcp флаги и т.д.
Вот простейший пример реализации port knocking на Mikrotik.
Создаём правило в firewall, которое будет на 30 минут добавлять в список winbox_remote все ip, откуда придёт пакет размером 144 байта по протоколу icmp.
Теперь разрешим всем ip адресам из этого списка подключаться по winbox:
Важно поставить эти два правила выше блокирующего правила для input. Теперь достаточно выполнить с любого устройства ping:
(размер пакета ставим 116, потому что 28 байт добавит заголовок)
И роутер откроет доступ к tcp порту 8291, чтобы можно было подключиться по winbox. Через 30 минут адрес будет удалён из списка и новое подключение будет сделать невозможно. По такому же принципу, можно сделать и закрывающее правило. Поработали, отправили определённую последовательность и очистили список winbox_remote.
Таким простым и нехитрым способом можно очень надёжно прикрыть какой-то сервис. Например, тот же rdp. Достаточно настроить port knocking на шлюзе, а пользователю дать батник, который будет сначала пинговать, а потом подключаться. Причём можно использовать более сложную последовательность действий из нескольких шагов. Подобный пример описан в статье. Я его реально применяю очень давно.
В Linux реализацию port knocking тоже настроить не сложно. Есть готовый софт для этого. Например, knockd. При желании, можно и вручную написать правила для iptables, если хорошо разбираетесь в них. Реализаций может быть тоже великое множество, в том числе с использованием списков ipset или более современных nftables. Тема легко гуглится и решается.
#mikrotik #security #gateway
Суть метода в том, что разрешающее правило на firewall создаётся после поступления определённой последовательности пакетов. Чаще всего в качестве такой последовательности выбирают icmp пакеты определённой длины. Но совсем не обязательно ограничиваться только этим. Тут можно придумать любую последовательность и использовать различные порты, протоколы, tcp флаги и т.д.
Вот простейший пример реализации port knocking на Mikrotik.
add action=add-src-to-address-list \
address-list=winbox_remote \
address-list-timeout=30m \
chain=input comment="icmp port knocking" \
in-interface=ether1-wan packet-size=144 protocol=icmp
Создаём правило в firewall, которое будет на 30 минут добавлять в список winbox_remote все ip, откуда придёт пакет размером 144 байта по протоколу icmp.
Теперь разрешим всем ip адресам из этого списка подключаться по winbox:
add action=accept chain=input \
comment="accept winbox_remote" \
dst-port=8291 in-interface=ether1-wan \
protocol=tcp src-address-list=winbox_remote
Важно поставить эти два правила выше блокирующего правила для input. Теперь достаточно выполнить с любого устройства ping:
ping 1.2.3.4 -l 116 -n 1
(размер пакета ставим 116, потому что 28 байт добавит заголовок)
И роутер откроет доступ к tcp порту 8291, чтобы можно было подключиться по winbox. Через 30 минут адрес будет удалён из списка и новое подключение будет сделать невозможно. По такому же принципу, можно сделать и закрывающее правило. Поработали, отправили определённую последовательность и очистили список winbox_remote.
Таким простым и нехитрым способом можно очень надёжно прикрыть какой-то сервис. Например, тот же rdp. Достаточно настроить port knocking на шлюзе, а пользователю дать батник, который будет сначала пинговать, а потом подключаться. Причём можно использовать более сложную последовательность действий из нескольких шагов. Подобный пример описан в статье. Я его реально применяю очень давно.
В Linux реализацию port knocking тоже настроить не сложно. Есть готовый софт для этого. Например, knockd. При желании, можно и вручную написать правила для iptables, если хорошо разбираетесь в них. Реализаций может быть тоже великое множество, в том числе с использованием списков ipset или более современных nftables. Тема легко гуглится и решается.
#mikrotik #security #gateway
С выбором хостинг провайдера так и или иначе сталкиваются все, кто использует современные информационные системы. Меня постоянно спрашивают, какой хостинг могу порекомендовать. Чаще всего я ничего не рекомендую. Максимум могу сказать, кого сам использую, но это совершенно не показатель качества, так как причины выбрать того или иного хостера могут быть разные.
У меня давно есть список, по которому можно оценить того или иного хостера. Это не значит, что по нему получится на 100% выбрать лучшего, но отсеять неподходящие варианты можно. Или как минимум оценить риски и сопоставить их с ценой. Не всегда нужна максимальная надёжность.
1️⃣ У хостера есть юридическое лицо в РФ и оно явно указано на сайте. На это юр. лицо он должен принимать безналичную оплату или выдавать кассовый чек по 54-ФЗ. Так же стоит обратить внимание на возраст этого юр. лица и его историю, оквэды.
2️⃣ Наличие собственного, а не арендованного дата-центра. В идеале, чтобы он принадлежал тому же юр. лицу, что указано на сайте и принимает оплату. На этом, к примеру, погорели Ihor и Masterhost, когда лежали несколько дней. Они размещались в ДЦ, который им не принадлежал. Конфликт владельцев ДЦ и хостера привёл к огромным простоям.
3️⃣ Работа тех. поддержки. Можно просто зарегистрироваться и позадавать нестандартные вопросы. По ответам часто можно понять уровень поддержки. Она бывает сильно разной. Не говоря уже просто о времени реакции.
4️⃣ Прокачка бренда. Я склонен полагать, что тот, кто давно и регулярно вкладывается в развитие бренда, будет стремиться оказывать услуги хорошо. По моим наблюдениям в высококонкурентном рынке хостеров это имеет значение.
5️⃣ Наличие дополнительных сертификатов, типа Tier или нашего ФСТЭК явно идёт в плюс. Их получение непростая задача, так что если хостер заморочился, это косвенно может подтверждать его серьезное намерение долго работать на рынке.
6️⃣ Наличие физического офиса. В идеале в вашем регионе. Или хотя бы в стране. Это небольшой, но косвенный плюс к хостеру.
Понятно, что проверять этот список стоит, когда вы планируете тратить много денег. Например, арендовать или размещать свои сервера. Если вам нужно арендовать VPS за 500 р. в месяц, сильно заморачиваться не имеет смысла.
А вот когда у вас в аренде сервера на 50-100 т.р. или больше в месяц и хостер внезапно ложится и перестаёт отвечать на запросы, как было с Ihor, начинаешь переживать и суетиться. И думать, как в следующий раз подстраховать себя.
Например, в Ihor были люди, которые размещали свои сервера, а потом не могли получить к ним доступ. А какие-то вообще были украдены. В итоге оказалось, что у хостера было одно юр. лицо, оплата шла на другое, а ДЦ принадлежал третьему. То юр. лицо, что получало оплату в итоге и скрылось со всеми деньгами, оставив задолженность перед ДЦ. А когда владельцы серверов приезжали в ДЦ их забирать, им говорили, что обращайтесь к тем, кому вы платили, мы от них денег не видели, они нам должны остались.
#хостинг
У меня давно есть список, по которому можно оценить того или иного хостера. Это не значит, что по нему получится на 100% выбрать лучшего, но отсеять неподходящие варианты можно. Или как минимум оценить риски и сопоставить их с ценой. Не всегда нужна максимальная надёжность.
1️⃣ У хостера есть юридическое лицо в РФ и оно явно указано на сайте. На это юр. лицо он должен принимать безналичную оплату или выдавать кассовый чек по 54-ФЗ. Так же стоит обратить внимание на возраст этого юр. лица и его историю, оквэды.
2️⃣ Наличие собственного, а не арендованного дата-центра. В идеале, чтобы он принадлежал тому же юр. лицу, что указано на сайте и принимает оплату. На этом, к примеру, погорели Ihor и Masterhost, когда лежали несколько дней. Они размещались в ДЦ, который им не принадлежал. Конфликт владельцев ДЦ и хостера привёл к огромным простоям.
3️⃣ Работа тех. поддержки. Можно просто зарегистрироваться и позадавать нестандартные вопросы. По ответам часто можно понять уровень поддержки. Она бывает сильно разной. Не говоря уже просто о времени реакции.
4️⃣ Прокачка бренда. Я склонен полагать, что тот, кто давно и регулярно вкладывается в развитие бренда, будет стремиться оказывать услуги хорошо. По моим наблюдениям в высококонкурентном рынке хостеров это имеет значение.
5️⃣ Наличие дополнительных сертификатов, типа Tier или нашего ФСТЭК явно идёт в плюс. Их получение непростая задача, так что если хостер заморочился, это косвенно может подтверждать его серьезное намерение долго работать на рынке.
6️⃣ Наличие физического офиса. В идеале в вашем регионе. Или хотя бы в стране. Это небольшой, но косвенный плюс к хостеру.
Понятно, что проверять этот список стоит, когда вы планируете тратить много денег. Например, арендовать или размещать свои сервера. Если вам нужно арендовать VPS за 500 р. в месяц, сильно заморачиваться не имеет смысла.
А вот когда у вас в аренде сервера на 50-100 т.р. или больше в месяц и хостер внезапно ложится и перестаёт отвечать на запросы, как было с Ihor, начинаешь переживать и суетиться. И думать, как в следующий раз подстраховать себя.
Например, в Ihor были люди, которые размещали свои сервера, а потом не могли получить к ним доступ. А какие-то вообще были украдены. В итоге оказалось, что у хостера было одно юр. лицо, оплата шла на другое, а ДЦ принадлежал третьему. То юр. лицо, что получало оплату в итоге и скрылось со всеми деньгами, оставив задолженность перед ДЦ. А когда владельцы серверов приезжали в ДЦ их забирать, им говорили, что обращайтесь к тем, кому вы платили, мы от них денег не видели, они нам должны остались.
#хостинг
После публикации на тему port knocking один читатель поделился шикарной утилитой, с помощью которой можно похожим образом открывать доступ на основе HTTP запроса, что во многих случаях удобнее отправки пакетов. Программа называется labean. Автор русскоязычный, поэтому подобное название не случайно (кто не понял, читайте наоборот).
Идея подобного функционала у меня давно сидела в голове, но до реализации дело не дошло. А готовых инструментов я раньше не встречал и даже не слышал о них. Labean работает очень просто и эффективно. С его помощью можно выполнить любое действие при определённом http запросе. Например, обращаемся на url http://10.20.1.56/labean/tuktuk/ssh/on, а labean выполняет проброс порта на нужный сервер. То есть выполняет конкретное действие:
Я проверил работу labean, очень понравился результат. Настраивается быстро и легко. Рассказываю по шагам.
Сначала собираем утилиту из исходников. Написана на GO.
Копируем бинарник, конфиг и systemd unit.
Рисуем примерно такой конфиг:
Не буду все настройки описывать, можно в репозитории посмотреть. Я для теста сделал 2 сервиса и 2 разных действия для них. Первое действие добавляет правило в iptables, второе - запускает службу. Проверил оба примера, всё работает. Привожу для наглядности, чтобы вы понимали функционал. Labean может делать всё, что угодно, а не только правила firewall изменять.
Теперь для любого хоста, к которому мы будем обращаться, добавляем в конфиг nginx ещё один location. Я добавил прямо в default, чтобы по ip обращаться.
При желании можно добавить basic auth и закрыть паролем.
Перечитываем службы systemd и запускаем:
Идём по урлу http://10.20.1.56/labean/tuktuk/ssh/on и смотрим результат:
Зайдём в консоль сервера и посмотрим правила iptables:
Через 30 секунд правило исчезнет. За это отвечает параметр timeout. Если поставить 0, то само удаляться не будет, и нужно будет вручную зайти на закрывающий урл - http://10.20.1.56/labean/tuktuk/ssh/off.
Как вы уже поняли, обращение к url http://10.20.1.56/labean/tuktuk/postfix/on и http://10.20.1.56/labean/tuktuk/postfix/off будет запускать и останавливать службу postfix. Дергать эти адреса можно как в браузере, так и через curl.
В документации заявлена ещё одна возможность через дополнительный аргумент ?ip=123.56.78.9 указывать для обработки различные ip адреса, но у меня почему-то сходу не заработало. Пока не разбирался.
Вот такая простая и удобная программа. Рекомендую обратить внимание. Я точно буду пользоваться, так как это очень удобно. Заметка получилось полной инструкцией.
#security #gateway
Идея подобного функционала у меня давно сидела в голове, но до реализации дело не дошло. А готовых инструментов я раньше не встречал и даже не слышал о них. Labean работает очень просто и эффективно. С его помощью можно выполнить любое действие при определённом http запросе. Например, обращаемся на url http://10.20.1.56/labean/tuktuk/ssh/on, а labean выполняет проброс порта на нужный сервер. То есть выполняет конкретное действие:
iptables -t nat -A PREROUTING -p tcp --dport 31004 -i ens18 \
-s 10.20.1.1 -j DNAT --to 10.30.51.4:22
Я проверил работу labean, очень понравился результат. Настраивается быстро и легко. Рассказываю по шагам.
Сначала собираем утилиту из исходников. Написана на GO.
# apt install golang git nginx
# git clone https://github.com/uprt/labean.git
# cd labean
# go build
Копируем бинарник, конфиг и systemd unit.
# cp labean /usr/sbin
# cp examples/labean.conf.ex /etc/labean.conf
# cp examples/labean.service.ex /etc/systemd/system/labean.service
Рисуем примерно такой конфиг:
{
"listen": "127.0.0.1:8080",
"url_prefix": "tuktuk",
"external_ip": "10.20.1.56",
"real_ip_header": "X-Real-IP",
"allow_explicit_ips": true,
"tasks": [
{
"name": "ssh",
"timeout": 30,
"on_command": "iptables -t nat -A PREROUTING -p tcp --dport 31004 -i ens18 -s {clientIP} -j DNAT --to 10.30.51.4:22",
"off_command": "iptables -t nat -D PREROUTING -p tcp --dport 31004 -i ens18 -s {clientIP} -j DNAT --to 10.30.51.4:22"
},
{
"name": "postfix",
"timeout": 0,
"on_command": "systemctl start postfix",
"off_command": "systemctl stop postfix"
}
]
}
Не буду все настройки описывать, можно в репозитории посмотреть. Я для теста сделал 2 сервиса и 2 разных действия для них. Первое действие добавляет правило в iptables, второе - запускает службу. Проверил оба примера, всё работает. Привожу для наглядности, чтобы вы понимали функционал. Labean может делать всё, что угодно, а не только правила firewall изменять.
Теперь для любого хоста, к которому мы будем обращаться, добавляем в конфиг nginx ещё один location. Я добавил прямо в default, чтобы по ip обращаться.
location ~ ^/labean/(.*) {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8080/$1;
}
При желании можно добавить basic auth и закрыть паролем.
Перечитываем службы systemd и запускаем:
# systemctl daemon-reload
# systemctl start nginx labean
Идём по урлу http://10.20.1.56/labean/tuktuk/ssh/on и смотрим результат:
{
"commandLine": "iptables -t nat -A PREROUTING -p tcp --dport 31004 -i ens18 -s 10.20.1.1 -j DNAT --to 10.30.51.4:22",
"returnCode": 0,
"timeoutInSeconds": 30,
"clientIp": "10.20.1.1"
}
Зайдём в консоль сервера и посмотрим правила iptables:
# iptables -L -v -n -t nat | grep 31004
0 0 DNAT tcp -- ens18 * 10.20.1.1 0.0.0.0/0 tcp dpt:31004 to:10.30.51.4:22
Через 30 секунд правило исчезнет. За это отвечает параметр timeout. Если поставить 0, то само удаляться не будет, и нужно будет вручную зайти на закрывающий урл - http://10.20.1.56/labean/tuktuk/ssh/off.
Как вы уже поняли, обращение к url http://10.20.1.56/labean/tuktuk/postfix/on и http://10.20.1.56/labean/tuktuk/postfix/off будет запускать и останавливать службу postfix. Дергать эти адреса можно как в браузере, так и через curl.
В документации заявлена ещё одна возможность через дополнительный аргумент ?ip=123.56.78.9 указывать для обработки различные ip адреса, но у меня почему-то сходу не заработало. Пока не разбирался.
Вот такая простая и удобная программа. Рекомендую обратить внимание. Я точно буду пользоваться, так как это очень удобно. Заметка получилось полной инструкцией.
#security #gateway