Много лет использую Zabbix и постоянно нахожу что-то новое. Это очень масштабная система, которую самому трудно объять, если изучаешь сам для решения только своих задач. На днях ИИ научил меня кое-чему новому.
Была задача настроить авторегистрацию хостов после установки на них агентов. Мне не так часто приходилось это настраивать, потому что никогда не работал с большими инфраструктурами, где узлы постоянно добавляются или удаляются из системы. Даже если у вас в управлении штук 50 серверов, вряд ли вы будете даже раз в день вводить новый сервер, которому нужен будет мониторинг. Скорее всего это будет раз в неделю или раз в месяц. А может и того реже. Zabbix больше про долгосрочное хранение метрик и тренды. Что-то временное в него заводить не имеет большого смысла. Для этого проще взять что-то другое. Пользовательские компьютеры я тоже никогда не заводил в мониторинг.
Я всегда знал, что в Zabbix Server есть автообнаружение узлов банальным сканированием заданных подсетей. Как только попадается что-то новое, чего ещё нет в системе, добавляем и навешиваем группы и шаблоны в зависимости от настроенных действий автообнаружения. Работает просто и понятно. Главный минус в том, что работает не мгновенно и надо постоянно сканировать сеть в поисках узлов, что создаёт постоянный спам запросами в сети.
Второй инструмент - API. Там есть метод host.create, который активно используется в различных интеграциях с CMDB или в CI/CD. Тоже простой и понятный способ.
Попросив ИИ написать авторегистрацию, думал, что он наваяет что-то через API. Он легко программирует подобные интеграции. Когда агент всё сделал, я посмотрел реализацию. Он всё настроил через авторегистрацию активных агентов. Работает это максимально просто и удобно, мне понравилось. Мимо меня всё это прошло, потому что редко использую агентов в активном режиме, когда они сами шлют запросы на сервер мониторинга для получения инструкций. У меня чаще всего есть сетевая связность между агентами и сервером, поэтому использую пассивный режим агентов, когда их опрашивает сервер. Архитектурно это более простые запросы и обработки, которые меньше нагружают сеть, агентов и сервер. Плюс, до версии 7.0 через агентов в активном режиме нельзя было выполнять локальные команды на узлах. В общем я этот режим почти не использовал.
Вот как это работает. Добавляем в конфигурацию агента:
Метаданные можно задавать какие угодно для вашего удобства и иерархии. На сервер улетает вся строка, которая может быть распарсена до каждого отдельного слова или фразы.
В веб-интерфейсе Zabbix переходим в Оповещения ⇨ Действия (Alerts ⇨ Actions), выбираем Действия авторегистрации (Autoregistration actions) и Создаём действие (Create action). В нём описываем условия через И и ИЛИ. Например, если os:linux и location:pve-cluster, то навешиваем шаблон Linux by Zabbix agent и добавляем в группы Linux Servers и PVE-cluster. А также шлём уведомление и навешиваем нужные тэги.
Вот и вся настройка. Как только узел с настроенным агентом появится в сети и постучится на сервер мониторинга, ему сразу же определяет его место и метрики. А шаблон, кстати, ему можно добавить с пассивными проверками. То есть для работы авторегистрации не обязательно собирать метрики в активном режиме. Дальше сервер сам может опрашивать агента, если к нему есть доступ.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#zabbix
Была задача настроить авторегистрацию хостов после установки на них агентов. Мне не так часто приходилось это настраивать, потому что никогда не работал с большими инфраструктурами, где узлы постоянно добавляются или удаляются из системы. Даже если у вас в управлении штук 50 серверов, вряд ли вы будете даже раз в день вводить новый сервер, которому нужен будет мониторинг. Скорее всего это будет раз в неделю или раз в месяц. А может и того реже. Zabbix больше про долгосрочное хранение метрик и тренды. Что-то временное в него заводить не имеет большого смысла. Для этого проще взять что-то другое. Пользовательские компьютеры я тоже никогда не заводил в мониторинг.
Я всегда знал, что в Zabbix Server есть автообнаружение узлов банальным сканированием заданных подсетей. Как только попадается что-то новое, чего ещё нет в системе, добавляем и навешиваем группы и шаблоны в зависимости от настроенных действий автообнаружения. Работает просто и понятно. Главный минус в том, что работает не мгновенно и надо постоянно сканировать сеть в поисках узлов, что создаёт постоянный спам запросами в сети.
Второй инструмент - API. Там есть метод host.create, который активно используется в различных интеграциях с CMDB или в CI/CD. Тоже простой и понятный способ.
Попросив ИИ написать авторегистрацию, думал, что он наваяет что-то через API. Он легко программирует подобные интеграции. Когда агент всё сделал, я посмотрел реализацию. Он всё настроил через авторегистрацию активных агентов. Работает это максимально просто и удобно, мне понравилось. Мимо меня всё это прошло, потому что редко использую агентов в активном режиме, когда они сами шлют запросы на сервер мониторинга для получения инструкций. У меня чаще всего есть сетевая связность между агентами и сервером, поэтому использую пассивный режим агентов, когда их опрашивает сервер. Архитектурно это более простые запросы и обработки, которые меньше нагружают сеть, агентов и сервер. Плюс, до версии 7.0 через агентов в активном режиме нельзя было выполнять локальные команды на узлах. В общем я этот режим почти не использовал.
Вот как это работает. Добавляем в конфигурацию агента:
ServerActive=192.168.137.250HostMetadata=os:linux os_family:debian environment:production location:pve-clusterМетаданные можно задавать какие угодно для вашего удобства и иерархии. На сервер улетает вся строка, которая может быть распарсена до каждого отдельного слова или фразы.
В веб-интерфейсе Zabbix переходим в Оповещения ⇨ Действия (Alerts ⇨ Actions), выбираем Действия авторегистрации (Autoregistration actions) и Создаём действие (Create action). В нём описываем условия через И и ИЛИ. Например, если os:linux и location:pve-cluster, то навешиваем шаблон Linux by Zabbix agent и добавляем в группы Linux Servers и PVE-cluster. А также шлём уведомление и навешиваем нужные тэги.
Вот и вся настройка. Как только узел с настроенным агентом появится в сети и постучится на сервер мониторинга, ему сразу же определяет его место и метрики. А шаблон, кстати, ему можно добавить с пассивными проверками. То есть для работы авторегистрации не обязательно собирать метрики в активном режиме. Дальше сервер сам может опрашивать агента, если к нему есть доступ.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96👎1
Купил не так давно себе домой ИБП Ippon Kirpich 1050. Хороший аппарат, мне понравился - много розеток, ЖК экран. И самое главное - кнопка управления писком. Я полностью отключил его. У меня есть старый Ippon попроще, где этой кнопки нет. И он постоянно пищит, когда электричества нет, невозможно отключить.
Я решил по сигналу с этого Иппона отключать всё, что подключено к нему, и ко второму, который вообще без управления. Теоретически задача выглядела простой, потому что есть ПО от вендора под нужные системы - Windows и Linux. А практически пришлось повозиться, потому что много нюансов.
Пока была актуальна и развивалась программа Apcupsd, я для этих целей использовал её. Она очень удобная и простая в настройке - одинаковые минималистичные файлы конфигураций под все системы, режим работы клиент-сервер. Специально подбирал ИБП, чтобы поддерживала его. Она была совместима не только с аппаратами APC, но и те же Ippon некоторых моделей поддерживала. Сейчас программа заброшена, не обновляется, даже сайта не осталось. Я посмотрел на неё и понял, что всё, каши с ней больше не сварить 😢.
Ippon предлагает использовать программу PowerMaster, написанную на Java. Она поднимает веб сервер, управление через браузер. На первый взгляд не очень удобное решение, но в духе нашего времени. Я поставил её и на винду, и на линукс. В принципе, работает, хоть и жирновата, функциональность отличная, много чего умеет. Работает тоже в режиме клиент-сервер. Серверную часть ставишь на машину, куда подключен ИБП по USB, на остальные - клиентскую часть, которая подключается к серверу и следит за его состоянием, слушает команды.
У меня ИБП подключен к машине с Windows, а выключать надо сервера с PVE и Xpenology. Ставить на гипервизор тяжёлое Java приложение не хочется, а на Xpenology вообще не понятно, встанет ли. Я даже не пробовал. Решил пойти по другому пути. PowerMaster умеет запускать cmd скрипты на события от ИБП. Я решил отправлять на все зависимые машины по SSH команду на выключение после минуты отсутствия электричества.
Настраивается это в разделе Setting ⇨ Advanced. Событие отключения электричества - Utility power failure. Директория, из которой можно выбрать скрипт для этих событий -
1️⃣ В начало скрипта надо добавить строку:
Без неё в логах будут крякозябры вместо текста ошибок, что сильно усложнит отладку, если что-то пойдёт не так.
2️⃣ Скрипт должен быть обязательно в кодировке UTF-8 with BOM (UTF-8 со спецификацией). С любой другой кодировкой скрипт не отрабатывал в программе, хотя нормально работал из консоли напрямую.
3️⃣ PowerMaster - 32-х битное приложение. Оно не видит стандартный системный путь до ssh.exe. Надо использовать специальный псевдоним
4️⃣ PowerMaster работает от пользователя System. Ключ для SSH надо положить в директорию
На управляемых системах нужно создать пользователя, который будет запускать
Эта простая задача сожрала у меня кучу времени, потому что просто взять и запустить скрипт у меня не получилось. В Apcupsd всё это решалось за 5 минут настройки даже в первый раз. А тут часа 2 колупался, пока все ошибки отладил, учёл нюансы винды и программы.
В итоге подёргал ИБП из розетки, всё корректно отрабатывает. Он, кстати, спокойно тянет 3 обычных системника с БП на 400-500w, не жалуется на перегрузку. Минут 5 с ними работает. С одним - 15-20. Я как раз на него 3 самосбора повесил под тестовый кластер и бэкапы. Плюс ещё 2 машины гасит на втором ИБП. Тот Иппон у меня лет 10 работает, на третьем аккумуляторе уже.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#железо
Я решил по сигналу с этого Иппона отключать всё, что подключено к нему, и ко второму, который вообще без управления. Теоретически задача выглядела простой, потому что есть ПО от вендора под нужные системы - Windows и Linux. А практически пришлось повозиться, потому что много нюансов.
Пока была актуальна и развивалась программа Apcupsd, я для этих целей использовал её. Она очень удобная и простая в настройке - одинаковые минималистичные файлы конфигураций под все системы, режим работы клиент-сервер. Специально подбирал ИБП, чтобы поддерживала его. Она была совместима не только с аппаратами APC, но и те же Ippon некоторых моделей поддерживала. Сейчас программа заброшена, не обновляется, даже сайта не осталось. Я посмотрел на неё и понял, что всё, каши с ней больше не сварить 😢.
Ippon предлагает использовать программу PowerMaster, написанную на Java. Она поднимает веб сервер, управление через браузер. На первый взгляд не очень удобное решение, но в духе нашего времени. Я поставил её и на винду, и на линукс. В принципе, работает, хоть и жирновата, функциональность отличная, много чего умеет. Работает тоже в режиме клиент-сервер. Серверную часть ставишь на машину, куда подключен ИБП по USB, на остальные - клиентскую часть, которая подключается к серверу и следит за его состоянием, слушает команды.
У меня ИБП подключен к машине с Windows, а выключать надо сервера с PVE и Xpenology. Ставить на гипервизор тяжёлое Java приложение не хочется, а на Xpenology вообще не понятно, встанет ли. Я даже не пробовал. Решил пойти по другому пути. PowerMaster умеет запускать cmd скрипты на события от ИБП. Я решил отправлять на все зависимые машины по SSH команду на выключение после минуты отсутствия электричества.
Настраивается это в разделе Setting ⇨ Advanced. Событие отключения электричества - Utility power failure. Директория, из которой можно выбрать скрипт для этих событий -
C:\Program Files (x86)\PowerMaster Plus\extcmd. Там уже есть шаблон default.cmd, в который можно добавить свою логику. Мне её написал ИИ. Пришлось серьёзно заморочиться, чтобы всё отладить. Отмечу несколько важных моментов:chcp 65001 >nul 2>&1Без неё в логах будут крякозябры вместо текста ошибок, что сильно усложнит отладку, если что-то пойдёт не так.
C:\Windows\Sysnative\OpenSSH\ssh.exe.C:\Windows\System32\config\systemprofile\.ssh\, назначить пользователя владельцем и удалить все остальные права.На управляемых системах нужно создать пользователя, который будет запускать
shutdown.Эта простая задача сожрала у меня кучу времени, потому что просто взять и запустить скрипт у меня не получилось. В Apcupsd всё это решалось за 5 минут настройки даже в первый раз. А тут часа 2 колупался, пока все ошибки отладил, учёл нюансы винды и программы.
В итоге подёргал ИБП из розетки, всё корректно отрабатывает. Он, кстати, спокойно тянет 3 обычных системника с БП на 400-500w, не жалуется на перегрузку. Минут 5 с ними работает. С одним - 15-20. Я как раз на него 3 самосбора повесил под тестовый кластер и бэкапы. Плюс ещё 2 машины гасит на втором ИБП. Тот Иппон у меня лет 10 работает, на третьем аккумуляторе уже.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#железо
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106👎4
20 мая в 12:00 (мск) пройдёт бесплатный вебинар «Автоматизация процессов безопасности в Kubernetes: опыт MWS Cloud Platform».
Руководитель направления облачной безопасности Алексей Федулаев расскажет:
- Какие есть подводные камни при переходе с ручных сканов
- Как покрыть тепловыми картами кластеры и отслеживать нарушения
- Как находить аномалии в поведении пользователей
- И наконец, как это всё подружить с центром безопасности
Вебинар будет полезен директорам по ИТ и ИБ, ИБ-специалистам и инженерам, работающим в облачных средах.
Регистрируйтесь, подключайтесь к прямому эфиру и задавайте вопросы в чате.
📆 20 мая в 12:00
Руководитель направления облачной безопасности Алексей Федулаев расскажет:
- Какие есть подводные камни при переходе с ручных сканов
- Как покрыть тепловыми картами кластеры и отслеживать нарушения
- Как находить аномалии в поведении пользователей
- И наконец, как это всё подружить с центром безопасности
Вебинар будет полезен директорам по ИТ и ИБ, ИБ-специалистам и инженерам, работающим в облачных средах.
Регистрируйтесь, подключайтесь к прямому эфиру и задавайте вопросы в чате.
📆 20 мая в 12:00
👍10👎3
Перебирал старые ролики и нашёл древние видео от провайдера Авантел на тему системного администрирования. Зашёл на их канал в поисках чего-то нового, но, к сожалению, канал пустой. Нет ни одного ролика, а старые доступны только по прямым ссылкам. Провайдер как-будто отходит в мир иной.
Скачал на всякий случай и сохранил сюда, чтобы не потерялись. Юмор на любителя, но задумано и снято, как ни крути, необычно и местами интересно 🥹. Кто не смотрел - гляньте хотя бы одним глазком.
На Youtube ролики в качестве 4К. Я не смог их скачать в таком качестве, не разобрался. Получилось только 720p. Если кто-то умеет скачивать качество выше, скиньте, пожалуйста, в личку ролики, я перезалью.
▶️ https://www.youtube.com/watch?v=rjqe8T5XBmw
▶️ https://www.youtube.com/watch?v=WNnJ0gjPgEs
▶️ https://www.youtube.com/watch?v=ncXTQ83eW7Q
#юмор
Скачал на всякий случай и сохранил сюда, чтобы не потерялись. Юмор на любителя, но задумано и снято, как ни крути, необычно и местами интересно 🥹. Кто не смотрел - гляньте хотя бы одним глазком.
На Youtube ролики в качестве 4К. Я не смог их скачать в таком качестве, не разобрался. Получилось только 720p. Если кто-то умеет скачивать качество выше, скиньте, пожалуйста, в личку ролики, я перезалью.
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍138👎20
Как развернуть катастрофоустойчивую облачную инфраструктуру?
На практическом вебинаре Selectel разберет архитектуру геораспределенного облака и покажет, как построить такую ИТ-инфраструктуру, которая продолжит работать даже при отказе целого дата-центра.
📅 20 мая, 12:00
📍 Онлайн
👥 Для DevOps-инженеров, системных администраторов, Cloud-архитекторов и технических руководителей
👉 Смотрите полную программу и регистрируйтесь: https://slc.tl/cnt76
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFHuTtss
На практическом вебинаре Selectel разберет архитектуру геораспределенного облака и покажет, как построить такую ИТ-инфраструктуру, которая продолжит работать даже при отказе целого дата-центра.
📅 20 мая, 12:00
📍 Онлайн
👥 Для DevOps-инженеров, системных администраторов, Cloud-архитекторов и технических руководителей
👉 Смотрите полную программу и регистрируйтесь: https://slc.tl/cnt76
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFHuTtss
👍9👎4
Расскажу про один старый неочевидный трюк в терминале. Он не особо часто нужен, но у меня были ситуации, когда прям очень сильно пригодился бы. Бывает запустишь какой-то процесс в терминале (сборку, перенос кучи мелких файлов, проверка размера огромной директории, дамп большой и медленной базы), не подумав о том, что он может затянуться. И начинаешь переживать за сохранность сессии SSH. Если разорвётся, то процесс остановится. Надо было сразу либо в screen, либо в tmux запускать, но уже поздно. Надо либо ждать и надеяться, либо прерывать и перезапускать.
А на самом деле это вопрос решаемый. Есть небольшая утилита reptyr, которая может без остановки перенести процесс в новую сессию. Причём она в этой сессии продолжит свой вывод в терминал. Утилита живёт в стандартных репах, так что не нужно ничего со стороны скачивать:
Нагляднее и проще всего показать работу reptyr на примере top или htop. Запускаем в обычной консоли top.
Отправляем процесс в фон и там запускаем:
Проверяем, как процесс работает в фоне:
Увидели заодно его pid - 7972. Отвязываем процесс от текущей сессии:
Теперь запускаем новую сессию сразу же с tmux. Заходим в неё и там запускаем:
Открыли в новой сессии с tmux всё тот же процесс top.
Вспомнил про эту тему, когда начал работать с opencode. По какой-то причине у меня периодически отлетает сессия с запущенным агентом, работающая в VPS в локалке. Со связью проблем нет. Не знаю, в чём причина. Первое время забывал его запускать в tmux и терял в какой-то момент диалог. Сейчас уже приучил себя запускать длинные сессии в tmux.
К сожалению, reptyr по какой-то причине сессию с opencode не может восстановить. Отправляю в background, отцепляю от сессии, запускаю в новой через reptyr, но всё виснет. Интерфейс opencode не появляется. Там навороченная и активная псевдографика. Наверное в этом дело. Хотя тот же mc без проблем из сессии в сессию переходит.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#bash #terminal
А на самом деле это вопрос решаемый. Есть небольшая утилита reptyr, которая может без остановки перенести процесс в новую сессию. Причём она в этой сессии продолжит свой вывод в терминал. Утилита живёт в стандартных репах, так что не нужно ничего со стороны скачивать:
# apt install reptyrНагляднее и проще всего показать работу reptyr на примере top или htop. Запускаем в обычной консоли top.
# topОтправляем процесс в фон и там запускаем:
Нажимаем CTRL-Z# bgПроверяем, как процесс работает в фоне:
# jobs -l[1]+ 7972 Stopped (signal) topУвидели заодно его pid - 7972. Отвязываем процесс от текущей сессии:
# disown topТеперь запускаем новую сессию сразу же с tmux. Заходим в неё и там запускаем:
# reptyr 7972Открыли в новой сессии с tmux всё тот же процесс top.
Вспомнил про эту тему, когда начал работать с opencode. По какой-то причине у меня периодически отлетает сессия с запущенным агентом, работающая в VPS в локалке. Со связью проблем нет. Не знаю, в чём причина. Первое время забывал его запускать в tmux и терял в какой-то момент диалог. Сейчас уже приучил себя запускать длинные сессии в tmux.
К сожалению, reptyr по какой-то причине сессию с opencode не может восстановить. Отправляю в background, отцепляю от сессии, запускаю в новой через reptyr, но всё виснет. Интерфейс opencode не появляется. Там навороченная и активная псевдографика. Наверное в этом дело. Хотя тот же mc без проблем из сессии в сессию переходит.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#bash #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍167👎1
Существует современная и функциональная замена старичка Fail2Ban - CrowdSec. Я её давно знаю, использовал ещё лет 5-6 назад. Писал статью по ней в своё время. С тех пор много воды утекло. Решил посмотреть, что она из себя представляет сейчас. Дабы не обмануться и не перепроверять информацию, ИИ вообще не использовал. Просто открыл документацию и настроил базовые вещи. Сразу скажу, что система в текущем её бесплатном исполнении мне понравилась своими возможностями. Если уж сейчас и настраивать, то именно её, а не Fail2Ban.
Принцип настройки CrowdSec условно можно назвать похожим на Fail2Ban, но архитектурно она отличается. В CrowdSec тоже есть источники логов, правила обработки, настройки действий. Но всё это очень сильно развито по сравнению с единственным скриптом на python в Fail2Ban. CrowdSec состоит из отдельных компонентов, которые взаимодействуют между собой по API.
Я присмотрел для себя следующую схему работы CrowdSec, которая опирается на общее хранилище логов Loki, которое я недавно разбирал:
◽️Основной движок CrowdSec устанавливается в отдельную VM или контейнер. Он ходит в общее хранилище Loki за логами.
◽️На пограничный шлюз, который занимается фильтрацией трафика, ставится crowdsec-firewall-bouncer-iptables, или другой в зависимости от используемого файрвола.
◽️Для реализации функциональности WAF на веб сервер или прокси в зависимости от его типа устанавливается соответствующий bouncer. Например, crowdsec-nginx-bouncer для Nginx.
◽️Все необходимые логи стекаются в Loki.
В CrowdSec устанавливаются необходимые парсеры и наборы с описанием уязвимостей. И всё это вместе работает в единой связке. Для базовых задач берутся готовые парсеры и наборы правил. Самому можно не заниматься дополнительной настройкой. Достаточно будет вручную только источники логов подключить. Остальное будет взято из готовых настроек.
Сразу скажу, что система непростая. Я некоторое время потратил, чтобы разобраться, вникнуть в суть и развернуть на одиночном сервере, проверить работу. То, что я описал, будет работать в бесплатной версии, никаких подписок не надо. Готовые списки адресов брать не будем, свои тоже никуда не отправляем.
У CrowdSec раньше была бесплатная веб панель для управления и мониторинга, но они её убрали. Предлагают бесплатно зарегистрироваться в облачной панели, использовать её, но за это они будут забирать вашу аналитику для насыщения своих списков, которые она продают по подписке за приличные деньги. В целом, всё честно и прозрачно. Я в веб панели не регистрировался, запустил всё локально. Покажу кратко, что сделал.
1️⃣ Установил CrowdSec и firewall-bouncer для iptables:
Первая команда-скрипт подключает репозиторий. Это можно сделать вручную. По умолчанию прилетели настройки для анализа системных syslog файлов и journalctl логов от ssh.service, конфигурация firewall-bouncer для блокировки IP, парсеры ssh логов.
Система полностью автоматически настроена для блокировки как минимум нежелательной активности по SSH. Для системных логов надо отдельно правила с уязвимостями загружать.
2️⃣ Сходил на другой сервер и 5 раз ввёл неверный пароль по SSH. Получил бан. Проверил его так:
Появилось новое правило для crowdsec, где используется список ipset для всех заблокированных адресов. Посмотрел список алертов:
Увидел там своё событие, посмотрел его подробности:
3️⃣ Проверил список установленных наборов с правилами, по которым делаем проверки:
Дополнительные ставим так:
Смотрю все основные метрики службы:
В принципе, этой базы достаточно для того, чтобы начать локально пользоваться системой. Мне она понравилась, буду изучать дальше.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#crowdsec #security #waf
Принцип настройки CrowdSec условно можно назвать похожим на Fail2Ban, но архитектурно она отличается. В CrowdSec тоже есть источники логов, правила обработки, настройки действий. Но всё это очень сильно развито по сравнению с единственным скриптом на python в Fail2Ban. CrowdSec состоит из отдельных компонентов, которые взаимодействуют между собой по API.
Я присмотрел для себя следующую схему работы CrowdSec, которая опирается на общее хранилище логов Loki, которое я недавно разбирал:
◽️Основной движок CrowdSec устанавливается в отдельную VM или контейнер. Он ходит в общее хранилище Loki за логами.
◽️На пограничный шлюз, который занимается фильтрацией трафика, ставится crowdsec-firewall-bouncer-iptables, или другой в зависимости от используемого файрвола.
◽️Для реализации функциональности WAF на веб сервер или прокси в зависимости от его типа устанавливается соответствующий bouncer. Например, crowdsec-nginx-bouncer для Nginx.
◽️Все необходимые логи стекаются в Loki.
В CrowdSec устанавливаются необходимые парсеры и наборы с описанием уязвимостей. И всё это вместе работает в единой связке. Для базовых задач берутся готовые парсеры и наборы правил. Самому можно не заниматься дополнительной настройкой. Достаточно будет вручную только источники логов подключить. Остальное будет взято из готовых настроек.
Сразу скажу, что система непростая. Я некоторое время потратил, чтобы разобраться, вникнуть в суть и развернуть на одиночном сервере, проверить работу. То, что я описал, будет работать в бесплатной версии, никаких подписок не надо. Готовые списки адресов брать не будем, свои тоже никуда не отправляем.
У CrowdSec раньше была бесплатная веб панель для управления и мониторинга, но они её убрали. Предлагают бесплатно зарегистрироваться в облачной панели, использовать её, но за это они будут забирать вашу аналитику для насыщения своих списков, которые она продают по подписке за приличные деньги. В целом, всё честно и прозрачно. Я в веб панели не регистрировался, запустил всё локально. Покажу кратко, что сделал.
# curl -s https://install.crowdsec.net | sudo sh # apt install crowdsec# sudo apt install crowdsec-firewall-bouncer-iptablesПервая команда-скрипт подключает репозиторий. Это можно сделать вручную. По умолчанию прилетели настройки для анализа системных syslog файлов и journalctl логов от ssh.service, конфигурация firewall-bouncer для блокировки IP, парсеры ssh логов.
Система полностью автоматически настроена для блокировки как минимум нежелательной активности по SSH. Для системных логов надо отдельно правила с уязвимостями загружать.
# iptables -L -v -n | grep crowdsecПоявилось новое правило для crowdsec, где используется список ipset для всех заблокированных адресов. Посмотрел список алертов:
# cscli alerts listУвидел там своё событие, посмотрел его подробности:
# cscli alerts inspect -d 2# cscli collections listДополнительные ставим так:
# cscli collections install crowdsecurity/nginxСмотрю все основные метрики службы:
# cscli metricsВ принципе, этой базы достаточно для того, чтобы начать локально пользоваться системой. Мне она понравилась, буду изучать дальше.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#crowdsec #security #waf
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍100👎5
Платите за облака меньше — и только за результат!
Найдем лишние траты, оптимизируем инфраструктуру и зафиксируем достигнутую экономию. Без переплат за забытые серверы, неиспользуемые диски и избыточные ресурсы.
Проводим аудит, внедряем изменения и берем на себя достижение результата (экономия до 30%).
Оплата по факту достигнутой экономии (% с суммы). Мы даем не просто инструмент, мы даем результат!
Оптимизировать свою инфраструктуру
Реклама. ООО "СОФТЛАЙН ПЛАТФОРМЫ".
Найдем лишние траты, оптимизируем инфраструктуру и зафиксируем достигнутую экономию. Без переплат за забытые серверы, неиспользуемые диски и избыточные ресурсы.
Проводим аудит, внедряем изменения и берем на себя достижение результата (экономия до 30%).
Оплата по факту достигнутой экономии (% с суммы). Мы даем не просто инструмент, мы даем результат!
Оптимизировать свою инфраструктуру
Реклама. ООО "СОФТЛАЙН ПЛАТФОРМЫ".
👎19👍8
Никогда специально не интересовался, как ускорить обычные дампы в PostgreSQL. Если позволяет размер баз, то я предпочитаю делать именно логические бэкапы, а не бинарные. С ними проще работать, если их функциональности достаточно - снимок базы в конкретный момент времени. Рассказывал отдельно, как делаю эти дампы и как их проверяю.
Встал вопрос, как относительно просто и быстро ускорить процесс снятия дампа. Не буду подробно всё описывать, так это любая ИИ может сделать. Скажу только суть, чтобы вы понимали, что так можно.
Утилита
Формат custom - это уже бинарный дамп. Он жмётся по умолчанию. При сопоставимых настройках сжатия по скорости он +- такой же, как palin. Это наиболее популярный формат для дампов, так как из него можно восстанавливаться в несколько потоков, что значительно быстрее формата plain. Тот в восстановлении очень медленный.
Формат directory я вообще никогда не использовал. На первый взгляд он выглядит не очень удобным для обработки и длительного хранения. Но у него есть важное отличие - процесс создания дампа может быть многопоточным. И это серьёзно ускоряет его, если у вас все данные не лежат в одной большой таблице, так как создание параллелится на уровне таблиц. Я у себя потестировал на сервере с 16 ядрами дампить в 10 потоков. Прирост скорости примерно в 2 раза при одинаковых настройках сжатия по сравнению с plain и custom. То есть на ровном месте ускорил снятие дампов в 2 раза.
Почитал документацию и увидел параметр
Оказалось, что этот параметр не поддерживается в версии 15, которая используется у меня. А по умолчанию на сайте открывается документация для версии current, которая сейчас 18-я. Я не обратил на это внимание. Переключился на 15-ю версию и действительно увидел, что такого параметра там нет. Так что если у вас версия утилиты поддерживает изменение алгоритмов сжатия, то можно попробовать другие. Они должны быть быстрее gzip. Надо будет обновить этот сервер по возможности.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#postgresql #backup
Встал вопрос, как относительно просто и быстро ускорить процесс снятия дампа. Не буду подробно всё описывать, так это любая ИИ может сделать. Скажу только суть, чтобы вы понимали, что так можно.
Утилита
pg_dump может делать дампы в трёх форматах - plain, custom, directory. Plain - обычный текст. Самый медленный формат, но самый удобный в плане дальнейшей работы с ним. Из него можно вытащить отдельную таблицу, проверить какое-то содержимое, обрезать и т.д. По умолчанию он вообще не сжимается. Сжатие можно добавить настройкой pg_dump или через пайп пропустить.Формат custom - это уже бинарный дамп. Он жмётся по умолчанию. При сопоставимых настройках сжатия по скорости он +- такой же, как palin. Это наиболее популярный формат для дампов, так как из него можно восстанавливаться в несколько потоков, что значительно быстрее формата plain. Тот в восстановлении очень медленный.
Формат directory я вообще никогда не использовал. На первый взгляд он выглядит не очень удобным для обработки и длительного хранения. Но у него есть важное отличие - процесс создания дампа может быть многопоточным. И это серьёзно ускоряет его, если у вас все данные не лежат в одной большой таблице, так как создание параллелится на уровне таблиц. Я у себя потестировал на сервере с 16 ядрами дампить в 10 потоков. Прирост скорости примерно в 2 раза при одинаковых настройках сжатия по сравнению с plain и custom. То есть на ровном месте ускорил снятие дампов в 2 раза.
# sudo -u postgres /opt/pgpro/1c-15/bin/pg_dump -U postgres -Fd -Z6 -j10 -f /tmp/zup-baza01 zup-baza01Почитал документацию и увидел параметр
--compress=method[:detail]. По умолчанию используется сжатие gzip с уровнем компрессии 6, этот параметр его может изменить. Мне не особо критично сильно сжимать. Хотел ещё ускорить процесс и заменить медленный gzip на lz4 или zstd. И так, и сяк указывал параметры - ничего не помогает. Пишет, что неверное значение параметра. Сразу у ИИ спрашивать не стал, думал, уж с такой простой задачей справлюсь сам. Но увы, не справился.Оказалось, что этот параметр не поддерживается в версии 15, которая используется у меня. А по умолчанию на сайте открывается документация для версии current, которая сейчас 18-я. Я не обратил на это внимание. Переключился на 15-ю версию и действительно увидел, что такого параметра там нет. Так что если у вас версия утилиты поддерживает изменение алгоритмов сжатия, то можно попробовать другие. Они должны быть быстрее gzip. Надо будет обновить этот сервер по возможности.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#postgresql #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
ServerAdmin.ru
Раз уж я рассмотрел панели для управления бэкапами (Postgresus и Pgbackweb) в виде дампов в Postgresql, было бы логично рассмотреть и вариант со своими велосипедами на bash. Поделюсь тем, что использую я.
Сначала полный текст скрипта для бэкапа:
#!/bin/bash…
Сначала полный текст скрипта для бэкапа:
#!/bin/bash…
👍70👎1