У меня уже было много заметок про различные системы мониторинга (#мониторинг). Сегодня будет еще одна - Icinga. Это весьма зрелая и качественная система мониторинга, на которую стоит обратить внимание, если выбираете, на чём остановиться и еще не решили, что вам нужен Zabbix или Prometheus.
Изначально это был форк Nagios. Но со временем их пути сильно разошлись, так что можно считать Icinga самостоятельным продуктом. Причем качественным и полностью бесплатным:
https://icinga.com/
https://github.com/Icinga
Icinga полноценная система мониторинга, которая включает в себя:
- Автоматизацию мониторинга инфраструктуры, в том числе сетевой, в том числе с использованием иерархической распределенной структуры.
- Сбор метрик и логов.
- Аналитику.
- Оповещения.
- Отчёты.
- Визуализацию, в том числе с помощью дополнительных модулей для дашбордов.
В общем, там есть всё, что надо, для полноценного мониторинга. Данные может собирать как с помощью агентов, так и без них. Бэкенд написан на C++, веб интерфейс на php. В качестве БД поддерживает MySQL, Oracle Database, PostgreSQL.
Когда тестировал, очень понравился красивый, лакончиный, отызвчивый и шустрый веб интерфейс. Прям приятно по нему потыкать, все быстро открывается, логично распределено. Попробовать проще всего, развернув всё через docker-compose. Есть репозиторий:
https://github.com/lippserd/docker-compose-icinga
Там готовый compose файл, но есть ошибки в Dockerfile в /env/icingaweb2/. Рабочая версия файла будет такая:
Используйте эту репу только для тестов. Я не знаю, кто и зачем ее сделал и можно ли доверять всему. На постоянку лучше развернуть без докера.
После запуска всех контейнеров идите в веб интерфейс на порт 8080, учетка - icingaadmin / icinga.
Можете также публичное demo посмотреть:
https://icinga.com/demo/
#мониторинг #selfhosted
Изначально это был форк Nagios. Но со временем их пути сильно разошлись, так что можно считать Icinga самостоятельным продуктом. Причем качественным и полностью бесплатным:
https://icinga.com/
https://github.com/Icinga
Icinga полноценная система мониторинга, которая включает в себя:
- Автоматизацию мониторинга инфраструктуры, в том числе сетевой, в том числе с использованием иерархической распределенной структуры.
- Сбор метрик и логов.
- Аналитику.
- Оповещения.
- Отчёты.
- Визуализацию, в том числе с помощью дополнительных модулей для дашбордов.
В общем, там есть всё, что надо, для полноценного мониторинга. Данные может собирать как с помощью агентов, так и без них. Бэкенд написан на C++, веб интерфейс на php. В качестве БД поддерживает MySQL, Oracle Database, PostgreSQL.
Когда тестировал, очень понравился красивый, лакончиный, отызвчивый и шустрый веб интерфейс. Прям приятно по нему потыкать, все быстро открывается, логично распределено. Попробовать проще всего, развернув всё через docker-compose. Есть репозиторий:
https://github.com/lippserd/docker-compose-icinga
Там готовый compose файл, но есть ошибки в Dockerfile в /env/icingaweb2/. Рабочая версия файла будет такая:
FROM alpine/git
WORKDIR /
COPY icingadb-load-monitoring.patch .
RUN git clone https://github.com/Icinga/icingadb-web.git icingadb && \
cd icingadb && \
git checkout e6e5bb30d37eacaf5498f96412b4b5f400cc9309 && \
cd .. && \
git apply --directory icingadb icingadb-load-monitoring.patch
FROM icinga/icingaweb2:2.9
USER root
RUN rm -rf /usr/share/icingaweb2/modules/icingadb/*
USER www-data
COPY --from=0 /icingadb /usr/share/icingaweb2/modules/icingadb
Используйте эту репу только для тестов. Я не знаю, кто и зачем ее сделал и можно ли доверять всему. На постоянку лучше развернуть без докера.
После запуска всех контейнеров идите в веб интерфейс на порт 8080, учетка - icingaadmin / icinga.
Можете также публичное demo посмотреть:
https://icinga.com/demo/
#мониторинг #selfhosted
Очередная перегитлеровка. На этот раз речь пойдёт о Docker. Хипстеры взяли контейнеры, плотненько их забили по нодам кластера. Один из контейнеров вызвал kernel panic и всё упало.
Гитлер их разносит за то, что в прод тащат непроверенные контейнеры из docker hub, которые написали русские хакеры. За то, что там конструкции типа: curl | sudo bash, за то, что знают только то, что написано в статьях на hackernews и т.д.
Видео как бальзам на душу для тех, кто не любит Docker. Гитлер популярно объяснил, что с ним не так. Особенно доставила его фраза:
Isolation my ass!
и слова успокаивающей плачущую женщину:
Don't cry, you can run bash on Windows 10 now.
Юмор на 10 из 10, очень сочно.
https://www.youtube.com/watch?v=PivpCKEiQOQ
#юмор #видео
Гитлер их разносит за то, что в прод тащат непроверенные контейнеры из docker hub, которые написали русские хакеры. За то, что там конструкции типа: curl | sudo bash, за то, что знают только то, что написано в статьях на hackernews и т.д.
Видео как бальзам на душу для тех, кто не любит Docker. Гитлер популярно объяснил, что с ним не так. Особенно доставила его фраза:
Isolation my ass!
и слова успокаивающей плачущую женщину:
Don't cry, you can run bash on Windows 10 now.
Юмор на 10 из 10, очень сочно.
https://www.youtube.com/watch?v=PivpCKEiQOQ
#юмор #видео
YouTube
Hitler uses Docker
Hitler uses Docker (Downfall parody)
В репозиториях популярных дистрибутивов живёт небольшая утилита exa, которая делает всё то же самое, что и ls, только красиво окрашивает вывод. В Debian/Ubuntu она в unstable репе. В rpm-based дистрах в федореном репозитории.
https://github.com/ogham/exa
https://the.exa.website/
Утилита состоит из одного бинарника, так что можно просто скачать и запустить. Есть поддержка git, так что можно увидеть статус (modified, Untracked) каждого файла.
Exa умеет делать древовидное отображение каталогов и файлов с возможностью ограничивать глубину. Например:
# exa --tree --level=2 /boot
Удобная и функциональная утилита. Можно просто заменить ls символьной ссылкой и пользоваться только exa. Работает так же быстро.
#terminal #утилита
https://github.com/ogham/exa
https://the.exa.website/
Утилита состоит из одного бинарника, так что можно просто скачать и запустить. Есть поддержка git, так что можно увидеть статус (modified, Untracked) каждого файла.
Exa умеет делать древовидное отображение каталогов и файлов с возможностью ограничивать глубину. Например:
# exa --tree --level=2 /boot
Удобная и функциональная утилита. Можно просто заменить ls символьной ссылкой и пользоваться только exa. Работает так же быстро.
#terminal #утилита
Еще одна тематическая игра с уклоном в программирование - MHRD. Дизайн в стиле командной строки. Вы будете выполнять задачи инженера по железу. Вам надо создавать и программировать печатные платы.
https://store.steampowered.com/app/576030/MHRD/
У вас будет своя среда для разработки программного обеспечения. Пишите код на MHRD hardware design language. Конечная цель, как я понял - разработать полностью свой CPU.
Игра для тех, кто любит поработать после работы 😁 🤡 Русского языка нет.
Немного отзывов:
Если ты более-менее знаешь английский и случайно можешь в двоичную логику - в этой игре можно пропасть надолго. Очень. Первые 15 минут ты будешь страдать, но стоит смочь в NOT - и только голод (ну или смерть) вытащит тебя из этой игры.
Игра затягивает настолько, что на силу оторвался написать обзор.
Если (вдруг) вы подружились с логикой, то игра для вас! Хоть эта игра очень сильно ломает мозг, она утягивает в чёрную дыру. Готовьтесь, будет сложно даже лечь спать, не пройдя её.
Классные задачки, решение которых происходит больше в оффлайне на бумаге, чем в игре. В начале проектируешь базовые элементы, потом на их основе более продвинутые. Самым сложным для меня оказался полный сумматор. Самым интересным - процессор. Ведь для его проектирования пришлось рисовать не один вариант схем на А4 и вычислять циклы на бумаге.
Пройдена за 8 часов, за один присест. Простовата для человека, знакомого с двоичной логикой, но все равно увлекательна, позволяет посмотреть, как работают сложные логические элементы на основе единственного простейшего "в бою", своими руками. Ну и экстаз, по окончании составления самого процессора.
#игра
https://store.steampowered.com/app/576030/MHRD/
У вас будет своя среда для разработки программного обеспечения. Пишите код на MHRD hardware design language. Конечная цель, как я понял - разработать полностью свой CPU.
Игра для тех, кто любит поработать после работы 😁 🤡 Русского языка нет.
Немного отзывов:
Если ты более-менее знаешь английский и случайно можешь в двоичную логику - в этой игре можно пропасть надолго. Очень. Первые 15 минут ты будешь страдать, но стоит смочь в NOT - и только голод (ну или смерть) вытащит тебя из этой игры.
Игра затягивает настолько, что на силу оторвался написать обзор.
Если (вдруг) вы подружились с логикой, то игра для вас! Хоть эта игра очень сильно ломает мозг, она утягивает в чёрную дыру. Готовьтесь, будет сложно даже лечь спать, не пройдя её.
Классные задачки, решение которых происходит больше в оффлайне на бумаге, чем в игре. В начале проектируешь базовые элементы, потом на их основе более продвинутые. Самым сложным для меня оказался полный сумматор. Самым интересным - процессор. Ведь для его проектирования пришлось рисовать не один вариант схем на А4 и вычислять циклы на бумаге.
Пройдена за 8 часов, за один присест. Простовата для человека, знакомого с двоичной логикой, но все равно увлекательна, позволяет посмотреть, как работают сложные логические элементы на основе единственного простейшего "в бою", своими руками. Ну и экстаз, по окончании составления самого процессора.
#игра
В комментариях к одной из заметок как-то затронули тему ошибочного сноса прав доступа на файлы в Linux. Оказывается, есть очень простой и быстрый способ восстановить дефолтные права доступа для конкретного пакета, либо на все установленные в системе пакеты. Делается это стандартно с помощью rpm. Способ только для rpm-based дистрибутивов.
Я решил сразу же сделать небольшую шпаргалку по этой программе, чтобы ее можно было сохранить и потом пользоваться.
Восстановить права доступа пакета или всех пакетов разом. И то же самое для владельца.
Установка пакета package.rpm:
Обновление пакета package.rpm
Удаление пакета package. И его же удаление, но без зависимостей.
Список всех установленных пакетов:
Список файлов, установленных пакетом:
Определение пакета, которому принадлежит файл:
Список конфигурационных файлов пакета:
Список зависимостей пакета:
Посмотреть содержимое пакета package.rpm:
Извлечение содержимого пакета package.rpm в текущую директорию. Будет воссоздана вся структура каталогов, которые используются в пакете.
#terminal #bash
Я решил сразу же сделать небольшую шпаргалку по этой программе, чтобы ее можно было сохранить и потом пользоваться.
Восстановить права доступа пакета или всех пакетов разом. И то же самое для владельца.
rpm --setperms package
for p in $(rpm -qa); do rpm --setperms $p; done
rpm --setugids package
for p in $(rpm -qa); do rpm --setugids $p; done
Установка пакета package.rpm:
rpm -ivh package.rpm
Обновление пакета package.rpm
rpm -Uvh package.rpm
Удаление пакета package. И его же удаление, но без зависимостей.
rpm -ev package
rpm -ev --nodeps --nosuggest package
Список всех установленных пакетов:
rpm -qa
Список файлов, установленных пакетом:
rpm -ql package
Определение пакета, которому принадлежит файл:
rpm -qf /path/to/file
Список конфигурационных файлов пакета:
rpm -qc package
Список зависимостей пакета:
rpm -qpR package
Посмотреть содержимое пакета package.rpm:
rpm2cpio package.rpm | cpio -t
Извлечение содержимого пакета package.rpm в текущую директорию. Будет воссоздана вся структура каталогов, которые используются в пакете.
rpm2cpio package.rpm | cpio -idv
#terminal #bash
Программу radmin я знаю очень давно. Мне даже кажется, что она уже существовала в тот момент, когда я начал подрабатывать системным администратором в институте (2005 г., подумать только, у меня стаж уже 16 лет 😱). Только недавно узнал, что существует бесплатная программа Radmin VPN для объединения компьютеров в одну локальную сеть по vpn. Это аналог программы Tailscale, про которую недавно рассказывал.
https://www.radmin-vpn.com/ru/
Radmin VPN – бесплатная и простая в использовании программа для создания виртуальных частных сетей (VPN). Программа позволяет пользователям устанавливать безопасное и надежное соединение между компьютерами через Интернет, как если бы они были соединены через локальную сеть.
Добавить тут особо нечего. Ставится и работает просто. Обычный установщик Windows. Другие системы не поддерживаются. Это большой минус. А плюс в том, что программа полностью бесплатная, без каких-либо ограничений или платных фич. Я так понял, что создана она для рекламы и продвижения другого коммерческого продукта этой компании - Radmin.
Настройка максимально простая. Ставите клиент. Он автоматически регистрируется где-то в облаке разработчика, подключается к нему и получает серый ip. Вы можете создать свою новую локальную сеть или подключиться к существующей. При создании сети указывается её имя и пароль. На другом устройстве достаточно установить клиент, ввести имя сети и пароль к ней. Оба устройства окажутся в этой сети.
#vpn
https://www.radmin-vpn.com/ru/
Radmin VPN – бесплатная и простая в использовании программа для создания виртуальных частных сетей (VPN). Программа позволяет пользователям устанавливать безопасное и надежное соединение между компьютерами через Интернет, как если бы они были соединены через локальную сеть.
Добавить тут особо нечего. Ставится и работает просто. Обычный установщик Windows. Другие системы не поддерживаются. Это большой минус. А плюс в том, что программа полностью бесплатная, без каких-либо ограничений или платных фич. Я так понял, что создана она для рекламы и продвижения другого коммерческого продукта этой компании - Radmin.
Настройка максимально простая. Ставите клиент. Он автоматически регистрируется где-то в облаке разработчика, подключается к нему и получает серый ip. Вы можете создать свою новую локальную сеть или подключиться к существующей. При создании сети указывается её имя и пароль. На другом устройстве достаточно установить клиент, ввести имя сети и пароль к ней. Оба устройства окажутся в этой сети.
#vpn
Вновь возвращаюсь к теме чатов. Ещё пара вариантов для рассмотрения осталась. Сегодня поговорим о Matrix Synapse. Это не совсем чат-сервер, скорее платформа для организации чатов. Расскажу подробнее.
Matrix - это открытый протокол для децентрализованной коммуникации. Он может быть реализован в различных серверах и мессенджерах - https://matrix.org.
Synapse - локальный сервер, который работает на протоколе matrix, обеспечивает возможность подключения и общения клиентов. Написан на Python - https://matrix.org/docs/projects/server/synapse. Можно быстро запустить в docker или воспользоваться публичным сервером.
Для данной связки можно использовать любой клиент. Наиболее популярным и зрелым является клиент Riot, который в настоящий момент переименован в Element. Я пробовал именно его, когда тестировал данную связку. Он есть как web клиент, desktop и android приложение - https://element.io. К сожалению, под капотом там javascript и какой-нибудь современный фреймворк (не уточнял, какой именно), так что большого смысла использовать именно приложение нет. Оно точно так же выглядит, как и страница в браузере.
В плане функционала данная связка не будет сильно отличаться от остальных чатов. Всё необходимое есть. Внешний вид тоже нормальный. Явным плюсом подобного решения является бесплатность и гибкость, возможность расширять функционал различными дополнениями и разными клиентами. Плюс, есть возможность интеграции с другими системами, например, сервером видеоконференций Jitsi-meet.
Минус сразу на виду и следует из плюсов. Подобный конструктор по определению будет менее стабилен и более требователен к настройке и управлению. Порог вхождения будет повыше, хотя какой-то кардинальной сложности нет. У меня есть статья-обзор по установке и настройке подобной связки. Она немного устарела, но получить представление о чат-сервере можно.
Будет неплохо, если протокол Matrix продолжит свое развитие и завоюет популярность, как в свое время irc или xmpp. Пользователи от этого только выиграют. Сейчас по факту почти все пользуются закрытыми проколами и проприетарным ПО в этой области. Если честно, я не уверен, что у Matrix что-то сильно популярное выйдет. Мне кажется, сфера общения в виде мессенджеров очень лакомая для коммерческих организаций. Они будут максимально развивать и наращивать бесплатный функционал, лишь бы вы пользовались их продуктами и сливали информацию о себе. Open Source продукту будет трудно с ними конкурировать.
Если кто-то внедрял подобный чат-сервер, дайте обратную связь. Как там в плане стабильности и удобства в реальной эксплуатации.
#chat #selfhosted
Matrix - это открытый протокол для децентрализованной коммуникации. Он может быть реализован в различных серверах и мессенджерах - https://matrix.org.
Synapse - локальный сервер, который работает на протоколе matrix, обеспечивает возможность подключения и общения клиентов. Написан на Python - https://matrix.org/docs/projects/server/synapse. Можно быстро запустить в docker или воспользоваться публичным сервером.
Для данной связки можно использовать любой клиент. Наиболее популярным и зрелым является клиент Riot, который в настоящий момент переименован в Element. Я пробовал именно его, когда тестировал данную связку. Он есть как web клиент, desktop и android приложение - https://element.io. К сожалению, под капотом там javascript и какой-нибудь современный фреймворк (не уточнял, какой именно), так что большого смысла использовать именно приложение нет. Оно точно так же выглядит, как и страница в браузере.
В плане функционала данная связка не будет сильно отличаться от остальных чатов. Всё необходимое есть. Внешний вид тоже нормальный. Явным плюсом подобного решения является бесплатность и гибкость, возможность расширять функционал различными дополнениями и разными клиентами. Плюс, есть возможность интеграции с другими системами, например, сервером видеоконференций Jitsi-meet.
Минус сразу на виду и следует из плюсов. Подобный конструктор по определению будет менее стабилен и более требователен к настройке и управлению. Порог вхождения будет повыше, хотя какой-то кардинальной сложности нет. У меня есть статья-обзор по установке и настройке подобной связки. Она немного устарела, но получить представление о чат-сервере можно.
Будет неплохо, если протокол Matrix продолжит свое развитие и завоюет популярность, как в свое время irc или xmpp. Пользователи от этого только выиграют. Сейчас по факту почти все пользуются закрытыми проколами и проприетарным ПО в этой области. Если честно, я не уверен, что у Matrix что-то сильно популярное выйдет. Мне кажется, сфера общения в виде мессенджеров очень лакомая для коммерческих организаций. Они будут максимально развивать и наращивать бесплатный функционал, лишь бы вы пользовались их продуктами и сливали информацию о себе. Open Source продукту будет трудно с ними конкурировать.
Если кто-то внедрял подобный чат-сервер, дайте обратную связь. Как там в плане стабильности и удобства в реальной эксплуатации.
#chat #selfhosted
Есть отличный инструмент для хранения любого вида информации, в том числе и по сетевому оборудованию - Exel. У меня целая куча всевозможных таблиц с информацией. Но если вам нужно что-то более удобное для учёта и инвентаризации всего, что связано с сетями и информации об IP адресах, предлагаю обратить внимание на NetBox.
Netbox - это приложение для infrastructure resource modeling (IRM). Написано командой сетевых инженеров DigitalOcean специально для системных администраторов. Изначально использовалось для управления внутренней инфраструктурой, потом было опубликовано в open source.
Полезные ссылки:
https://netbox.readthedocs.io/
https://github.com/netbox-community/netbox
С помощью Netbox можно вести учёт ip адресов, стоек, расположения оборудования в стойках, сетевых соединений, виртуальных машин, схем подключения операторов связи, учётных данных для доступа к устройствам. Есть интеграция с LDAP. В общем, зрелый программный продукт, готовый к промышленной эксплуатации. Отдельно подчеркну, что Netbox это в первую очередь учёт и инвентаризация, не мониторинг и управление.
Netbox построен на базе Django (Python), Nginx или Apache, PostgreSQL в качестве СУБД. Посмотреть и попробовать очень просто. Есть полнофункциональное demo - https://demo.netbox.dev.
Если будете ставить себе, есть подробная документация с видео по установке и связке всех компонентов. Если вы devops, у вас причёсанная борода, вы пьете крафтовый кофе, и вы выше всей этой ручной возни с пакетами и настройками, то для вас есть готовый docker-compose:
https://github.com/netbox-community/netbox-docker
#network #управление #ITSM #IPAM
Netbox - это приложение для infrastructure resource modeling (IRM). Написано командой сетевых инженеров DigitalOcean специально для системных администраторов. Изначально использовалось для управления внутренней инфраструктурой, потом было опубликовано в open source.
Полезные ссылки:
https://netbox.readthedocs.io/
https://github.com/netbox-community/netbox
С помощью Netbox можно вести учёт ip адресов, стоек, расположения оборудования в стойках, сетевых соединений, виртуальных машин, схем подключения операторов связи, учётных данных для доступа к устройствам. Есть интеграция с LDAP. В общем, зрелый программный продукт, готовый к промышленной эксплуатации. Отдельно подчеркну, что Netbox это в первую очередь учёт и инвентаризация, не мониторинг и управление.
Netbox построен на базе Django (Python), Nginx или Apache, PostgreSQL в качестве СУБД. Посмотреть и попробовать очень просто. Есть полнофункциональное demo - https://demo.netbox.dev.
Если будете ставить себе, есть подробная документация с видео по установке и связке всех компонентов. Если вы devops, у вас причёсанная борода, вы пьете крафтовый кофе, и вы выше всей этой ручной возни с пакетами и настройками, то для вас есть готовый docker-compose:
https://github.com/netbox-community/netbox-docker
#network #управление #ITSM #IPAM
Прочитал на stackoverflow ответ от DBA Postgresql на тему размещения субд в контейнерах. Ответу уже 3 года, но с тех пор принципиально ничего не изменилось. Кратко смысл такой:
▪ Вам надо монтировать директорию с БД к хосту. Докеровская файловая система вообще не пригодна для интенсивной записи.
▪ Вам надо использовать сеть хостовой системы, чтобы не было снижения производительности на накладные расходы.
Эти 2 условия практически полностью нивелируют удобства Docker. Большого смысла запускать СУБД в контейнере нет. Речь идёт о нагруженной базе данных в проде.
Есть большой опыт использования небольших баз данных и кластеров postgresql в kubernetes у компании Zalando. Я делал отдельную заметку по их выступлению с этой темой на конференции. Там идея такая - большие нагруженные базы в контейнерах не запускают. А вот небольшие базы отдельных микросервисов запускают в kubernetes. Это позволяет организовать удобное централизованное управление и деплой новых баз для различных сервисов и команд.
У меня была еще одна заметка на тему базы данных в Docker. Там я делаю выжимку из статьи компании Percona о её собственных тестах производительности БД в контейнерах. Там вывод такой же, как и в у DBA со stackoverflow. Нужно обязательно использовать сеть хоста, чтобы не было просадки производительности.
В итоге получается, что для хорошей производительности, БД жёстко мапится к самому хосту и сетью, и диском. Ни о каком stateless подходе, на который в первую очередь ориентированы контейнеры, речи не идёт. Польза контейнеров в истории с субд может быть только при использовании большого количества ненагруженных баз, управление которыми может быть организовано с помощью средств оркестрации контейнерами.
У меня в практике как то раз был случай, когда база данных Mysql, запущенная в контейнере, просто исчезла. Разработчики запустили один проект заказчику полностью в контейнерах. В какой-то момент замапленная директория с файлами БД оказалась полностью пустой. Был такой древний баг. Его уже давно пофиксили.
Написал заметку, чтобы вы лишний раз подумали, когда будете использовать докер, а нужен ли он тут. Запускать одиночную субд на хосте в контейнере нет никакого смысла. Точно так же ее можно установить через пакетный менеджер и запустить. Работать будет быстрее, проблем будет меньше.
#postgresql #mysql #docker
▪ Вам надо монтировать директорию с БД к хосту. Докеровская файловая система вообще не пригодна для интенсивной записи.
▪ Вам надо использовать сеть хостовой системы, чтобы не было снижения производительности на накладные расходы.
Эти 2 условия практически полностью нивелируют удобства Docker. Большого смысла запускать СУБД в контейнере нет. Речь идёт о нагруженной базе данных в проде.
Есть большой опыт использования небольших баз данных и кластеров postgresql в kubernetes у компании Zalando. Я делал отдельную заметку по их выступлению с этой темой на конференции. Там идея такая - большие нагруженные базы в контейнерах не запускают. А вот небольшие базы отдельных микросервисов запускают в kubernetes. Это позволяет организовать удобное централизованное управление и деплой новых баз для различных сервисов и команд.
У меня была еще одна заметка на тему базы данных в Docker. Там я делаю выжимку из статьи компании Percona о её собственных тестах производительности БД в контейнерах. Там вывод такой же, как и в у DBA со stackoverflow. Нужно обязательно использовать сеть хоста, чтобы не было просадки производительности.
В итоге получается, что для хорошей производительности, БД жёстко мапится к самому хосту и сетью, и диском. Ни о каком stateless подходе, на который в первую очередь ориентированы контейнеры, речи не идёт. Польза контейнеров в истории с субд может быть только при использовании большого количества ненагруженных баз, управление которыми может быть организовано с помощью средств оркестрации контейнерами.
У меня в практике как то раз был случай, когда база данных Mysql, запущенная в контейнере, просто исчезла. Разработчики запустили один проект заказчику полностью в контейнерах. В какой-то момент замапленная директория с файлами БД оказалась полностью пустой. Был такой древний баг. Его уже давно пофиксили.
Написал заметку, чтобы вы лишний раз подумали, когда будете использовать докер, а нужен ли он тут. Запускать одиночную субд на хосте в контейнере нет никакого смысла. Точно так же ее можно установить через пакетный менеджер и запустить. Работать будет быстрее, проблем будет меньше.
#postgresql #mysql #docker
Давно не было заметок про полезные утилиты для бэкапа. Решил это исправить. Рассказываю про Butterfly Backup. Это небольшая консольная обёртка над rsync, написанная на python. Идея её в том, что она использует основное преимущество rsync - скорость сравнения и копирования информации. А так же добавляет некоторую гибкость, которой изначально в rsync нет. То есть расширяет его функционал.
https://github.com/MatteoGuadrini/Butterfly-Backup
https://butterfly-backup.readthedocs.io/en/latest/
Butterfly Backup избавляет от необходимости писать собственную bash обвязку вокруг rsync для организации инкрементных или разностных бэкапов. Так же упрощает восстановление и просмотр содержимого бэкапов. Для удобства можно подготовить готовый конфиг.
Основные возможности:
◽ Поддерживаемые бэкапы: Full, Incremental, Differential, Mirror.
◽ Использование центрального сервера для хранения бэкапов разных клиентов.
◽ Детальный просмотр содержимого отдельных бэкапов.
◽ Бэкап всей системы, а так же ее восстановление на другое железо или VM.
◽ Принцип снятия данных agent-less, по протоколу rsync или ssh.
Для работы BB нужен Python3. Далее достаточно скопировать репозиторий и запустить скрипт установки:
git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git
cd Butterfly-Backup
sudo python3 setup.py
После этого копируем rsa ключи, которые предварительно создали, на удаленный host, чтобы иметь к нему доступ:
bb config --deploy host1
Дальше запускаем простой бэкап:
bb backup --computer host1 --destination /mnt/backup --data System --type Unix
У bb есть преднастройки для типовых бэкапов трёх типов систем - Unix, Windows, MacOS. Если указать после ключа data тип данных и далее тип системы, то будет забэкаплено всё, что относится к этому типу. В моем примере это системные директории.
По ссылке на документацию, что я привел в начале, можно посмотреть все основные возможности и ключи для бэкапа и восстановления.
#backup
https://github.com/MatteoGuadrini/Butterfly-Backup
https://butterfly-backup.readthedocs.io/en/latest/
Butterfly Backup избавляет от необходимости писать собственную bash обвязку вокруг rsync для организации инкрементных или разностных бэкапов. Так же упрощает восстановление и просмотр содержимого бэкапов. Для удобства можно подготовить готовый конфиг.
Основные возможности:
◽ Поддерживаемые бэкапы: Full, Incremental, Differential, Mirror.
◽ Использование центрального сервера для хранения бэкапов разных клиентов.
◽ Детальный просмотр содержимого отдельных бэкапов.
◽ Бэкап всей системы, а так же ее восстановление на другое железо или VM.
◽ Принцип снятия данных agent-less, по протоколу rsync или ssh.
Для работы BB нужен Python3. Далее достаточно скопировать репозиторий и запустить скрипт установки:
git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git
cd Butterfly-Backup
sudo python3 setup.py
После этого копируем rsa ключи, которые предварительно создали, на удаленный host, чтобы иметь к нему доступ:
bb config --deploy host1
Дальше запускаем простой бэкап:
bb backup --computer host1 --destination /mnt/backup --data System --type Unix
У bb есть преднастройки для типовых бэкапов трёх типов систем - Unix, Windows, MacOS. Если указать после ключа data тип данных и далее тип системы, то будет забэкаплено всё, что относится к этому типу. В моем примере это системные директории.
По ссылке на документацию, что я привел в начале, можно посмотреть все основные возможности и ключи для бэкапа и восстановления.
#backup
Помните, я уже писал о проблеме Centos 7 и сертификатов Let's Encrypt? Не буду сильно повторяться, так как все подробности по ссылке. Кратко скажу, что из-за устаревшей версии Openssl, в Centos 7 не будет поддержки нового корневого сертификата, а старый протухает 30 сентября.
Вариантов решения этой проблемы несколько:
1️⃣ Обновить версию openssl на 1.1.1 или выше. Теоретически это может привести к каким-то проблемам с зависимостями, так как этой версии нет в базовых репах. Ставить придётся вручную.
2️⃣ Заблокировать протухающий сертификат. Сделать это можно так:
# trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem
# update-ca-trust extract
Перед этим на всякий случай сохраните текущую цепочку CA сертификатов:
# cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup
3️⃣ Выпускать новые сертификаты с использованием другой цепочки CA:
# certbot renew --preferred-chain "ISRG Root X1"
Данная возможность появилась в версии certbot 1.6.0.
Подробности всей этой истории по ссылке:
https://blog.devgenius.io/rhel-centos-7-fix-for-lets-encrypt-change-8af2de587fe4
Я там новость подсмотрел.
#centos
Вариантов решения этой проблемы несколько:
1️⃣ Обновить версию openssl на 1.1.1 или выше. Теоретически это может привести к каким-то проблемам с зависимостями, так как этой версии нет в базовых репах. Ставить придётся вручную.
2️⃣ Заблокировать протухающий сертификат. Сделать это можно так:
# trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem
# update-ca-trust extract
Перед этим на всякий случай сохраните текущую цепочку CA сертификатов:
# cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup
3️⃣ Выпускать новые сертификаты с использованием другой цепочки CA:
# certbot renew --preferred-chain "ISRG Root X1"
Данная возможность появилась в версии certbot 1.6.0.
Подробности всей этой истории по ссылке:
https://blog.devgenius.io/rhel-centos-7-fix-for-lets-encrypt-change-8af2de587fe4
Я там новость подсмотрел.
#centos
Есть небольшая утилита для организации vpn подключения через ssh - sshuttle. Она есть в стандартных репозиториях популярных дистрибутивов. В Centos живет в репозитории epel. Также присутствует в pip, так как написана на python.
https://github.com/sshuttle/sshuttle
https://sshuttle.readthedocs.io/en/stable/usage.html
Установка:
Её удобство в простоте и функциональности. VPN соединение организуется поверх SSH. Покажу на примерах:
Выражение 0/0 эквивалентно маске 0.0.0.0/0, то есть весь трафик отправляем в этот туннель. Будьте аккуратны, когда начнёте тестировать. Вас отключит от текущего ssh соединения. Можете сразу же проверить, через какой ip вы выходите в интернет:
Должны увидеть внешний ip ssh сервера, к которому подключились. С помощью sshuttle удобно подключаться к jump host и дальше на целевое устройство. Допустим, на какое-то устройство или сервер (ip - 2.2.2.2) можно подключиться только через конкретный сервер (ip - 3.3.3.3). Используем для подключения sshuttle.
После подобного подключения у вас будет создан маршрут к 2.2.2.2/32 через ssh сервер 3.3.3.3. Дальше можете со своей машины подключиться к 2.2.2.2.
Во время тестов я столкнулся с ошибкой: fatal: server died with error code 255. Подключение по ssh осуществлялось, а потом sshuttle падал. Решил вот так:
Если используется нестандартный ssh порт, то указать его следует так:
Для использования ключа при ssh подключении, добавьте следующие опции:
Если что-то пойдёт не так, включите подробное логировние через ключ -vvvv. Увидите, какие правила sshuttle добавляет в firewall и как прописывает маршруты. Там никакой магии, всё наглядно.
В Windows через WSL2 тоже работает, что весьма удобно. Данной заметки достаточно, чтобы начать пользоваться программой, так что смело добавляйте в закладки.
#vpn #ssh
https://github.com/sshuttle/sshuttle
https://sshuttle.readthedocs.io/en/stable/usage.html
Установка:
# dnf install sshuttle
# apt install sshuttle
# pip install sshuttle
Её удобство в простоте и функциональности. VPN соединение организуется поверх SSH. Покажу на примерах:
# sshuttle -r user@1.2.3.4 0/0
Выражение 0/0 эквивалентно маске 0.0.0.0/0, то есть весь трафик отправляем в этот туннель. Будьте аккуратны, когда начнёте тестировать. Вас отключит от текущего ssh соединения. Можете сразу же проверить, через какой ip вы выходите в интернет:
# curl ifconfig.me/ip
Должны увидеть внешний ip ssh сервера, к которому подключились. С помощью sshuttle удобно подключаться к jump host и дальше на целевое устройство. Допустим, на какое-то устройство или сервер (ip - 2.2.2.2) можно подключиться только через конкретный сервер (ip - 3.3.3.3). Используем для подключения sshuttle.
# sshuttle -r user@3.3.3.3 2.2.2.2/32
После подобного подключения у вас будет создан маршрут к 2.2.2.2/32 через ssh сервер 3.3.3.3. Дальше можете со своей машины подключиться к 2.2.2.2.
Во время тестов я столкнулся с ошибкой: fatal: server died with error code 255. Подключение по ssh осуществлялось, а потом sshuttle падал. Решил вот так:
# sshuttle -r user@1.2.3.4
-x 1.2.3.4
0/0
Если используется нестандартный ssh порт, то указать его следует так:
# sshuttle -r user@1.2.3.4
:22334
0/0
Для использования ключа при ssh подключении, добавьте следующие опции:
# sshuttle -r user@1.2.3.4 0/0
--ssh-cmd "ssh -i ~/.ssh/id_rsa"
Если что-то пойдёт не так, включите подробное логировние через ключ -vvvv. Увидите, какие правила sshuttle добавляет в firewall и как прописывает маршруты. Там никакой магии, всё наглядно.
В Windows через WSL2 тоже работает, что весьма удобно. Данной заметки достаточно, чтобы начать пользоваться программой, так что смело добавляйте в закладки.
#vpn #ssh
GitHub
GitHub - sshuttle/sshuttle: Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin.…
Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling. - sshuttle/sshuttle
На днях слушал вебинар, где в том числе разобрали порядок поиска и выполнения команд в интерпретаторе bash. Я вспомнил, как сам в свое время разбирался в этой теме, пытаясь понять, почему команды выполняются в неочевидном для меня порядке. Решил законспектировать этот момент и поделиться с вами.
Итак, после ввода в терминал команды, происходит следующее:
1️⃣ Проверяются алиасы. Если команда будет там найдена, то поиск остановится и она исполнится. Проверить свои алиасы можно в консоли с помощью команды:
Кстати, алиас ls там скорее всего будет в таком виде:
То есть выполнится не просто бинарник /usr/bin/ls, а именно указанный алиас с ключами.
2️⃣ Далее команда проверяется, встроена в ли она в оболочку, или нет. Если встроена, то выполнится именно она, а опять же не бинарник. Пример встроенных программ - echo, pwd и т.д.
Что интересно, есть и бинарник echo, но если вы в консоли bash явно не укажете путь к нему /usr/bin/echo, выполнится именно встроенная в оболочку программа. Они на самом деле разные. У них даже ключи немного отличаются.
3️⃣ Только теперь идёт поиск бинарника в директориях, определённых в $PATH, причем не абы как, а по порядку следования этих директорий в переменной слева направо.
Я в свое время именно с этим разбирался, так как не мог понять, почему выполняется один из двух бинарников с одинаковыми именами, лежащие в разных директориях.
Зная всё это, можно засадить куда-то зловреда, или просто пошутить над кем-то. Например, создать пустой исполняемый файл с таким же именем, как системная утилита, например, chown. Положить файл в какую-то директорию и добавить её в начало $PATH. После этого при наборе chown в консоли или скриптах не будет происходить ровным счётом ничего. Если не знаешь всех нюансов, то так сразу не поймёшь, в чём проблема.
#bash #terminal
Итак, после ввода в терминал команды, происходит следующее:
1️⃣ Проверяются алиасы. Если команда будет там найдена, то поиск остановится и она исполнится. Проверить свои алиасы можно в консоли с помощью команды:
# alias
Кстати, алиас ls там скорее всего будет в таком виде:
alias ls='ls --color=auto'
То есть выполнится не просто бинарник /usr/bin/ls, а именно указанный алиас с ключами.
2️⃣ Далее команда проверяется, встроена в ли она в оболочку, или нет. Если встроена, то выполнится именно она, а опять же не бинарник. Пример встроенных программ - echo, pwd и т.д.
# type echo
echo is a
shell builtin
Что интересно, есть и бинарник echo, но если вы в консоли bash явно не укажете путь к нему /usr/bin/echo, выполнится именно встроенная в оболочку программа. Они на самом деле разные. У них даже ключи немного отличаются.
3️⃣ Только теперь идёт поиск бинарника в директориях, определённых в $PATH, причем не абы как, а по порядку следования этих директорий в переменной слева направо.
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Я в свое время именно с этим разбирался, так как не мог понять, почему выполняется один из двух бинарников с одинаковыми именами, лежащие в разных директориях.
Зная всё это, можно засадить куда-то зловреда, или просто пошутить над кем-то. Например, создать пустой исполняемый файл с таким же именем, как системная утилита, например, chown. Положить файл в какую-то директорию и добавить её в начало $PATH. После этого при наборе chown в консоли или скриптах не будет происходить ровным счётом ничего. Если не знаешь всех нюансов, то так сразу не поймёшь, в чём проблема.
#bash #terminal
Забавное видео про IT инженера на удалёнке. Можно смотреть без перевода, если не понимаете на слух английский. С субтитрами вообще всё понятно будет.
Мне особенно понравилось оснащение рабочего места. Перематывал, ставил на паузу и внимательно всё разглядывал. Очень круто сделано. Тоже так хочу. Но пока до hi-tech руки не доходят. С деревяшками бы в новом доме разобраться, которые за год подорожали в 2-3 раза и стали стоить дороже, чем hi-tech оборудование 😱 Дерево - новая нефть. Буду теперь себя богачом ощущать в деревянной избушке 🏡
https://www.youtube.com/watch?v=Rgx8dpiPwpA
Для тех, кто посмотрит видео, вопрос. Я не понял, зачем он разбил мышку и взял новую, когда беседовал с пародией на Стива Джобс?
#юмор
Мне особенно понравилось оснащение рабочего места. Перематывал, ставил на паузу и внимательно всё разглядывал. Очень круто сделано. Тоже так хочу. Но пока до hi-tech руки не доходят. С деревяшками бы в новом доме разобраться, которые за год подорожали в 2-3 раза и стали стоить дороже, чем hi-tech оборудование 😱 Дерево - новая нефть. Буду теперь себя богачом ощущать в деревянной избушке 🏡
https://www.youtube.com/watch?v=Rgx8dpiPwpA
Для тех, кто посмотрит видео, вопрос. Я не понял, зачем он разбил мышку и взял новую, когда беседовал с пародией на Стива Джобс?
#юмор
YouTube
a day in the life of an engineer working from home
Check out my new vlog channel: https://www.youtube.com/channel/UCmMGlb7mGXYVthrXYSwlQhw
Follow my newsletter: https://jomakaze.substack.com/
Music by Joy Ngiaw:
https://www.joyngiaw.com/
https://www.instagram.com/joyngiaw/
📱 SOCIAL MEDIA
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…
Follow my newsletter: https://jomakaze.substack.com/
Music by Joy Ngiaw:
https://www.joyngiaw.com/
https://www.instagram.com/joyngiaw/
📱 SOCIAL MEDIA
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…
Опять возвращаюсь к теме протухшего корневого сертификата Let's Encrypt и Centos 7. Писал об этом на днях. Делать самим ничего не надо. Один из способов, который я предложил - удалить протухший сертификат вручную. Делать этого теперь не надо, так как вчера вышло обновление пакета ca-certificates для Centos 7. Там этот сертификат уже удалён.
Лучше поздно, чем никогда. Но еще лучше, если бы они пораньше это обновление выпустили. Я уже вручную удалил, где вспомнил, что тема актуальна. А это практически все сервера со стандартным Bitrixenv, которое до сих пор на базе Centos 7 работает. И поддержка Let's Encrypt там встроена и активно используется.
#centos #webserver
Лучше поздно, чем никогда. Но еще лучше, если бы они пораньше это обновление выпустили. Я уже вручную удалил, где вспомнил, что тема актуальна. А это практически все сервера со стандартным Bitrixenv, которое до сих пор на базе Centos 7 работает. И поддержка Let's Encrypt там встроена и активно используется.
#centos #webserver
После поста о сборе средств для Семаева Кирилла, мне периодически пишут люди и спрашивают, как и что там с Кириллом, доходят ли деньги и т.д. Сам я не в курсе, так как у меня нет постоянного контакта ни с ним, ни с его родными. Это была моя личная инициатива о соборе средств. Чтобы было, что отвечать по теме, спросил у Анны, как там дела.
Кирилл сейчас на очередной реабилитации в мед. центре, так что новостей особо нет. С ним всё в порядке, состояние нормальное, ни лучше, ни хуже. Деньги тратятся на реабилитационные процедуры и на бытовые нужды. Помощь доходит до адресата.
На неё вышли люди с инициативой записать видео с Кириллом. Ориентировочно на октябрь запланировали мероприятие. Так что если всё сложится, то будет подробная информация из первых уст.
У меня всё по теме. Удачи вам в делах и не болеть.
Кирилл сейчас на очередной реабилитации в мед. центре, так что новостей особо нет. С ним всё в порядке, состояние нормальное, ни лучше, ни хуже. Деньги тратятся на реабилитационные процедуры и на бытовые нужды. Помощь доходит до адресата.
На неё вышли люди с инициативой записать видео с Кириллом. Ориентировочно на октябрь запланировали мероприятие. Так что если всё сложится, то будет подробная информация из первых уст.
У меня всё по теме. Удачи вам в делах и не болеть.
Telegram
ServerAdmin.ru
❗️ Внимание. Просьба не пролистывать пост, а прочитать его до конца. Это важно. Речь пойдёт про известного многим Kirill Semaev (Кирилл Семаев), который вёл одноименный youtube канал. Я неоднократно упоминал его в своих заметках и ссылался на некоторые…
📌 Хочу вас познакомить с двумя интересными и полезными утилитами для просмотра занятого места на диске. Первая из них - duf (https://github.com/muesli/duf). Написана на гошечке, работает шустро. По дефолту показывает удобный табличный вид смонтированных устройств, разделяя локальные хранилища, сетевые и специальные, типа /dev, /run и т.д.
Из других полезных возможностей:
- раскрашенный вывод
- настраиваемая сортировка и фильтрация вывода
- вывод результата в json формате
Есть паркет под все популярные системы, в том числе windows. Ставим на centos:
# rpm -ivh https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_amd64.rpm
Пример использования:
# duf --only local --sort size
Вывод только локальных хранилищ с сортировкой по размеру.
📌 Вторая утилита - dust (https://github.com/bootandy/dust). Написана на rust (du + rust = dust). Умеет отображать древовидную структуру каталогов с указанием занимаемого места каждой ветви дерева. Я не видел утилиты, которая бы так же быстро и просто могла сразу показать, кто и где занял место на диске. Несомненно, есть ncdu, но у неё другой принцип отображения информации. Где-то удобнее, а где-то нет.
Dust представляет из себя одиночный бинарник, так что никаких пакетов нет. Качаем и запускаем:
# wget https://github.com/bootandy/dust/releases/download/v0.7.5/dust-v0.7.5-x86_64-unknown-linux-gnu.tar.gz
# tar xzvf dust-v0.7.5-x86_64-unknown-linux-gnu.tar.gz
# cd dust-v0.7.5-x86_64-unknown-linux-gnu/
# ./dust / -d 3
Посмотрели размер директорий, начиная с корня, с ограничением глубины в 3.
#terminal #утилиты
Из других полезных возможностей:
- раскрашенный вывод
- настраиваемая сортировка и фильтрация вывода
- вывод результата в json формате
Есть паркет под все популярные системы, в том числе windows. Ставим на centos:
# rpm -ivh https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_amd64.rpm
Пример использования:
# duf --only local --sort size
Вывод только локальных хранилищ с сортировкой по размеру.
📌 Вторая утилита - dust (https://github.com/bootandy/dust). Написана на rust (du + rust = dust). Умеет отображать древовидную структуру каталогов с указанием занимаемого места каждой ветви дерева. Я не видел утилиты, которая бы так же быстро и просто могла сразу показать, кто и где занял место на диске. Несомненно, есть ncdu, но у неё другой принцип отображения информации. Где-то удобнее, а где-то нет.
Dust представляет из себя одиночный бинарник, так что никаких пакетов нет. Качаем и запускаем:
# wget https://github.com/bootandy/dust/releases/download/v0.7.5/dust-v0.7.5-x86_64-unknown-linux-gnu.tar.gz
# tar xzvf dust-v0.7.5-x86_64-unknown-linux-gnu.tar.gz
# cd dust-v0.7.5-x86_64-unknown-linux-gnu/
# ./dust / -d 3
Посмотрели размер директорий, начиная с корня, с ограничением глубины в 3.
#terminal #утилиты
Добиваю тему self-hosted чатов. Напомню, что ранее уже рассмотрел:
✔️ Zulip
✔️ MyChat
✔️ Mattermost
✔️ Rocket.Chat
Эти чаты я либо сам внедрял, либо тестировал и готовил к внедрению, поэтому есть личный опыт установки, базовой настройки и типового тестирования. Мне посоветовали посмотреть ещё на Delta Chat, что я и сделал.
Главная особенность Delta Chat в том, что для доставки сообщений используется smtp протокол. То есть он работает поверх инфраструктуры почтовых серверов, а значит свой сервер чата не нужен вообще. Идея выглядит необычной и любопытной. Для общения с помощью этого чата достаточно любых существующих почтовых ящиков.
Я поставил десктопные клиенты и пообщался сам с собой, настроив для этого соответствующие почтовые ящики. Сразу скажу, что клиент написан на Electron 😪. Настройки почтовых ящиков Яндекс.Почты автоматом не подобрал, пришлось вручную указать серверы и порты, предварительно в настройках ящика разрешив подключаться по imap. С gmail авторизация прошла автоматом без танцев, но пришлось в настройках безопасности разрешить подключаться ненадёжным приложениям.
Поотправлял сообщения туда-сюда. В целом работает. Клиент, как и всё на JavaScipt и Electron, тормозной. Идея интересная, так как практически полная децентрализация и всё работает поверх уже существующей инфраструктуры. Но те, кто понимают, как работает почта, сразу увидят кучу минусов. Тут и шанс попасть под спам фильтры, и greylisting, и задержки при доставке почты по smtp, и просто потери писем, которые иногда случаются. Всё это в целом с натяжкой тянет на полноценный чат. Никогда не будешь уверен, что твое сообщение быстро и гарантированно будет доставлено.
В таком виде, как реализовано, мне кажется, тема не пойдёт в массы. Ей самое место в каком-нибудь почтовом клиенте, пусть даже и в web. Там удобно вести подобную переписку, а как отдельное приложение для чата, мне кажется, не очень уместно.
Как бонус, бэкап всей переписки в ящиках, правда в зашифрованном виде. Не знаю, в каком виде потом всё это можно посмотреть, если сам чат будет удалён с компьютера. На базе уведомлений о доставке и прочтении реализована индикация доставки и прочтения сообщений в чате. Сам чат выглядит приятно. Интерфейс простой и понятный.
И да, это полностью open source:
https://github.com/deltachat
https://delta.chat/
#chat
✔️ Zulip
✔️ MyChat
✔️ Mattermost
✔️ Rocket.Chat
Эти чаты я либо сам внедрял, либо тестировал и готовил к внедрению, поэтому есть личный опыт установки, базовой настройки и типового тестирования. Мне посоветовали посмотреть ещё на Delta Chat, что я и сделал.
Главная особенность Delta Chat в том, что для доставки сообщений используется smtp протокол. То есть он работает поверх инфраструктуры почтовых серверов, а значит свой сервер чата не нужен вообще. Идея выглядит необычной и любопытной. Для общения с помощью этого чата достаточно любых существующих почтовых ящиков.
Я поставил десктопные клиенты и пообщался сам с собой, настроив для этого соответствующие почтовые ящики. Сразу скажу, что клиент написан на Electron 😪. Настройки почтовых ящиков Яндекс.Почты автоматом не подобрал, пришлось вручную указать серверы и порты, предварительно в настройках ящика разрешив подключаться по imap. С gmail авторизация прошла автоматом без танцев, но пришлось в настройках безопасности разрешить подключаться ненадёжным приложениям.
Поотправлял сообщения туда-сюда. В целом работает. Клиент, как и всё на JavaScipt и Electron, тормозной. Идея интересная, так как практически полная децентрализация и всё работает поверх уже существующей инфраструктуры. Но те, кто понимают, как работает почта, сразу увидят кучу минусов. Тут и шанс попасть под спам фильтры, и greylisting, и задержки при доставке почты по smtp, и просто потери писем, которые иногда случаются. Всё это в целом с натяжкой тянет на полноценный чат. Никогда не будешь уверен, что твое сообщение быстро и гарантированно будет доставлено.
В таком виде, как реализовано, мне кажется, тема не пойдёт в массы. Ей самое место в каком-нибудь почтовом клиенте, пусть даже и в web. Там удобно вести подобную переписку, а как отдельное приложение для чата, мне кажется, не очень уместно.
Как бонус, бэкап всей переписки в ящиках, правда в зашифрованном виде. Не знаю, в каком виде потом всё это можно посмотреть, если сам чат будет удалён с компьютера. На базе уведомлений о доставке и прочтении реализована индикация доставки и прочтения сообщений в чате. Сам чат выглядит приятно. Интерфейс простой и понятный.
И да, это полностью open source:
https://github.com/deltachat
https://delta.chat/
#chat
Дети в Интернете. Все, что нужно знать о контентной фильтрации в образовательных учреждениях.
🗓 30 сентября в 14:00 (мск) разработчики шлюза Интернет Контроль Сервер проведут вебинар на тему доступа в интернет в учебных заведениях, что подразумевает четкое выполнение требований законодательства в области защиты детей от опасной информации.
На вебинаре вам расскажут, как с помощью контент-фильтра Интернет Контроль Сервер и дополнительных модулей Kaspersky можно обеспечить безопасный доступ в сеть и беспрепятственно пройти прокурорскую проверку.
Вы узнаете о преимуществах использования контент-фильтра перед фильтрацией от провайдеров, об отличиях ИКС от простых модулей фильтрации, а также о дополнительных категориях трафика Kaspersky Web Filtering.
👉 Регистрация на бесплатный вебинар.
У меня на сайте написан цикл статей по этому шлюзу, где я разбираю установку и настройку продукта.
Вы можете скачать и протестировать полнофункциональную версию шлюза в течении 35 дней, либо воспользоваться бесплатной версией.
#реклама #бесплатно #текст_мой #икс
🗓 30 сентября в 14:00 (мск) разработчики шлюза Интернет Контроль Сервер проведут вебинар на тему доступа в интернет в учебных заведениях, что подразумевает четкое выполнение требований законодательства в области защиты детей от опасной информации.
На вебинаре вам расскажут, как с помощью контент-фильтра Интернет Контроль Сервер и дополнительных модулей Kaspersky можно обеспечить безопасный доступ в сеть и беспрепятственно пройти прокурорскую проверку.
Вы узнаете о преимуществах использования контент-фильтра перед фильтрацией от провайдеров, об отличиях ИКС от простых модулей фильтрации, а также о дополнительных категориях трафика Kaspersky Web Filtering.
👉 Регистрация на бесплатный вебинар.
У меня на сайте написан цикл статей по этому шлюзу, где я разбираю установку и настройку продукта.
Вы можете скачать и протестировать полнофункциональную версию шлюза в течении 35 дней, либо воспользоваться бесплатной версией.
#реклама #бесплатно #текст_мой #икс
ZeroViewer - бесплатная программа для удаленной поддержки пользователей. Условно можно назвать self-hosted аналогом программ типа TeamViewer, Anydesk и т.д. В качестве сервера, через который устанавливается соединение, может выступать любой ssh server. Подключения запускаются с помощью kitty (виндовый ssh клиент). Для отображения экрана удаленной машины используется реализация vnc на базе TightVNC.
Клиент доступен только для ОС Windows. Все настройки хранит в обычном ini файле, что упрощает переносимость. Нужно понимать, что соединения по ssh не очень быстрые. Плюс протокол vnc тоже очень требователен к скорости канала. Так что получить сопоставимое качество картинки с tv или anydesk не получится. Зато всё полностью под твоим контролем, плюс надежное шифрование из коробки на базе ssh. Полностью бесплатных аналогов я даже и не знаю.
Сайт программы: https://null.la/
Обсуждение:
https://4pda.to/forum/index.php?showtopic=973515
http://forum.ru-board.com/topic.cgi?forum=5&topic=49838
Программа бесплатная, но исходников в открытом доступе нет, так что использовать на свой страх и риск.
#remote #selfhosted
Клиент доступен только для ОС Windows. Все настройки хранит в обычном ini файле, что упрощает переносимость. Нужно понимать, что соединения по ssh не очень быстрые. Плюс протокол vnc тоже очень требователен к скорости канала. Так что получить сопоставимое качество картинки с tv или anydesk не получится. Зато всё полностью под твоим контролем, плюс надежное шифрование из коробки на базе ssh. Полностью бесплатных аналогов я даже и не знаю.
Сайт программы: https://null.la/
Обсуждение:
https://4pda.to/forum/index.php?showtopic=973515
http://forum.ru-board.com/topic.cgi?forum=5&topic=49838
Программа бесплатная, но исходников в открытом доступе нет, так что использовать на свой страх и риск.
#remote #selfhosted