У меня давно живёт в голове идея о гибкой и настраиваемой поисковой системе, в которую можно было бы вручную добавлять сайты, по которым она будет совершать поиск. И желательно не хуже, чем это делают топовые поисковики. Мне не попадался такой софт. Если кто-то знает что-то подобное, прошу поделиться информацией.
Когда-то давно я рассказывал про бесплатную Open Source мета-поисковую систему SearX. Я тогда с ней только познакомился и изучал. Думал, что там есть подобный функционал, но на самом деле нет. В ней используются поисковые сервисы, а создать свой пул сайтов для поиска невозможно. Этого функционала нет. То есть это агрегатор поисковых результатов, а не сам поисковик. Он особо не развивается, только мелкие фиксы делают и добавляют новые поисковики.
Недавно узнал про SearXNG. Это форк SearX с более активным развитием. Его ведёт один из бывших разработчиков SearX. Решил ещё раз погонять и протестировать систему. Идея и сама реализация мне понравились. Расскажу, что конкретно.
1️⃣ Больше всего понравилась возможность активировать отдельные системы поиска с сайтов и совершать поиск только по ним. Например, если вы хотите найти ответ на какой-то вопрос на сайте stackoverflow, то используйте сокращение сайта (в данном случае st) в поисковом запросе:
Для меня лично актуален как раз отдельный поиск по stackoverflow, а так же по github, dockerhub и reddit. Все эти сайты в SearXNG есть.
2️⃣ Погонял айтишные англоязычные запросы на смешанной выдаче google, brave и duckduckgo. Результаты мне понравились и показались более релевантным, чем только google.
3️⃣ Результаты получаются неперсонифицированные, что на самом деле для поиска всяких ошибок и статей с настройкой линуксовых систем скорее плюс, чем минус. Лично я постоянно вижу в выдаче свой сайт, что мне не нужно. В основном поиск интересен для работы. Для всего остального я использую Яндекс.
4️⃣ В выдаче нет рекламы, есть ссылки на найденные урлы в веб-архиве, что иногда бывает полезным.
5️⃣ В SearXNG все движки разбиты на категории. Есть в том числе и IT. Для этой категории можно активировать нужные сайты и затем при поиске указывать явно эту категорию. Поиск будет осуществляться только по ней.
Для теста можно быстро запустить SearXNG в докере. Есть отдельная репа для этого:
Сервис запустится на localhost:8080. Можно в docker-compose.yaml заменить localhost на внешний ip вируталки. Проще самому развернуть и посмотреть все возможности. Свой персональный поисковой агрегатор можно затем добавить в браузер и использовать на постоянку.
Исходники - https://github.com/searxng/searxng
#разное
Когда-то давно я рассказывал про бесплатную Open Source мета-поисковую систему SearX. Я тогда с ней только познакомился и изучал. Думал, что там есть подобный функционал, но на самом деле нет. В ней используются поисковые сервисы, а создать свой пул сайтов для поиска невозможно. Этого функционала нет. То есть это агрегатор поисковых результатов, а не сам поисковик. Он особо не развивается, только мелкие фиксы делают и добавляют новые поисковики.
Недавно узнал про SearXNG. Это форк SearX с более активным развитием. Его ведёт один из бывших разработчиков SearX. Решил ещё раз погонять и протестировать систему. Идея и сама реализация мне понравились. Расскажу, что конкретно.
1️⃣ Больше всего понравилась возможность активировать отдельные системы поиска с сайтов и совершать поиск только по ним. Например, если вы хотите найти ответ на какой-то вопрос на сайте stackoverflow, то используйте сокращение сайта (в данном случае st) в поисковом запросе:
!st Crond ERROR (getpwnam() failed)
Для меня лично актуален как раз отдельный поиск по stackoverflow, а так же по github, dockerhub и reddit. Все эти сайты в SearXNG есть.
2️⃣ Погонял айтишные англоязычные запросы на смешанной выдаче google, brave и duckduckgo. Результаты мне понравились и показались более релевантным, чем только google.
3️⃣ Результаты получаются неперсонифицированные, что на самом деле для поиска всяких ошибок и статей с настройкой линуксовых систем скорее плюс, чем минус. Лично я постоянно вижу в выдаче свой сайт, что мне не нужно. В основном поиск интересен для работы. Для всего остального я использую Яндекс.
4️⃣ В выдаче нет рекламы, есть ссылки на найденные урлы в веб-архиве, что иногда бывает полезным.
5️⃣ В SearXNG все движки разбиты на категории. Есть в том числе и IT. Для этой категории можно активировать нужные сайты и затем при поиске указывать явно эту категорию. Поиск будет осуществляться только по ней.
Для теста можно быстро запустить SearXNG в докере. Есть отдельная репа для этого:
# git clone https://github.com/searxng/searxng-docker
# cd searxng-docker
# sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
# docker-compose up
Сервис запустится на localhost:8080. Можно в docker-compose.yaml заменить localhost на внешний ip вируталки. Проще самому развернуть и посмотреть все возможности. Свой персональный поисковой агрегатор можно затем добавить в браузер и использовать на постоянку.
Исходники - https://github.com/searxng/searxng
#разное
👍50👎3
Тестировал на днях полезную утилиту для просмотра сетевой активности на Linux сервере sniffer. Она мне показалась функциональнее и удобнее всего того, что я знаю и использую. А программы такого класса часто нужны. Я их практически всегда ставлю по умолчанию при базовой настройке сервера.
Sniffer использует TUI интерфейс и показывает следующее:
▪ информацию по загрузке сети с разбивкой по удалённым ip адресам;
▪ информацию по загрузке сети с разбивкой по приложениям;
▪ список активных сетевых соединений и их занимаемый канал.
Всё это отображается одновременно в трех панелях на одном экране.
К сожалению, sniffer нет ни в базовых репах, ни в виде готовых бинарников, поэтому собирать придётся самостоятельно. Написан он на Go, так что никаких проблем с этим нет:
Собрать можно где угодно, а потом просто скопировать бинарник на нужный хост. В MacOS, кстати, он есть в базовом репозитории и ставится в одну команду через brew.
Далее достаточно просто запустить бинарник. Для удобства можно добавить ключ -u MB чтобы отображать скорость в мегабайтах в секунду:
Напомню список похожих программ:
◽ Iftop - писал о ней ранее. Показывает только скорость соединений к удалённым хостам без привязки к приложениям.
◽ NetHogs - немного похожа по внешнему виду на iftop, только разбивает трафик не по направлениям, а по приложениям. В связке с iftop закрывает вопрос анализа полосы пропускания сервера.
◽ Iptraf - показывает более подробную информацию, в отличие от первых двух утилит. Плюс, умеет писать информацию в файл для последующего анализа. Трафик разбивает по удалённым подключениям, не по приложениям. Тоже писал ранее об этой утилите.
◽ Bmon - показывает трафик сразу на нескольких сетевых интерфейсах с разбивкой по ним, можно сравнить. Bmon может быть полезен на гипервизорах, оценить трафик на бриджах.
Sniffer объединяет в себе функционал Iftop и NetHogs, которые лично я использую постоянно. Если бы он был в базовых репах, то 100% перешёл бы на него, а так не знаю, буду ли пользоваться. Только если будет регулярная потребность. Как-то хлопотно бинарник копировать вручную.
Пост имеет смысл сохранить в закладки с пометкой "консольные утилиты для анализа загрузки сети в Linux".
Исходники - https://github.com/chenjiandongx/sniffer
#terminal #linux #network #perfomance
Sniffer использует TUI интерфейс и показывает следующее:
▪ информацию по загрузке сети с разбивкой по удалённым ip адресам;
▪ информацию по загрузке сети с разбивкой по приложениям;
▪ список активных сетевых соединений и их занимаемый канал.
Всё это отображается одновременно в трех панелях на одном экране.
К сожалению, sniffer нет ни в базовых репах, ни в виде готовых бинарников, поэтому собирать придётся самостоятельно. Написан он на Go, так что никаких проблем с этим нет:
# apt install libpcap-dev gcc wget
# wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz
# tar -zxvf go1.18.4.linux-amd64.tar.gz -C /usr/local/
# echo "export PATH=/usr/local/go/bin:${PATH}" | sudo tee /etc/profile.d/go.sh
# source /etc/profile.d/go.sh
# go install github.com/chenjiandongx/sniffer@latest
Собрать можно где угодно, а потом просто скопировать бинарник на нужный хост. В MacOS, кстати, он есть в базовом репозитории и ставится в одну команду через brew.
Далее достаточно просто запустить бинарник. Для удобства можно добавить ключ -u MB чтобы отображать скорость в мегабайтах в секунду:
# ./sniffer -u MB
Напомню список похожих программ:
◽ Iftop - писал о ней ранее. Показывает только скорость соединений к удалённым хостам без привязки к приложениям.
◽ NetHogs - немного похожа по внешнему виду на iftop, только разбивает трафик не по направлениям, а по приложениям. В связке с iftop закрывает вопрос анализа полосы пропускания сервера.
◽ Iptraf - показывает более подробную информацию, в отличие от первых двух утилит. Плюс, умеет писать информацию в файл для последующего анализа. Трафик разбивает по удалённым подключениям, не по приложениям. Тоже писал ранее об этой утилите.
◽ Bmon - показывает трафик сразу на нескольких сетевых интерфейсах с разбивкой по ним, можно сравнить. Bmon может быть полезен на гипервизорах, оценить трафик на бриджах.
Sniffer объединяет в себе функционал Iftop и NetHogs, которые лично я использую постоянно. Если бы он был в базовых репах, то 100% перешёл бы на него, а так не знаю, буду ли пользоваться. Только если будет регулярная потребность. Как-то хлопотно бинарник копировать вручную.
Пост имеет смысл сохранить в закладки с пометкой "консольные утилиты для анализа загрузки сети в Linux".
Исходники - https://github.com/chenjiandongx/sniffer
#terminal #linux #network #perfomance
👍68👎2
Попалась на глаза англоязычная статья с советами по безопасности при настройке PHP. Там нет чего-то уникального и необычного, но материал хорош как готовый список действий или рекомендаций, по которым стоит пробежаться при настройке веб сервера. Решил на основе её сделать чек-лист на русском языке. Кому нужны подробности, переходите в источник.
✅ Смотрим список активных модулей:
Отключаем ненужные:
✅ Отключаем отображение информации о версии PHP:
Это параметр для php.ini.
✅ Отключаем отображение ошибок PHP для посетителей:
Вместо этого логируем их отдельно:
✅ Если не нужна загрузка файлов на веб сервер, отключите эту возможность:
Если загрузка нужна, то хотя бы ограничьте максимальный размер файла до необходимого предела:
✅ Отключаем функцию allow_url_fopen, если не используются сайтом. Она открывает широкие возможности для взлома, если разработчики забудут о фильтрации входящих данных.
✅ Настройка размера POST запросов. Этот параметр должен быть не меньше upload_max_filesize, если разрешена загрузка файлов. Если же она запрещена, то большой разрешённый размер post запросов не нужен. Вряд ли вам через формы потребуется заливать большой объём данных.
или
✅ Подобрать необходимые лимиты выполнения скриптов. Тут всё сильно зависит от самого сайта. В идеале, много ресурсов не выделять, но, к примеру, тот же Bitrix, требует очень много оперативной памяти и времени выполнения для своих скриптов.
✅ Отключаем потенциально опасные функции PHP. Оставляем только то, что реально нужно.
✅ Убедиться, что параметр cgi.force_redirect не отключен принудительно. По дефолту, если его явно не указать, то он будет включен.
✅ Убедиться, что php работает от отдельного непривилегированного пользователя. Настройка будет зависеть от используемого менеджера процессов php. Проверяем примерно так:
✅ Ограничиваем доступ php к файловой системе:
✅ Настраиваем место хранения для сессий:
Важно убедиться, что туда нет доступа посторонним. Кроме веб сервера эта директория никому не нужна. Также туда не должно быть доступа с сайта.
В статье было гораздо больше информации, но некоторые параметры уже объявлены устаревшими. А часть не относится непосредственно к PHP (настройка selinux, firewall и т.д.), поэтому я не стал включать её в этот список.
❗️Материал имеет смысл сохранить в закладки. Источник.
#security #webserver #php
✅ Смотрим список активных модулей:
# php -m
Отключаем ненужные:
# mv /etc/php.d/sqlite3.ini /etc/php.d/sqlite3.disable
✅ Отключаем отображение информации о версии PHP:
expose_php=Off
Это параметр для php.ini.
✅ Отключаем отображение ошибок PHP для посетителей:
display_errors=Off
Вместо этого логируем их отдельно:
log_errors=On
error_log=/var/log/httpd/php_scripts_error.log
✅ Если не нужна загрузка файлов на веб сервер, отключите эту возможность:
file_uploads=Off
Если загрузка нужна, то хотя бы ограничьте максимальный размер файла до необходимого предела:
file_uploads=On
upload_max_filesize=10M
✅ Отключаем функцию allow_url_fopen, если не используются сайтом. Она открывает широкие возможности для взлома, если разработчики забудут о фильтрации входящих данных.
allow_url_fopen=Off
✅ Настройка размера POST запросов. Этот параметр должен быть не меньше upload_max_filesize, если разрешена загрузка файлов. Если же она запрещена, то большой разрешённый размер post запросов не нужен. Вряд ли вам через формы потребуется заливать большой объём данных.
post_max_size=10M
или
post_max_size=10K
✅ Подобрать необходимые лимиты выполнения скриптов. Тут всё сильно зависит от самого сайта. В идеале, много ресурсов не выделять, но, к примеру, тот же Bitrix, требует очень много оперативной памяти и времени выполнения для своих скриптов.
max_execution_time = 30
max_input_time = 30
memory_limit = 64M
✅ Отключаем потенциально опасные функции PHP. Оставляем только то, что реально нужно.
disable_functions = exec,passthru,shell_exec,system,
proc_open,popen,curl_exec,curl_multi_exec,
parse_ini_file,show_source
✅ Убедиться, что параметр cgi.force_redirect не отключен принудительно. По дефолту, если его явно не указать, то он будет включен.
cgi.force_redirect=On
✅ Убедиться, что php работает от отдельного непривилегированного пользователя. Настройка будет зависеть от используемого менеджера процессов php. Проверяем примерно так:
# ps aux | grep php
✅ Ограничиваем доступ php к файловой системе:
open_basedir = "/var/www/html/"
✅ Настраиваем место хранения для сессий:
session.save_path = "/var/lib/php/session"
Важно убедиться, что туда нет доступа посторонним. Кроме веб сервера эта директория никому не нужна. Также туда не должно быть доступа с сайта.
В статье было гораздо больше информации, но некоторые параметры уже объявлены устаревшими. А часть не относится непосредственно к PHP (настройка selinux, firewall и т.д.), поэтому я не стал включать её в этот список.
❗️Материал имеет смысл сохранить в закладки. Источник.
#security #webserver #php
👍76👎4
От компании Mikrotik давно не было новостей и новинок. Последняя рассылка была в апреле. Недавно выпустили очередной Newsletter, пометив его июльским. Там есть несколько интересных новинок, о которых расскажу.
Перед этим хочу поделиться информацией на тему покупки новых устройств. Было же объявлено, что компания Mikrotik прекращает продажу своего оборудования в РФ. На практике каких-то особых проблем с приобретением не возникло. В настоящий момент бюджетные микротики для дома можно купить в популярных сетевых магазинах типа dns, citilink или ozone. В наличие наиболее ходовые устройства есть. Менее популярные модели можно поискать на Avito или заказать на Aliexpress. Там тоже много всего в наличии. Те, кому нужны более крупные корпоративные закупки, пользуются услугами поставщиков, которые завозят устройства через Казахстан.
Теперь к новинкам:
▪ Chateau LTE6-US - новая точка доступа для дома на основе WAN интерфейса через LTE. На борту мощный процессор, 5 гигабитных сетевых интерфейсов и современный LTE модем. Мне как раз домой такая штука пригодилась бы прямо сейчас. Но судя по описанию, этот продукт предназначен для рынка США. При этом по характеристикам он очень похож на Chateau 5G, но стоит в 2,5 раза дешевле. Не понял, почему так. Видеообзор.
▪ RB5009UPr+S+IN - необычный девайс с пассивным охлаждением и PoE-in & PoE-out на всех 8-ми Ethernet портах. Имеет пассивное охлаждение и может быть смонтирован в стойку в количестве 4-х штук на 1U. То есть это операторское решение. Питаться может от трех разных источников одновременно: 2-pin коннектор на 48V, обычный блок питания через jack на 24V и через PoE-In на 57V. Если я правильно понял из описания, эта штука в первую очередь заточена на питание свитчей в стойках. Это её основное назначение. Видеообзор.
▪ CSS610-8P-2S+IN - популярный формат свитчей из среднего ценового сегмента. Служит для подключения и питания различных сетевых устройств по стандарту 802.3af/at PoE-out. Имеет 8 гигабитных портов и 2 SFP+. Добротный POE свитч с управлением на базе SwitchOS Lite. Видеообзор.
▪ CRS518-16XS-2XQ-RM - операторский свитч из высокого ценового сегмента. На борту 2 ❗️100G QSFP28 ports и 16 25G SFP28 ports. Видеообзор.
Я по прежнему остаюсь на 6-й версии RouterOS. Для 7-й ветки стала типичной картинка, когда выходит новая версия и через день сразу же к ней обновление. Какой-то стабильности и надежности в этой ветке до сих пор не видно. Так что пока жду.
Рассылка в виде pdf
#mikrotik
Перед этим хочу поделиться информацией на тему покупки новых устройств. Было же объявлено, что компания Mikrotik прекращает продажу своего оборудования в РФ. На практике каких-то особых проблем с приобретением не возникло. В настоящий момент бюджетные микротики для дома можно купить в популярных сетевых магазинах типа dns, citilink или ozone. В наличие наиболее ходовые устройства есть. Менее популярные модели можно поискать на Avito или заказать на Aliexpress. Там тоже много всего в наличии. Те, кому нужны более крупные корпоративные закупки, пользуются услугами поставщиков, которые завозят устройства через Казахстан.
Теперь к новинкам:
▪ Chateau LTE6-US - новая точка доступа для дома на основе WAN интерфейса через LTE. На борту мощный процессор, 5 гигабитных сетевых интерфейсов и современный LTE модем. Мне как раз домой такая штука пригодилась бы прямо сейчас. Но судя по описанию, этот продукт предназначен для рынка США. При этом по характеристикам он очень похож на Chateau 5G, но стоит в 2,5 раза дешевле. Не понял, почему так. Видеообзор.
▪ RB5009UPr+S+IN - необычный девайс с пассивным охлаждением и PoE-in & PoE-out на всех 8-ми Ethernet портах. Имеет пассивное охлаждение и может быть смонтирован в стойку в количестве 4-х штук на 1U. То есть это операторское решение. Питаться может от трех разных источников одновременно: 2-pin коннектор на 48V, обычный блок питания через jack на 24V и через PoE-In на 57V. Если я правильно понял из описания, эта штука в первую очередь заточена на питание свитчей в стойках. Это её основное назначение. Видеообзор.
▪ CSS610-8P-2S+IN - популярный формат свитчей из среднего ценового сегмента. Служит для подключения и питания различных сетевых устройств по стандарту 802.3af/at PoE-out. Имеет 8 гигабитных портов и 2 SFP+. Добротный POE свитч с управлением на базе SwitchOS Lite. Видеообзор.
▪ CRS518-16XS-2XQ-RM - операторский свитч из высокого ценового сегмента. На борту 2 ❗️100G QSFP28 ports и 16 25G SFP28 ports. Видеообзор.
Я по прежнему остаюсь на 6-й версии RouterOS. Для 7-й ветки стала типичной картинка, когда выходит новая версия и через день сразу же к ней обновление. Какой-то стабильности и надежности в этой ветке до сих пор не видно. Так что пока жду.
Рассылка в виде pdf
#mikrotik
👍41👎12
Вы знали про существование российского почтового сервера Mailion? Я увидел на него ссылку в одном из комментариев в интернете где-то месяц назад. Прошёл по ней, но вместо сайта увидел заглушку о том, что ведутся технические работы. И шли они где-то недели 2-3. Я периодически проверял сайт, потому что было интересно почитать, что это такое. По описанию было что-то грандиозное для сотен тысяч пользователей (до миллиона❗️), а я вообще даже название впервые услышал.
Сейчас сайт работает и можно познакомиться с продуктом. В лучших традициях отечественного ПО, на сайте нет никакой конкретики. Один единственный скриншот увидел и кучу маркетинговой информации. Обзорное видео вообще ни о чём. Одна вода. Цен, как полагается, тоже нет, продажи через партнёров. А продукт платный, без бесплатной или пробной версии.
Я почитал немного документацию и примерно получил представление о том, что это такое. Сервер построен на базе микросервисов, так что умеет быстро масштабироваться. По функционалу это попытка заменить Exchange, но за основу берётся работа в браузере, хотя интеграция с Outlook тоже заявлена. Есть инструменты по миграции с Microsoft Exchange на Mailion. Реализована поддержка доменов на кириллице.
Теперь немного о потрохах на основе того, что есть в документации.
- отказоустойчивость сети построена на базе keepalived
- микросервисы работают на Docker
- в основе почты postfix
- внутренние логи собирает Syslog-ng
- антиспам работает на основе Rspamd
- в качестве антивируса может использоваться ClamAV
- кластер реализован на базе etcd
- для хранения данных используются Redis, Monogdb, Arangodb, объектное хранилище для почты (собственная разработка)
- встроенный мониторинг на базе prometheus + grafana
Установка поддерживается на следующие системы: Centos 7.7+, Astra Linux SE 1.7, ubuntu 20.04, RedOS 7.3. Разворачивается всё с помощью Ansible.
После прочтения руководства по установке проникся сложностью и масштабом системы. И в то же время её относительной простотой за счёт того, что используются хорошо известные open source продукты, в которые можно погрузиться и разобраться в работе. В центре - хранилище собственной разработки, заточенное под хранение очень больших объёмов данных.
Для разворачивания и администрирования нужно знание всего современного стека ПО, с которым чаще работают девопсы. Вот и размыли роль админа и девопса. Почтовые сервера обычно прерогатива админов, а тут уже не всё однозначно.
Кто-то уже видел, работал с этим почтовым сервером? Я так понял, его только недавно зарелизили. Версия 1.0 косвенно намекает на это. Хотя разработка велась давно. Ещё год назад были статьи на хабре, которые я нашёл уже в процессе написания заметки. Разработчики - компания Мой Офис. Продукт присутствует в реестре отечественного ПО.
Сайт - https://mailion.ru
#mailserver #отечественное
Сейчас сайт работает и можно познакомиться с продуктом. В лучших традициях отечественного ПО, на сайте нет никакой конкретики. Один единственный скриншот увидел и кучу маркетинговой информации. Обзорное видео вообще ни о чём. Одна вода. Цен, как полагается, тоже нет, продажи через партнёров. А продукт платный, без бесплатной или пробной версии.
Я почитал немного документацию и примерно получил представление о том, что это такое. Сервер построен на базе микросервисов, так что умеет быстро масштабироваться. По функционалу это попытка заменить Exchange, но за основу берётся работа в браузере, хотя интеграция с Outlook тоже заявлена. Есть инструменты по миграции с Microsoft Exchange на Mailion. Реализована поддержка доменов на кириллице.
Теперь немного о потрохах на основе того, что есть в документации.
- отказоустойчивость сети построена на базе keepalived
- микросервисы работают на Docker
- в основе почты postfix
- внутренние логи собирает Syslog-ng
- антиспам работает на основе Rspamd
- в качестве антивируса может использоваться ClamAV
- кластер реализован на базе etcd
- для хранения данных используются Redis, Monogdb, Arangodb, объектное хранилище для почты (собственная разработка)
- встроенный мониторинг на базе prometheus + grafana
Установка поддерживается на следующие системы: Centos 7.7+, Astra Linux SE 1.7, ubuntu 20.04, RedOS 7.3. Разворачивается всё с помощью Ansible.
После прочтения руководства по установке проникся сложностью и масштабом системы. И в то же время её относительной простотой за счёт того, что используются хорошо известные open source продукты, в которые можно погрузиться и разобраться в работе. В центре - хранилище собственной разработки, заточенное под хранение очень больших объёмов данных.
Для разворачивания и администрирования нужно знание всего современного стека ПО, с которым чаще работают девопсы. Вот и размыли роль админа и девопса. Почтовые сервера обычно прерогатива админов, а тут уже не всё однозначно.
Кто-то уже видел, работал с этим почтовым сервером? Я так понял, его только недавно зарелизили. Версия 1.0 косвенно намекает на это. Хотя разработка велась давно. Ещё год назад были статьи на хабре, которые я нашёл уже в процессе написания заметки. Разработчики - компания Мой Офис. Продукт присутствует в реестре отечественного ПО.
Сайт - https://mailion.ru
#mailserver #отечественное
👍46👎17
Вчера смотрел очередной вебинар Rebrain на тему деплоя проекта на базе docker в разные окружения. У меня периодически бывает реклама этой компании. Искренне рекомендую обратить на неё внимание. Хотя бы на их бесплатные вебинары. Они очень хорошего качества. Массу всего полезного оттуда вынес.
Так вот, вчера впервые узнал про полезную возможность Docker. Доступ к Docker daemon socket извне можно сделать на базе сертификатов. Не нужны пробросы портов, доступ по SSH и что-то ещё. Просто вешаем Docker на внешний интерфейс и ограничиваем доступ.
Чтобы сделать такую настройку нужно:
1️⃣ Создать корневой сертификат CA, подписать им сертификат сервера и клиента. Примерно то же самое, что настраивается для OpenVPN сервера. Делается всё через консоль с помощью openssl в несколько команд.
2️⃣ Запустить службу Docker с использованием функции tlsverify. Либо прямо через консоль запустить с нужными ключами, либо поправить systemd файл, изменив команду запуска.
3️⃣ Скопировать сертификат клиента на любую удалённую машину, где установлен Docker.
4️⃣ С помощью сертификата добавить удалённый context с авторизацией через tls. Покажу итоговую команду, так как не сразу получилось её найти (надо было сразу в консоли help смотреть):
Теперь, выбирая context, вы можете локально управлять удалёнными службами Docker. Например так:
Увидите информацию с удалённого хоста.
Если у вас несколько хостов с Docker, можете подключить их все к одной машине и управлять централизованно через неё. А вообще это удобно для управления деплоем, что и было продемонстрировано на вебинаре. Этот вариант является альтернативой подключения по SSH. Получается более аккуратное решение, так как организуется доступ только к сокету Docker. SSH всё же более глобальная вещь с доступом к самому серверу, что чаще всего не нужно для управления только докером.
Всё перечисленное выше настраивается копипастом из документации - https://docs.docker.com/engine/security/protect-access/
Отдельная благодарность Василию Озерову. Вебинар вёл он. У него самая крутая подача. Он с такой скоростью фигачит команды в консоль, что у меня глаза разбегаются. Не успеваю следить. Хочется закрыть глаза, подождать, потом открыть и увидеть результат. И результат всегда есть.
Есть те, кто вчера тоже смотрели этот вебинар?
#docker #devops
Так вот, вчера впервые узнал про полезную возможность Docker. Доступ к Docker daemon socket извне можно сделать на базе сертификатов. Не нужны пробросы портов, доступ по SSH и что-то ещё. Просто вешаем Docker на внешний интерфейс и ограничиваем доступ.
Чтобы сделать такую настройку нужно:
1️⃣ Создать корневой сертификат CA, подписать им сертификат сервера и клиента. Примерно то же самое, что настраивается для OpenVPN сервера. Делается всё через консоль с помощью openssl в несколько команд.
2️⃣ Запустить службу Docker с использованием функции tlsverify. Либо прямо через консоль запустить с нужными ключами, либо поправить systemd файл, изменив команду запуска.
3️⃣ Скопировать сертификат клиента на любую удалённую машину, где установлен Docker.
4️⃣ С помощью сертификата добавить удалённый context с авторизацией через tls. Покажу итоговую команду, так как не сразу получилось её найти (надо было сразу в консоли help смотреть):
# docker context create my-context --description "some description" \
--docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file"
Теперь, выбирая context, вы можете локально управлять удалёнными службами Docker. Например так:
# docker context use my-context
# docker ps
Увидите информацию с удалённого хоста.
Если у вас несколько хостов с Docker, можете подключить их все к одной машине и управлять централизованно через неё. А вообще это удобно для управления деплоем, что и было продемонстрировано на вебинаре. Этот вариант является альтернативой подключения по SSH. Получается более аккуратное решение, так как организуется доступ только к сокету Docker. SSH всё же более глобальная вещь с доступом к самому серверу, что чаще всего не нужно для управления только докером.
Всё перечисленное выше настраивается копипастом из документации - https://docs.docker.com/engine/security/protect-access/
Отдельная благодарность Василию Озерову. Вебинар вёл он. У него самая крутая подача. Он с такой скоростью фигачит команды в консоль, что у меня глаза разбегаются. Не успеваю следить. Хочется закрыть глаза, подождать, потом открыть и увидеть результат. И результат всегда есть.
Есть те, кто вчера тоже смотрели этот вебинар?
#docker #devops
👍77👎5
Существует небольшая, но очень полезная утилита в Linux - jo. Она создаёт json вывод из поданных в неё данных. Покажу на условном примере:
А вот более прикладной пример, который может существенно упростить некоторые проверки в мониторинге. Формируем массив из файлов в директории:
Можно этот же массив предварительно отсортировать по дате с помощью ls:
Свежие файлы будут отображаться первыми. Потом с помощью JSONPath $[0] можно получить имя самого свежего файла или самого старого: $[-1:].
Ещё практический пример. Массив процессов на хосте сразу с исключением дублей:
В зависимости от ключей ps можно формировать нужный список с различными сортировками.
Можно сразу же сформировать данные для LLD правил автообнаружения Zabbix:
Не надо заморачиваться на баше с проставлением запятых и скобок.
Утилита jo, наравне с jq, однозначно пригодится тем, кто много работает с JSON. К тому же живёт в базовых репах и без проблем устанавливается:
Исходники - https://github.com/jpmens/jo
#bash #linux #zabbix #json
# jo name=vova name=sasha name=dima
{"name":"vova","name":"sasha","name":"dima"}
А вот более прикладной пример, который может существенно упростить некоторые проверки в мониторинге. Формируем массив из файлов в директории:
# jo -p -a /backup/mysql/*
[
"/backup/mysql/daily_mysql_2021-09-28_16h11m_Tuesday.sql.gz",
"/backup/mysql/daily_mysql_2021-09-29_16h15m_Wednesday.sql.gz",
"/backup/mysql/daily_mysql_2021-09-30_16h14m_Friday.sql.gz"
]
Можно этот же массив предварительно отсортировать по дате с помощью ls:
# ls -t | jo -p -a
Свежие файлы будут отображаться первыми. Потом с помощью JSONPath $[0] можно получить имя самого свежего файла или самого старого: $[-1:].
Ещё практический пример. Массив процессов на хосте сразу с исключением дублей:
# ps ax | awk '{print $5}' | jo -a -p | uniq
[
.....
"/usr/bin/newrelic-infra-service",
"/usr/bin/newrelic-infra",
"/bin/sh",
"/usr/sbin/mysqld",
"/usr/sbin/sshd",
"/usr/sbin/rpc.mountd",
"/usr/sbin/rpc.idmapd",
......
]
В зависимости от ключей ps можно формировать нужный список с различными сортировками.
Можно сразу же сформировать данные для LLD правил автообнаружения Zabbix:
# jo -a {#DOMAIN}:ya.ru {#DOMAIN}:r0.ru
["{#DOMAIN}:ya.ru","{#DOMAIN}:r0.ru"]
Не надо заморачиваться на баше с проставлением запятых и скобок.
Утилита jo, наравне с jq, однозначно пригодится тем, кто много работает с JSON. К тому же живёт в базовых репах и без проблем устанавливается:
# apt install jo
# dnf install jo
Исходники - https://github.com/jpmens/jo
#bash #linux #zabbix #json
👍69👎3
Садитесь поудобнее и внимательно прочитайте пост, так как он будет полезен всем. Я попробовал интересный софт, который может пригодиться как админам Linux, так и Windows, а также всем остальным любителям настраивать сервера. Речь пойдёт про файловый сервер SFTPGo. Мне очень понравилась его простота, удобство настройки и функционал. Расскажу обо всё по порядку.
Основные возможности SFTPGo:
◽ хранение файлов локально, в том числе в зашифрованных хранилищах, в S3 совместимых хранилищах, в хранилищах с доступом по sftp, в Google Cloud Storage, в Azure Blob Storage
◽ доступ к файлам возможен по sftp, ftp, dav, http
◽ доступ настраивается на основе пользователей и групп, аутентификация по паролю или сертификату
◽ управление сервером осуществляется через web интерфейс
◽ есть REST API с доступом как к управлению, так и к данным
◽ веб интерфейс не только для управления, но и для доступа к файлам пользователями
◽ гибкие настройки правд доступа на основе ACLs
◽ умеет отдавать все свои метрики в формате Prometheus
◽ установка возможна на все популярные операционные системы, в том числе и Windows.
Теперь рассказываю на практике, как выглядит настройка. Устанавливаете SFTPGo. Проще всего через Docker:
8080 порт для управления, 2022 для доступа по sftp. По дефолту остальные службы (FTP и WevDAV) не запущены. Docker рекомендую только для теста. В прод лучше ставить без него. Это будет удобнее, если используете локальное хранилище для файлов. Меньше проблем с монтированием и правами доступа в контейнере.
Идёте в web интерфейс и создаёте пользователя. В момент создания вы указываете, где будут храниться его данные. Это может быть локальная папка, удалённая с доступом через sftp или S3 бакет. Тут же прописываются все доступы к этому удалённому хранилищу. И тут я вижу большое удобство - один раз создаёте пользователя, подключаете ему S3 хранилище и дальше уже везде, где вам надо, используете этого пользователя.
При этом, если пользователю настроена аутентификация с помощью пароля, эту же учётную запись можно использовать для доступа к файлам через web интерфейс.
SFTPGo как минимум удобный и современный ftp/sftp сервер с управлением и доступом к файлам через веб интерфейс. А в дополнение расширенные варианты для хранилищ. Удобно использовать не только как непосредственно файловый сервер для пользователей, но и для служебных целей, таких как организация бэкапов. Особенно если ими необходимо будет пользоваться обычным людям. Для них web доступ будет очень кстати.
Всё реализовано максимально просто и понятно. Функций немного, веб интерфейс не перегружен. Только самое необходимое. Я разобрался очень быстро.
Исходники - https://github.com/drakkan/sftpgo
Репозитории rpm и deb - https://github.com/drakkan/sftpgo/blob/main/docs/repo.md
Инструкция - https://github.com/drakkan/sftpgo/blob/main/docs/howto/getting-started.md#Installation
#fileserver #ftp #sftp
Основные возможности SFTPGo:
◽ хранение файлов локально, в том числе в зашифрованных хранилищах, в S3 совместимых хранилищах, в хранилищах с доступом по sftp, в Google Cloud Storage, в Azure Blob Storage
◽ доступ к файлам возможен по sftp, ftp, dav, http
◽ доступ настраивается на основе пользователей и групп, аутентификация по паролю или сертификату
◽ управление сервером осуществляется через web интерфейс
◽ есть REST API с доступом как к управлению, так и к данным
◽ веб интерфейс не только для управления, но и для доступа к файлам пользователями
◽ гибкие настройки правд доступа на основе ACLs
◽ умеет отдавать все свои метрики в формате Prometheus
◽ установка возможна на все популярные операционные системы, в том числе и Windows.
Теперь рассказываю на практике, как выглядит настройка. Устанавливаете SFTPGo. Проще всего через Docker:
# docker run --name some-sftpgo \
-p 8080:8080 \
-p 2022:2022 \
-d drakkan/sftpgo
8080 порт для управления, 2022 для доступа по sftp. По дефолту остальные службы (FTP и WevDAV) не запущены. Docker рекомендую только для теста. В прод лучше ставить без него. Это будет удобнее, если используете локальное хранилище для файлов. Меньше проблем с монтированием и правами доступа в контейнере.
Идёте в web интерфейс и создаёте пользователя. В момент создания вы указываете, где будут храниться его данные. Это может быть локальная папка, удалённая с доступом через sftp или S3 бакет. Тут же прописываются все доступы к этому удалённому хранилищу. И тут я вижу большое удобство - один раз создаёте пользователя, подключаете ему S3 хранилище и дальше уже везде, где вам надо, используете этого пользователя.
При этом, если пользователю настроена аутентификация с помощью пароля, эту же учётную запись можно использовать для доступа к файлам через web интерфейс.
SFTPGo как минимум удобный и современный ftp/sftp сервер с управлением и доступом к файлам через веб интерфейс. А в дополнение расширенные варианты для хранилищ. Удобно использовать не только как непосредственно файловый сервер для пользователей, но и для служебных целей, таких как организация бэкапов. Особенно если ими необходимо будет пользоваться обычным людям. Для них web доступ будет очень кстати.
Всё реализовано максимально просто и понятно. Функций немного, веб интерфейс не перегружен. Только самое необходимое. Я разобрался очень быстро.
Исходники - https://github.com/drakkan/sftpgo
Репозитории rpm и deb - https://github.com/drakkan/sftpgo/blob/main/docs/repo.md
Инструкция - https://github.com/drakkan/sftpgo/blob/main/docs/howto/getting-started.md#Installation
#fileserver #ftp #sftp
👍82👎3
Jenkins: СI/CD для DevOps и разработчиков
6 сентября стартует курс по Jenkins от Кирилла Борисова, Infrastructure Engineer технологического центра Deutsche Bank. В курсе будет много кейсов и примеров из практики спикера.
Вы научитесь:
- Автоматизировать процесс интеграции и поставки
- Ускорять цикл разработки и внедрять полезные инструменты
- Настраивать плагины и создавать пайплайны Jenkins as a code
- Работать с Jenkins Shared Library
Что вас ждёт на курсе:
📌 «Живые» уроки со спикером. Они проходят два раза в неделю по вторникам и четвергам. На них спикер объясняет теорию и показывает, как выполнять практические задания. В конце каждого урока предусмотрена QA-сессия, где можно задать вопросы.
📌 Много практики. После каждого урока вы получаете домашнее задание по теме. Для выполнения вам будут предоставлены настоящие сервера Selectel, предварительно настроенные для практики. Задания максимально приближены к реальным задачам, с которыми вы можете столкнуться в работе.
📌 Закрытый чат со спикером. На время потока мы создадим чат, где вы сможете задать Кириллу любой вопрос по Jenkins и оперативно получить ответ. После окончания курса чат будет закрыт, но вы всё равно сможете перечитать сообщения и освежить нужный диалог в памяти.
📌 Итоговое задание. Задание включает все темы, рассмотренные в рамках курса. Чтобы решить его, понадобится применить полученные знания в комплексе.
Здесь можно ознакомиться с подробной программой и занять местечко 👉 https://slurm.club/3aL4gSE
Ждём всех, кто хочет получить фундаментальные знания по работе с Jenkins и не тратить время на изобретение решений😈
#реклама
6 сентября стартует курс по Jenkins от Кирилла Борисова, Infrastructure Engineer технологического центра Deutsche Bank. В курсе будет много кейсов и примеров из практики спикера.
Вы научитесь:
- Автоматизировать процесс интеграции и поставки
- Ускорять цикл разработки и внедрять полезные инструменты
- Настраивать плагины и создавать пайплайны Jenkins as a code
- Работать с Jenkins Shared Library
Что вас ждёт на курсе:
📌 «Живые» уроки со спикером. Они проходят два раза в неделю по вторникам и четвергам. На них спикер объясняет теорию и показывает, как выполнять практические задания. В конце каждого урока предусмотрена QA-сессия, где можно задать вопросы.
📌 Много практики. После каждого урока вы получаете домашнее задание по теме. Для выполнения вам будут предоставлены настоящие сервера Selectel, предварительно настроенные для практики. Задания максимально приближены к реальным задачам, с которыми вы можете столкнуться в работе.
📌 Закрытый чат со спикером. На время потока мы создадим чат, где вы сможете задать Кириллу любой вопрос по Jenkins и оперативно получить ответ. После окончания курса чат будет закрыт, но вы всё равно сможете перечитать сообщения и освежить нужный диалог в памяти.
📌 Итоговое задание. Задание включает все темы, рассмотренные в рамках курса. Чтобы решить его, понадобится применить полученные знания в комплексе.
Здесь можно ознакомиться с подробной программой и занять местечко 👉 https://slurm.club/3aL4gSE
Ждём всех, кто хочет получить фундаментальные знания по работе с Jenkins и не тратить время на изобретение решений😈
#реклама
👎13👍7
Много раз уже мельком в тематических заметках упоминал про инструмент, которым постоянно пользуюсь. Решил оформить отдельной заметкой, чтобы больше людей обратило внимание. Речь пойдёт о JSONPath Online Evaluator, который есть в виде публичного сервиса, и в виде исходников для установки где-то у себя.
Это простой и наглядный сервис для работы с JSON. Мне он нужен ровно для одной цели - вытаскивать значения с помощью JSONPath для предобработки в Zabbix. JSON очень популярный формат, так что работать с ним приходится постоянно. Возможность предобработки в Zabbix очень сильно упростила настройку мониторинга.
Раньше всё это обрабатывать в скриптах приходилось, но времена сие давно прошли, хотя куча скриптов с тех времён так и осталась. Но сейчас, если настраиваю что-то новое, то по максимум использую встроенную предобработку.
Если есть что-то лучше для этих же задач, поделитесь информацией.
#json
Это простой и наглядный сервис для работы с JSON. Мне он нужен ровно для одной цели - вытаскивать значения с помощью JSONPath для предобработки в Zabbix. JSON очень популярный формат, так что работать с ним приходится постоянно. Возможность предобработки в Zabbix очень сильно упростила настройку мониторинга.
Раньше всё это обрабатывать в скриптах приходилось, но времена сие давно прошли, хотя куча скриптов с тех времён так и осталась. Но сейчас, если настраиваю что-то новое, то по максимум использую встроенную предобработку.
Если есть что-то лучше для этих же задач, поделитесь информацией.
#json
👍38👎3
Если вы когда-нибудь сталкивались со взломом серверов, то наверняка видели скрипты с абракадаброй, которые таинственным образом то и дело всплывают в cron, либо запускаются раз за разом, хотя вы их прибиваете, а файлы удаляете. Моя рекомендация по любому взлому - переустановка системы. Это всегда быстрее, проще, надёжнее, чем пытаться вылечить. Но рассказать хотел не об этом.
Существует множество инструментов по обфускации кода, то есть превращение его в нечитаемую кашу, чтобы невозможно было однозначно понять, что он делает. Один из инструментов для bash - Bashfuscator. Он превращает bash код в абракадабру. Когда изучал его, повеселил один из комментариев на Reddit по поводу этого софта. Примерный перевод такой:
Разве для bash нужен обфускатор? Его и так невозможно понять.
На что разработчик ответил:
Это правда. До написания Bashfuscator я не очень хорошо понимал bash. Для непосвящённых он выглядит как случайный набор символов, но тем не менее до Perl ему далеко.
Bashfuscator написан на Python, ставится так:
Бинарник будет в директории ~/Bashfuscator/bashfuscator/bin.
Использовать примерно так:
Знаете, что я первым делом проверил этим обфускатором? Команду:
Обфусцированный код исполнился без всяких предупреждений и грохнул систему. Только не надо это повторять и кому-то вредить. Просто знайте, что может случиться вот такая ситуация. Будьте с таким кодом предельно аккуратны, если кто-то пошутит и пришлёт.
Для себя не могу придумать ситуации, где бы мне пригодился подобный обфускатор. Остался непонятен самый главный вопрос. Можно ли такой обфусцированный код превратить обратно в читаемый? По идее, простого способа не существует. Вариант только один - как-то отслеживать выполнение и на основе этого предполагать исходный код. Кто-то знает на практике как это реализуется?
Исходники / Документация / Reddit
#bash #security
Существует множество инструментов по обфускации кода, то есть превращение его в нечитаемую кашу, чтобы невозможно было однозначно понять, что он делает. Один из инструментов для bash - Bashfuscator. Он превращает bash код в абракадабру. Когда изучал его, повеселил один из комментариев на Reddit по поводу этого софта. Примерный перевод такой:
Разве для bash нужен обфускатор? Его и так невозможно понять.
На что разработчик ответил:
Это правда. До написания Bashfuscator я не очень хорошо понимал bash. Для непосвящённых он выглядит как случайный набор символов, но тем не менее до Perl ему далеко.
Bashfuscator написан на Python, ставится так:
# apt install python3 python3-pip python3-argcomplete xclip
# git clone https://github.com/Bashfuscator/Bashfuscator
# cd Bashfuscator
# python3 setup.py install --user
Бинарник будет в директории ~/Bashfuscator/bashfuscator/bin.
Использовать примерно так:
# ./bashfuscator -c "cat /etc/passwd"
Знаете, что я первым делом проверил этим обфускатором? Команду:
# rm -rf / --no-preserve-root
Обфусцированный код исполнился без всяких предупреждений и грохнул систему. Только не надо это повторять и кому-то вредить. Просто знайте, что может случиться вот такая ситуация. Будьте с таким кодом предельно аккуратны, если кто-то пошутит и пришлёт.
Для себя не могу придумать ситуации, где бы мне пригодился подобный обфускатор. Остался непонятен самый главный вопрос. Можно ли такой обфусцированный код превратить обратно в читаемый? По идее, простого способа не существует. Вариант только один - как-то отслеживать выполнение и на основе этого предполагать исходный код. Кто-то знает на практике как это реализуется?
Исходники / Документация / Reddit
#bash #security
👍50👎3
Немного пятничного юмора. Давно ничего не находил интересного, а тут испанец в рекомендациях выскочил. С ним трудно совсем не интересно сделать, так что получилось в целом нормально. Мне понравилось, особенно в самом конце про русских хакеров и ошибок в сети.
Испанец о методах быстрого и эффективного решения проблем:
https://www.youtube.com/watch?v=0K9I9o6YByY
Если кратко, то там о том, как искали баг в коде и по ошибке залили изменения не на dev, а на prod. Потом откатили.
Поделитесь хорошим юмором в видео на тему IT, сделаю как-нибудь подборку. У меня на канале уже много всего было, но давно публиковалось. Наверняка большинство не видели.
#юмор
Испанец о методах быстрого и эффективного решения проблем:
https://www.youtube.com/watch?v=0K9I9o6YByY
Если кратко, то там о том, как искали баг в коде и по ошибке залили изменения не на dev, а на prod. Потом откатили.
Поделитесь хорошим юмором в видео на тему IT, сделаю как-нибудь подборку. У меня на канале уже много всего было, но давно публиковалось. Наверняка большинство не видели.
#юмор
YouTube
Испанец о методах быстрого и эффективного решения проблем
Испанец рассказывает о методах быстрого и эффективного решения проблем.
В этом видео перед испанцем опять встала сложная задача. На продакшене случилась непредвиденная проблема и ее нужно было срочно решать. Что предпримет испанец и как найдет выход из сложившейся…
В этом видео перед испанцем опять встала сложная задача. На продакшене случилась непредвиденная проблема и ее нужно было срочно решать. Что предпримет испанец и как найдет выход из сложившейся…
👍30👎5
Полезно всё-таки смотреть чужие вебинары, где человек что-то на практике делает и показывает на своём окружении. И желательно, если он всё делает с нуля. Я всегда ставил Docker по одной и той же схеме - гуглил "docker install distrolinux" и неизменно попадал в официальную доку докера, где надо было в несколько кликов попасть на нужную тебе инструкцию. Потом скачать ключ, подключить репу, обновить пакеты и поставить то, что тебе нужно.
Мне и в голову не приходило действовать как-то иначе. А докер приходится ставить часто. Практически постоянно. Можно сэкономить кучу времени, если ставить его вот так:
Будет сделано всё то же самое, только автоматически. Систему скрипт определит сам. Просто сохраните эту команду и используйте для ручной установки докера.
Если хочется сначала посмотреть, что за скрипт, то сохраните его, не запуская:
Если добавить опцию DRY_RUN, то можно посмотреть, что скрипт будет делать, но не выполнять ничего:
Так что для общего образования рекомендую иногда посматривать обучающие вебинары, даже если особой потребности в этом нет. Я чисто из любопытства смотрю. Не могу сказать, что они прям как-то сильно помогают. Обычно если сам что-то не делаешь, то от просмотра толку никакого нет. А тут написал заметку и запомнил, сохранил себе. Если бы не сделал этого, то опять бы гуглить продолжал.
#docker
Мне и в голову не приходило действовать как-то иначе. А докер приходится ставить часто. Практически постоянно. Можно сэкономить кучу времени, если ставить его вот так:
# curl -o - https://get.docker.com | bash -
Будет сделано всё то же самое, только автоматически. Систему скрипт определит сам. Просто сохраните эту команду и используйте для ручной установки докера.
Если хочется сначала посмотреть, что за скрипт, то сохраните его, не запуская:
# curl https://get.docker.com -o get-docker.sh
Если добавить опцию DRY_RUN, то можно посмотреть, что скрипт будет делать, но не выполнять ничего:
# DRY_RUN=1 sh ./get-docker.sh
Так что для общего образования рекомендую иногда посматривать обучающие вебинары, даже если особой потребности в этом нет. Я чисто из любопытства смотрю. Не могу сказать, что они прям как-то сильно помогают. Обычно если сам что-то не делаешь, то от просмотра толку никакого нет. А тут написал заметку и запомнил, сохранил себе. Если бы не сделал этого, то опять бы гуглить продолжал.
#docker
👍129👎8
3 причины подписаться на канал Импортозамещение здорового человека 🔥
1. Честно о возможностях и проблемах российского железа простым языком.
2. Трибуна для импортозаместителей, которые любят свое дело.
3. Эксперты-разработчики отвечают на вопросы подписчиков.
Будет полезно — подписывайся на @aerodisk_official
#реклама
1. Честно о возможностях и проблемах российского железа простым языком.
2. Трибуна для импортозаместителей, которые любят свое дело.
3. Эксперты-разработчики отвечают на вопросы подписчиков.
Будет полезно — подписывайся на @aerodisk_official
#реклама
👎25👍15
Посмотрел интересное выступление с HighLoad++ 2021, которое весной выложили в открытый доступ - Есть ли жизнь без ELK? Как снизить стоимость Log Management:
https://www.youtube.com/watch?v=BOVuwr43ZTE
Автор детально разбирает тему хранения логов с помощью современных инструментов. Прикидывает нагрузку, стоимость решения. Перебирает различные варианты и в итоге рассказывает, к какому решению пришли сами.
Они решили для экономии денег и ресурсов собрать систему сбора логов самостоятельно на базе сборщика логов Vector (по их тестам он оказался быстрее FluentD), парсинг делают им же, обработка с помощью Kafka, данные хранят в ClickHouse, визуализируют с помощью Grafana.
Если вам интересная данная тема, то рекомендую. Я, например, про Vector вообще впервые услышал. Всегда думал, что оптимальный парсер и доставщик логов это FluentD. Обычно его рекомендуют вместо тормозного Filebeat.
#видео #elk #logs
https://www.youtube.com/watch?v=BOVuwr43ZTE
Автор детально разбирает тему хранения логов с помощью современных инструментов. Прикидывает нагрузку, стоимость решения. Перебирает различные варианты и в итоге рассказывает, к какому решению пришли сами.
Они решили для экономии денег и ресурсов собрать систему сбора логов самостоятельно на базе сборщика логов Vector (по их тестам он оказался быстрее FluentD), парсинг делают им же, обработка с помощью Kafka, данные хранят в ClickHouse, визуализируют с помощью Grafana.
Если вам интересная данная тема, то рекомендую. Я, например, про Vector вообще впервые услышал. Всегда думал, что оптимальный парсер и доставщик логов это FluentD. Обычно его рекомендуют вместо тормозного Filebeat.
#видео #elk #logs
YouTube
Есть ли жизнь без ELK? Как снизить стоимость Log Management / Денис Безкоровайный
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Профессиональная конференция разработчиков высоконагруженных систем
20 и…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Профессиональная конференция разработчиков высоконагруженных систем
20 и…
👍25👎3
Ранее мне уже приходилось рассказывать о различных неожиданностях, которые можно получить от хостера при управлении виртуальной машиной. Сейчас расскажу ещё один пример, с которым столкнулся впервые.
На одной из VM случайно обнаружил, что нет моих правил в iptables. Остались только цепочки, что добавляет fail2ban, а остальных правил нет. Стал разбираться и выяснил, в чём дело.
На VM через панель управления был добавлен дополнительный внешний IP. А у хостера каким-то образом реализовано автоматическое применение сетевых настроек. Мало того, что они сразу же на VM применились, был отредактирован файл /etc/network/interfaces. В Debian там по умолчанию хранятся сетевые настройки. Мой файл был заменён на новый с дополнительным IP.
У меня давняя привычка применять правила iptables при поднятии сетевого интерфейса. Реализовано это так:
После добавления адреса я вручную отредактировал firewall, добавил новые правила, связанные с изменениями, применил их. Перезагрузка не потребовалась. А через какое-то время я VM перезагрузил. Стартанула она уже с новыми сетевыми настройками, где в interfaces моей настройки с загрузкой правил iptables уже не было.
В данном случае никаких проблем не возникло, так как ни один лишний сервис запущен не был. Правила были дежурные и только одно нужное с белым списком ip адресов для доступа к ssh. Но это не проблема, если он будет доступен через интернет. Я всегда всё закрываю белыми списками, к чему не нужен публичный доступ. Привычка такая.
Вот похожая история на тему управления VM со стороны хостера при добавлении и удалении диска через панель управления:
https://t.iss.one/srv_admin/371
Чуть не остался без подмонтированного диска и всех данных.
Попадали в похожие истории?
#хостинг
На одной из VM случайно обнаружил, что нет моих правил в iptables. Остались только цепочки, что добавляет fail2ban, а остальных правил нет. Стал разбираться и выяснил, в чём дело.
На VM через панель управления был добавлен дополнительный внешний IP. А у хостера каким-то образом реализовано автоматическое применение сетевых настроек. Мало того, что они сразу же на VM применились, был отредактирован файл /etc/network/interfaces. В Debian там по умолчанию хранятся сетевые настройки. Мой файл был заменён на новый с дополнительным IP.
У меня давняя привычка применять правила iptables при поднятии сетевого интерфейса. Реализовано это так:
allow-hotplug eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables_rules
После добавления адреса я вручную отредактировал firewall, добавил новые правила, связанные с изменениями, применил их. Перезагрузка не потребовалась. А через какое-то время я VM перезагрузил. Стартанула она уже с новыми сетевыми настройками, где в interfaces моей настройки с загрузкой правил iptables уже не было.
В данном случае никаких проблем не возникло, так как ни один лишний сервис запущен не был. Правила были дежурные и только одно нужное с белым списком ip адресов для доступа к ssh. Но это не проблема, если он будет доступен через интернет. Я всегда всё закрываю белыми списками, к чему не нужен публичный доступ. Привычка такая.
Вот похожая история на тему управления VM со стороны хостера при добавлении и удалении диска через панель управления:
https://t.iss.one/srv_admin/371
Чуть не остался без подмонтированного диска и всех данных.
Попадали в похожие истории?
#хостинг
👍26👎3