Нашёл на github простой скрипт, который делает одну вещь - следит за конкретным лог файлом или набором файлов на предмет появления там заданных строк. Как только их видит, отправляет уведомление в Telegram.
https://github.com/dobanov/mon_log_and_send_keywords_to_telegram
Я проверил версию на python. Работает очень просто. Копируем репу:
Устанавливаем необходимые пакеты:
Запускаем скрипт без параметров:
Он ругнётся, что не переданы параметры и нет файла конфигурации. Создаст пустой
В этом примере я указал две строки из файла auth.log, куда записывается вся информация об SSH сессиях. В данном случае в Telegram прилетят две строки:
То есть полная информация о подключении - IP адрес и пользователь.
Запускаем скрипт:
Открываем новую SSH сессию и наблюдаем уведомление в телеге. В данном случае обе строки не нужны, сделал так для примера.
Всё очень просто и быстро. Код скрипта можете сами посмотреть, он небольшой. В репе лежит простенький шаблон для создания systemd службы, чтобы запускать скрипт в фоне.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#script #logs
https://github.com/dobanov/mon_log_and_send_keywords_to_telegram
Я проверил версию на python. Работает очень просто. Копируем репу:
# git clone https://github.com/dobanov/mon_log_and_send_keywords_to_telegram
# cd mon_log_and_send_keywords_to_telegram
Устанавливаем необходимые пакеты:
# apt install python3-pip python3-watchdog
Запускаем скрипт без параметров:
# python3 tg_mon.py
Он ругнётся, что не переданы параметры и нет файла конфигурации. Создаст пустой
~/.config/tg_log.ini
. Заполняем его:filename=/var/log/auth.log
keyword=Accepted password,session opened
n=100
bot_id=5731668668:AAFxcwvp8XjvepZzDMIAN87l1D_MuiI1Ve9
chat_id=210856265
debug=true
В этом примере я указал две строки из файла auth.log, куда записывается вся информация об SSH сессиях. В данном случае в Telegram прилетят две строки:
2024-12-04T18:35:23.679324+03:00 debian12-vm sshd[4282]: Accepted password for root from 10.8.2.2 port 9669 ssh2
2024-12-04T18:35:23.680422+03:00 debian12-vm sshd[4282]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
То есть полная информация о подключении - IP адрес и пользователь.
Запускаем скрипт:
# python3 tg_mon.py
Открываем новую SSH сессию и наблюдаем уведомление в телеге. В данном случае обе строки не нужны, сделал так для примера.
Всё очень просто и быстро. Код скрипта можете сами посмотреть, он небольшой. В репе лежит простенький шаблон для создания systemd службы, чтобы запускать скрипт в фоне.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#script #logs
1👍238👎5
Прочитал интересную статью про Linux IOWait в блоге компании Percona. У автора оказались подозрительно русские имя и фамилия - Peter Zaitsev. Навёл справки. Оказалось, что это Пётр Зайцев - сооснователь компании Percona. Я и не знал, что эта компания основана русскими, хотя пользуюсь её бесплатными продуктами много лет.
⇨ Understanding Linux IOWait
Сделал короткую выжимку из статьи, чтобы передать суть. Информация показалась полезной и новой для меня. Вначале пример от автора, как можно жёстко нагрузить дисковую подсистему:
Используется утилита sysbench. Я, кстати, писал про неё. У неё есть встроенные тесты для СУБД. Приведённая выше команда жёстко нагрузит метрику cpu iowait. Проверить можно через vmstat, колонка wa.
Пробуем дальше нагружать систему нагрузкой на процессор, не прерывая прошлый тест:
Снова смотрим на vmstat и видим, что нагрузка IOWait куда-то пропала. Как так? Первый тест продолжает нагружать диски, но мы уже этого не видим в привычной метрике.
Смысл тут вот в чём. Когда мы долго ждём ответа от дисков, процессор простаивает. Растёт метрика cpu idle. Простой процессора из-за ожидания I/O засчитывается в метрику IOWait. Но как только мы нагружаем процессор другой работой, метрика idle падает, а за ней и IOWait. Это особенность подсчёта этих метрик.
Теперь вместо первого теста в 8 потоков, запустим только один на виртуалке с 4-мя ядрами:
Несмотря на то, что этот тест тоже полностью нагрузит дисковую подсистему, мы увидим IOWait в районе 20-25%. А на виртуальных машинах с большим числом ядер (32-64) цифра будет настолько незначительна, что мы можем вообще не заметить её. Но при этом дисковая подсистема будет полностью загружена.
Таким образом, высокая метрика IOWait показывает, что процессор ожидает операции I/O. Но при этом низкий показатель не гарантирует, что у вас не загружены диски. Надо уточнять.
Как же узнать, что у нас есть проблемы с нагрузкой по I/O? Можно посмотреть на столбец
В продукте Percona Monitoring and Management есть плагин, который в том числе показывает статистику по процессам. Там будут видны процессы, ожидающие I/O. Указанный мониторинг бесплатен, это open source.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #perfomance
⇨ Understanding Linux IOWait
Сделал короткую выжимку из статьи, чтобы передать суть. Информация показалась полезной и новой для меня. Вначале пример от автора, как можно жёстко нагрузить дисковую подсистему:
# sysbench --threads=8 --time=0 --max-requests=0 fileio --file-num=1 --file-total-size=10G --file-io-mode=sync --file-extra-flags=direct --file-test-mode=rndrd run
Используется утилита sysbench. Я, кстати, писал про неё. У неё есть встроенные тесты для СУБД. Приведённая выше команда жёстко нагрузит метрику cpu iowait. Проверить можно через vmstat, колонка wa.
Пробуем дальше нагружать систему нагрузкой на процессор, не прерывая прошлый тест:
# sysbench --threads=8 --time=0 cpu run
Снова смотрим на vmstat и видим, что нагрузка IOWait куда-то пропала. Как так? Первый тест продолжает нагружать диски, но мы уже этого не видим в привычной метрике.
Смысл тут вот в чём. Когда мы долго ждём ответа от дисков, процессор простаивает. Растёт метрика cpu idle. Простой процессора из-за ожидания I/O засчитывается в метрику IOWait. Но как только мы нагружаем процессор другой работой, метрика idle падает, а за ней и IOWait. Это особенность подсчёта этих метрик.
Теперь вместо первого теста в 8 потоков, запустим только один на виртуалке с 4-мя ядрами:
# sysbench --threads=1 --time=0 --max-requests=0 fileio --file-num=1 --file-total-size=10G --file-io-mode=sync --file-extra-flags=direct --file-test-mode=rndrd run
Несмотря на то, что этот тест тоже полностью нагрузит дисковую подсистему, мы увидим IOWait в районе 20-25%. А на виртуальных машинах с большим числом ядер (32-64) цифра будет настолько незначительна, что мы можем вообще не заметить её. Но при этом дисковая подсистема будет полностью загружена.
Таким образом, высокая метрика IOWait показывает, что процессор ожидает операции I/O. Но при этом низкий показатель не гарантирует, что у вас не загружены диски. Надо уточнять.
Как же узнать, что у нас есть проблемы с нагрузкой по I/O? Можно посмотреть на столбец
b
в vmstat
. Он показывает количество процессов, которые заблокированы в ожидании I/O для завершения. Соседний столбец r
покажет суммарное число запущенных процессов.В продукте Percona Monitoring and Management есть плагин, который в том числе показывает статистику по процессам. Там будут видны процессы, ожидающие I/O. Указанный мониторинг бесплатен, это open source.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #perfomance
Percona Database Performance Blog
Understanding Linux IOWait
Why looking at the “IOWait” portion of CPU usage to indicate whenever the system is I/O-bound is unreliable, and what better indicators you can use instead.
3👍152👎7
Моя недавняя история с ошибкой MySQL таблицы получила неожиданное продолжение. Оно меня настолько удивило, что решил написать об этом отдельно. Напомню, что там побилась одна таблица базы движка InnoDB. Я попытался её починить, но когда понял, что данные можно потерять, просто удалил и пересоздал её, так как не хотелось на работающем сервере эксперименты ставить.
Сама ситуация для меня разрешилась благополучно, но не считаю, что оптимально. В следующий раз данные могут быть нужны. Поэтому я решил её проработать и записать решение, которое не приведёт к потере данных. Для этого я пометил бэкап виртуалки за ту ночь, как неудаляемый. А через некоторое время нашёл место, где её можно спокойно развернуть и поработать с ней.
☝️ Бэкап, кстати, почти всю ночь восстанавливался. И это очень долго. Поэтому я всегда делаю отдельно бэкапы данных внутри виртуалок. Систему можно поднять быстро, залить основные данные, нужные для запуска сервиса, а остальное копировать по ходу дела. Это если архитектура сервиса и данных позволяет.
Виртуалку я восстановил, запустил, убедился, что она работает и выключил. Позже появилось время с ней поработать более внимательно. Настроил там сеть, подключился и стал смотреть. Каково же было моё удивление, когда этой ошибки я там не обнаружил. СУБД работает нормально,
Сначала подумал, что перепутал версии бэкапа. Но нет. Создание дампа логируется локально. Посмотрел лог бэкапа, там последняя операция завершилась с ошибкой именно на той таблице. В логе службы mariadb за то время тоже видны ошибки с таблицей. Смотрю прямо на сервере:
После последней ошибки сервер пару раз перезагружался и вуаля, таблица починилась сама. Хотя никаких встроенных процедур по исправлению ошибок для InnoDB в MariaDB не предусмотрено. И по логам не видно, чтобы что-то делалось.
На основном сервере саму виртуалку я не перезагружал, но службу mariadb перезапускал. Мне тогда это не помогло.
Расстроился из-за этой ситуации, так как потратил кучу времени и всё без толку. Никаких рабочих рецептов не придумал. В следующий раз придётся опять разбираться, когда с этим столкнусь.
Как сказал один читатель к заметке про проблемы с СУБД. В базе иногда происходит какая-то неведомая хрень. Сразу понятен уровень специалиста. Знает, о чём говорит. Теперь я тоже знаю.
#mysql
Сама ситуация для меня разрешилась благополучно, но не считаю, что оптимально. В следующий раз данные могут быть нужны. Поэтому я решил её проработать и записать решение, которое не приведёт к потере данных. Для этого я пометил бэкап виртуалки за ту ночь, как неудаляемый. А через некоторое время нашёл место, где её можно спокойно развернуть и поработать с ней.
☝️ Бэкап, кстати, почти всю ночь восстанавливался. И это очень долго. Поэтому я всегда делаю отдельно бэкапы данных внутри виртуалок. Систему можно поднять быстро, залить основные данные, нужные для запуска сервиса, а остальное копировать по ходу дела. Это если архитектура сервиса и данных позволяет.
Виртуалку я восстановил, запустил, убедился, что она работает и выключил. Позже появилось время с ней поработать более внимательно. Настроил там сеть, подключился и стал смотреть. Каково же было моё удивление, когда этой ошибки я там не обнаружил. СУБД работает нормально,
CHECK TABLE
отрабатывает нормально, дамп делается. Сначала подумал, что перепутал версии бэкапа. Но нет. Создание дампа логируется локально. Посмотрел лог бэкапа, там последняя операция завершилась с ошибкой именно на той таблице. В логе службы mariadb за то время тоже видны ошибки с таблицей. Смотрю прямо на сервере:
2024-11-23T20:22:17.678755+03:00 mariadbd[738]: 2024-11-23 20:22:17 7451105 [Note] InnoDB: You can use CHECK TABLE to scan your table for
corruption. Please refer to https://mariadb.com/kb/en/library/innodb-recovery-modes/ for information about forcing recovery.
2024-11-23T20:22:17.678779+03:00 mariadbd[738]: 2024-11-23 20:22:17 7451105 [ERROR] InnoDB: We detected index corruption in an InnoDB type table. You have to dump + drop + reimport the table or, in a case of widespread corruption, dump all InnoDB tables and recreate the whole tablespace. If the mariadbd server crashes after the startup or when you dump the tables. Please refer to https://mariadb.com/kb/en/library/innodb-recovery-modes/ for information about forcing recovery.
2024-11-23T20:22:17.678805+03:00 mariadbd[738]: 2024-11-23 20:22:17 7451105 [ERROR] Got error 126 when reading table 'b_stat_session_data'
2024-11-23T20:22:17.678833+03:00 mariadbd[738]: 2024-11-23 20:22:17 7451105 [ERROR] mariadbd: Index for table 'b_stat_session_data' is corrupt; try to repair it
После последней ошибки сервер пару раз перезагружался и вуаля, таблица починилась сама. Хотя никаких встроенных процедур по исправлению ошибок для InnoDB в MariaDB не предусмотрено. И по логам не видно, чтобы что-то делалось.
На основном сервере саму виртуалку я не перезагружал, но службу mariadb перезапускал. Мне тогда это не помогло.
Расстроился из-за этой ситуации, так как потратил кучу времени и всё без толку. Никаких рабочих рецептов не придумал. В следующий раз придётся опять разбираться, когда с этим столкнусь.
Как сказал один читатель к заметке про проблемы с СУБД. В базе иногда происходит какая-то неведомая хрень. Сразу понятен уровень специалиста. Знает, о чём говорит. Теперь я тоже знаю.
#mysql
Telegram
ServerAdmin.ru
Недавно была заметка про знание СУБД. Видел комментарии, мол пусть DBA разбираются в нюансах СУБД, а админам это ни к чему. Расскажу про один случай, который со мной на днях случился. Сразу скажу, что это не будет рекомендацией к действиям, так как сам я…
👍134👎4
Когда-то давно у меня на канале была публикация про серию юмористических миниатюр на тему системного администратора и поддержки пользователей: Nick Burns, Your Company's Computer Guy (Ник Бернс, Компьютерщик из вашей компании). С тех пор прошло более 4-х лет, так что большая часть тех, кто читает канал сейчас, скорее всего её не видели.
Ни разу нигде не видел упоминания, перевода или хотя бы субтитров к этим миниатюрам. Лично мне эта серия кажется наиболее смешной и качественной на тему технической поддержки пользователей, хоть и снята была очень давно. Там и актёрский состав звездный. Из тех, что известны у нас - Джеки Чан и Дженнифер Энистон.
Бернс - системный администратор в компании, представлен в виде странного парня, обвешанного пейджерами и сотовыми телефонами. Он терпеть не может своих пользователей, которым ему приходится помогать, поэтому он обычно насмехается над ними и ругает. Пользователи показаны немного туповатыми, неспособными сделать простые вещи, типа прикрепить вложение в письмо, сделать скриншот экрана и т.д.
Было снято 5 серий, на ютубе почему-то только четыре. Вот они:
▶️ https://www.youtube.com/watch?v=25J3u3P-HHg
▶️ https://www.youtube.com/watch?v=AAEhk5t8rT0
▶️ https://www.youtube.com/watch?v=sqXm6h8A_UE
▶️ https://www.youtube.com/watch?v=jdL75nUBhN4
5-ю версию я с трудом нашел в интернете низкого качества и скачал, перезалил на свой яндекс.диск:
▶️ https://yadi.sk/i/pEPMYHzM72MXIg
Если кому-то нужна транскрипция на английском, можно найти на этом сайте - https://snltranscripts.jt.org/?s=Nick+Burns
Английский там простой, лично я на слух нормально воспринимаю. Можно посмотреть с переводом от Яндекс.Браузера, но получается уже не то. Смысл понятен, но как-то не смешно. Если будете смотреть с переводом, то ставьте громкость оригинальной дорожки на 80-90%.
Мне любопытно, кому-нибудь ещё это кажется смешным и интересным?
#юмор
Ни разу нигде не видел упоминания, перевода или хотя бы субтитров к этим миниатюрам. Лично мне эта серия кажется наиболее смешной и качественной на тему технической поддержки пользователей, хоть и снята была очень давно. Там и актёрский состав звездный. Из тех, что известны у нас - Джеки Чан и Дженнифер Энистон.
Бернс - системный администратор в компании, представлен в виде странного парня, обвешанного пейджерами и сотовыми телефонами. Он терпеть не может своих пользователей, которым ему приходится помогать, поэтому он обычно насмехается над ними и ругает. Пользователи показаны немного туповатыми, неспособными сделать простые вещи, типа прикрепить вложение в письмо, сделать скриншот экрана и т.д.
Было снято 5 серий, на ютубе почему-то только четыре. Вот они:
5-ю версию я с трудом нашел в интернете низкого качества и скачал, перезалил на свой яндекс.диск:
Если кому-то нужна транскрипция на английском, можно найти на этом сайте - https://snltranscripts.jt.org/?s=Nick+Burns
Английский там простой, лично я на слух нормально воспринимаю. Можно посмотреть с переводом от Яндекс.Браузера, но получается уже не то. Смысл понятен, но как-то не смешно. Если будете смотреть с переводом, то ставьте громкость оригинальной дорожки на 80-90%.
Мне любопытно, кому-нибудь ещё это кажется смешным и интересным?
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Nick Burns, Your Company's Computer Guy: New Tech Guy - Saturday Night Live
Subscribe to SaturdayNightLive: https://j.mp/1bjU39d
Nick Burns: https://j.mp/18pdh6n
SEASON 25: https://j.mp/1cQpoQE
Office Sketches: https://j.mp/17px9Lx
Nick Burns trains his new technical support guy to fix and make fun of simple computer problems. Aired…
Nick Burns: https://j.mp/18pdh6n
SEASON 25: https://j.mp/1cQpoQE
Office Sketches: https://j.mp/17px9Lx
Nick Burns trains his new technical support guy to fix and make fun of simple computer problems. Aired…
👍42👎9
В нескольких последних публикациях про СУБД регулярно появлялись комментарии что тут, что в ВК, что админу нафиг не сдались эти базы данных. Пусть в них DBA разбираются, а не мы. Я не разделяю такую точку зрения. Основные мои доводы следующие. Не претендую на истину, а делюсь своим мнением.
1️⃣ Широкий профиль специалиста делает его универсальным и более востребованным с точки зрения применения своих навыков. Проще говоря, сменить или найти работу легче. Получается более устойчивое положение.
2️⃣ Найти своё призвание, то, чем нравится и хочется заниматься - непростая задача. Для кого-то очень сложная, если не повезёт быстро разобраться в себе в юности. И в то же время эта одна из главных задач в жизни. Не найдя себя, всю жизнь можно прожить несчастным и нереализованным. Нужно пробовать себя в разных направлениях, изучать разные науки и сферы деятельности, чтобы понять, что тебе ближе. Чем больше растёшь вширь, тем быстрее это поймёшь. Исключение - если ты уже чётко знаешь, чего хочешь.
3️⃣ Работа в разных направлениях банально более разнообразна. Меньше устаёшь от рутины и однотипных действий. Легко спасаться от выгорания. Я помню на собеседовании парня из банка, который 3 года только тем и занимался, что обслуживал почтовый кластер. Больше в его ответственности ничего не было. Знания очень узкие. Мне нужен был системный администратор. Этот человек хоть формально и был им, но я его не взял, потому что он кроме почтовых серверов ничего не знал. Банк тогда просто закрылся. Думаю, ему было непросто найти работу на такие же деньги, но не на поддержку почтового сервера. Собственно, он и не мог её найти, поэтому пошёл на понижение в зарплате.
☝️Тему эту я начал не просто так, а как подводку к основному материалу, которым хотел поделиться. У небезызвестного Созыкина Андрея есть качественный бесплатный курс по основам SQL:
🎓 Основы SQL
Он состоит из видеолекций на ютубе, к которым прилагаются презентации. Плюс задачи и их решение тоже в формате видео. Курс небольшой, буквально по базе, которая пригодится для админа 👨💻 или девопса 🤹🏻♂️. Можно пройти за выходные. День на лекции, день на практики. Можно на новогодние отложить и заняться, когда надоест есть оливье. В качестве СУБД в курсе подразумевается PostgreSQL. Очень востребованная на текущий день система управления базами данных.
#обучение #sql
☝️Тему эту я начал не просто так, а как подводку к основному материалу, которым хотел поделиться. У небезызвестного Созыкина Андрея есть качественный бесплатный курс по основам SQL:
🎓 Основы SQL
Он состоит из видеолекций на ютубе, к которым прилагаются презентации. Плюс задачи и их решение тоже в формате видео. Курс небольшой, буквально по базе, которая пригодится для админа 👨💻 или девопса 🤹🏻♂️. Можно пройти за выходные. День на лекции, день на практики. Можно на новогодние отложить и заняться, когда надоест есть оливье. В качестве СУБД в курсе подразумевается PostgreSQL. Очень востребованная на текущий день система управления базами данных.
#обучение #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
asozykin.ru
Основы SQL
Курс по языку SQL начального уровня
👍159👎5
Ко мне недавно обратился заказчик, которому я почти 3 года назад настроил небольшую инфраструктуру для работы с файловыми базами 1С. Надо было кое-что изменить. Что самое удивительное, всё это время её никто не обслуживал от слова совсем. Только базы добавляли. Я подключился по SSH к серверам и увидел, что с начала 22-го года туда никто не подключался, кроме меня. Всё это время с базами работали через интернет без VPN. Кратко расскажу, что я там настроил с упором на безопасную работу без VPN.
Был арендован бюджетный выделенный сервер, на нём установлен Proxmox на raid1 mdadm. На нём настроены 3 виртуальные машины:
◽️Windows Server, где будет работать 1С
◽️Debian для Nginx и Apache Guacamole
◽️Debian для локальных бэкапов
На Proxmox настроен файрвол. Входящий доступ закрыт на всё. Исключение - ssh и web доступ к гипервизору по белым спискам IP. Сделано как резерв, основное подключение организовано по-другому. Настроены пробросы 80 и 443 портов в виртуалку с Nginx. На ней обязательно включен автозапуск.
На сервере с Nginx настроено проксирование запросов на Windows Server с 1С. Доступ к базам через доменное имя, слеш, имя базы. Доступ закрыт паролем через basic_auth. На этой же виртуалке поднят Apache Guacamole, а через него настроен доступ ко всем виртуалкам по SSH или RDP через браузер. Guacamole не стал закрывать через basic_auth, смотрит напрямую в инет. Можно было закрыть для большей безопасности.
На Windows сервере устанавливается как обычно платформа 1С и веб сервер Apache. Делается публикация баз. Всё стандартно. Пользователи этой системы работают только с ним. Точнее администратор 1С. Пользователи только через браузер работают с 1С. Порты RDP не пробрасываются. Сервер напрямую из интернета недоступен.
На третьем сервере настраивается Samba, создаётся сетевой диск с доступом только на чтение. Этот диск подключается к Windows машине. В этот сетевой диск ежедневно делаются бэкапы файловых баз, старые удаляются. Работает скрипт на самом сервере с бэкапами. Монтирует папку с Windows сервера и забирает файлы к себе, а отдаёт их уже только в режиме чтения. Это сделано, чтобы был оперативный доступ к бэкапам с Windows машины, но при этом их нельзя было удалить с неё. С самого бэкап сервера базы копируются куда-то во вне.
В такой конфигурации обслуживался только сервер с Windows. Его наличие - пожелание заказчика. Файловые базы могут и без него работать. Все остальные виртуалки даже не обновлялись. С учётом того, что кроме веб интерфейса Guacamole ничего не смотрит в интернет, проблем с этим не было.
Понятно, что тут есть что критиковать, заменять компоненты и т.д. Я прикинул, как можно было сделать по возможности просто и функционально и сделал. Эта инфраструктура реально проработала без обслуживания. Ничего не висло, не ломалось, не взламывалось. И работать было удобно. То есть поставленные задачи выполнялись.
#1С
Был арендован бюджетный выделенный сервер, на нём установлен Proxmox на raid1 mdadm. На нём настроены 3 виртуальные машины:
◽️Windows Server, где будет работать 1С
◽️Debian для Nginx и Apache Guacamole
◽️Debian для локальных бэкапов
На Proxmox настроен файрвол. Входящий доступ закрыт на всё. Исключение - ssh и web доступ к гипервизору по белым спискам IP. Сделано как резерв, основное подключение организовано по-другому. Настроены пробросы 80 и 443 портов в виртуалку с Nginx. На ней обязательно включен автозапуск.
На сервере с Nginx настроено проксирование запросов на Windows Server с 1С. Доступ к базам через доменное имя, слеш, имя базы. Доступ закрыт паролем через basic_auth. На этой же виртуалке поднят Apache Guacamole, а через него настроен доступ ко всем виртуалкам по SSH или RDP через браузер. Guacamole не стал закрывать через basic_auth, смотрит напрямую в инет. Можно было закрыть для большей безопасности.
На Windows сервере устанавливается как обычно платформа 1С и веб сервер Apache. Делается публикация баз. Всё стандартно. Пользователи этой системы работают только с ним. Точнее администратор 1С. Пользователи только через браузер работают с 1С. Порты RDP не пробрасываются. Сервер напрямую из интернета недоступен.
На третьем сервере настраивается Samba, создаётся сетевой диск с доступом только на чтение. Этот диск подключается к Windows машине. В этот сетевой диск ежедневно делаются бэкапы файловых баз, старые удаляются. Работает скрипт на самом сервере с бэкапами. Монтирует папку с Windows сервера и забирает файлы к себе, а отдаёт их уже только в режиме чтения. Это сделано, чтобы был оперативный доступ к бэкапам с Windows машины, но при этом их нельзя было удалить с неё. С самого бэкап сервера базы копируются куда-то во вне.
В такой конфигурации обслуживался только сервер с Windows. Его наличие - пожелание заказчика. Файловые базы могут и без него работать. Все остальные виртуалки даже не обновлялись. С учётом того, что кроме веб интерфейса Guacamole ничего не смотрит в интернет, проблем с этим не было.
Понятно, что тут есть что критиковать, заменять компоненты и т.д. Я прикинул, как можно было сделать по возможности просто и функционально и сделал. Эта инфраструктура реально проработала без обслуживания. Ничего не висло, не ломалось, не взламывалось. И работать было удобно. То есть поставленные задачи выполнялись.
#1С
5👍268👎3
В моих заметках про self-hosted сервера GIT постоянно возникали упоминания Gogs. Это тоже легковесный open source сервис GIT от китайских разработчиков. Причём упоминаемая несколько раз ранее Gitea является форком Gogs, который случился довольно давно. С тех пор Gitea развивается намного активнее, обросла дополнительной функциональностью, была приобретена коммерческой компанией и получила какие-то проблемы с лицензией, так что и её уже форкнули в новый проект Forgejo.
Если вам нужно простое хранилище кода с различной функциональностью только вокруг него, то Gogs будет оптимальным выбором с точки зрения потребления ресурсов. Там нет ни своего registry, ни инструментов для CI/CD, ни учёта времени, ни многих других возможностей, которые есть в той же Gitea.
При этом базовые возможности для совместной работы с кодом там будут:
- привычные профили пользователей, дашборды с активностью и т.д.;
- доступ к репам по ssh и https;
- веб редактор для работы с кодом и записями в wiki;
- аутентификация по паролям, через LDAP или SMTP (!) сервер
- управление пользователями, организациями, репозиториями.
В общем, тут только GIT и ничего больше. В качестве хранилища состояния могут использоваться PostgreSQL, MySQL, SQLite3 и TiDB. При использовании SQLite3 для запуска службы не нужно ничего, кроме самого бинарника gogs и установленного в системе git:
Запускается gogs в режиме веб сервера. Можно идти на 3000-й порт по IP адресу и выполнять настройку. Как я уже сказал, если выбрать в качестве СУБД SQLite3, то установка будет выполнена тут же, а база будет создана в файле data/gogs.db.
Веб интерфейс работает очень быстро и легко. Системные требования минимальны. Запускается на VPS с 512 МБ оперативной памяти. Есть русский язык. По умолчанию выбирается язык браузера. Чтобы его поменять, надо выйти к окну логина и там снизу выбрать. Я сначала долго искал, никак не мог понять, как изменить язык.
Доступа к сайту gogs.io без VPN нет. Как я понял, это блокировка со стороны РФ для хостера DigitalOcean. Сайт живёт на нём.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#git
Если вам нужно простое хранилище кода с различной функциональностью только вокруг него, то Gogs будет оптимальным выбором с точки зрения потребления ресурсов. Там нет ни своего registry, ни инструментов для CI/CD, ни учёта времени, ни многих других возможностей, которые есть в той же Gitea.
При этом базовые возможности для совместной работы с кодом там будут:
- привычные профили пользователей, дашборды с активностью и т.д.;
- доступ к репам по ssh и https;
- веб редактор для работы с кодом и записями в wiki;
- аутентификация по паролям, через LDAP или SMTP (!) сервер
- управление пользователями, организациями, репозиториями.
В общем, тут только GIT и ничего больше. В качестве хранилища состояния могут использоваться PostgreSQL, MySQL, SQLite3 и TiDB. При использовании SQLite3 для запуска службы не нужно ничего, кроме самого бинарника gogs и установленного в системе git:
# apt update && apt install git -y
# wget https://dl.gogs.io/0.13.0/gogs_0.13.0_linux_amd64.tar.gz
# tar xzvf gogs_0.13.0_linux_amd64.tar.gz
# cd gogs
# ./gogs web
Запускается gogs в режиме веб сервера. Можно идти на 3000-й порт по IP адресу и выполнять настройку. Как я уже сказал, если выбрать в качестве СУБД SQLite3, то установка будет выполнена тут же, а база будет создана в файле data/gogs.db.
Веб интерфейс работает очень быстро и легко. Системные требования минимальны. Запускается на VPS с 512 МБ оперативной памяти. Есть русский язык. По умолчанию выбирается язык браузера. Чтобы его поменять, надо выйти к окну логина и там снизу выбрать. Я сначала долго искал, никак не мог понять, как изменить язык.
Доступа к сайту gogs.io без VPN нет. Как я понял, это блокировка со стороны РФ для хостера DigitalOcean. Сайт живёт на нём.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#git
👍91👎8
Я анонсировал ранее подборку сайтов IT блогеров со статьями на различные темы, связанные с настройкой и эксплуатацией IT систем. Собралось небольшое сообщество авторов. Полный список сайтов будет в конце. А пока анонс новых статей тех авторов, кто согласился участвовать и прислал свои материалы.
❗️Напомню, что основной смысл моей инициативы - поддержать донатами тех авторов, кого вы посчитаете нужным и у кого будут возможности для этого на сайте.
⇨ Безопасная передача файлов с помощью Magic Wormhole
Использование специальной библиотеки для прямой шифрованной передачи файлов между распределенными клиентами. У библиотеки есть как консольная утилита, которую можно использовать вручную, либо в скриптах, так и GUI приложение.
⇨ Запускаем ИИ чат-бот локально. LM Studio
⇨ Запускаем ИИ чат-бот локально. LobeChat
Обзорная информация по запуску языковых моделей на своих серверах.
⇨ Tmux – установка и кастомизация + Nord theme
Подробная статья про установку, настройку и использование популярного терминального мультиплексора tmux.
⇨ Установка Graylog 6.1 на Debian 12
Краткая инструкция по установке и базовой настройке сервера сбора и анализа логов. Это чуть более простой в настройке аналог популярного ELK Stack. Про непосредственно сбор логов будут отдельные статьи.
⇨ Обновления безопасности Exchange Server за ноябрь 2024 г.
Обзор свежих обновлений безопасности почтового сервера Exchange.
⇨ ИТ переезд компании в новый офис
Основные этапы и рекомендации по успешному проведению переезда. К краткой текстовой выжимки прилагается более чем 2-х часовой видеоматериал.
⇨ Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера Apache и базы данных MySQL
Подробная инструкция по установке перечисленной связки сервисов для запуска Zabbix Server.
⇨ Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера NGINX, БД PostgreSQL, и расширением TimescaleDB
Другой стек для запуска Zabbix Server.
⇨ Отслеживание утечек секретов при разработке программных решений
Описание двух инструментов для поиска секретов в исходном коде приложений: Gitleaks и gitGrabber.
⇨ Критическая уязвимость в Zabbix: что известно и как защититься
Описание недавней CVE-2024-42327 в Zabbix Server.
Если кто-то хочет присоединиться к этой подборке, то пишите мне в личные сообщения. Пока список выглядит так:
▪️https://r4ven.me/
▪️https://wiki-it.ru/
▪️https://www.gurin.ru/
▪️https://sysadminhub.ru/
▪️https://it-skills.online/
▪️https://devopslife.ru/
▪️https://bite-byte.ru/
▪️https://sysadminium.ru/
▪️https://desoft.ru/
▪️https://www.pc360.ru/
▪️https://bafista.ru/
▪️https://it-experience.ru/
▪️https://blogadminday.ru/
▪️https://marukhin.ru/
#статьи
❗️Напомню, что основной смысл моей инициативы - поддержать донатами тех авторов, кого вы посчитаете нужным и у кого будут возможности для этого на сайте.
⇨ Безопасная передача файлов с помощью Magic Wormhole
Использование специальной библиотеки для прямой шифрованной передачи файлов между распределенными клиентами. У библиотеки есть как консольная утилита, которую можно использовать вручную, либо в скриптах, так и GUI приложение.
⇨ Запускаем ИИ чат-бот локально. LM Studio
⇨ Запускаем ИИ чат-бот локально. LobeChat
Обзорная информация по запуску языковых моделей на своих серверах.
⇨ Tmux – установка и кастомизация + Nord theme
Подробная статья про установку, настройку и использование популярного терминального мультиплексора tmux.
⇨ Установка Graylog 6.1 на Debian 12
Краткая инструкция по установке и базовой настройке сервера сбора и анализа логов. Это чуть более простой в настройке аналог популярного ELK Stack. Про непосредственно сбор логов будут отдельные статьи.
⇨ Обновления безопасности Exchange Server за ноябрь 2024 г.
Обзор свежих обновлений безопасности почтового сервера Exchange.
⇨ ИТ переезд компании в новый офис
Основные этапы и рекомендации по успешному проведению переезда. К краткой текстовой выжимки прилагается более чем 2-х часовой видеоматериал.
⇨ Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера Apache и базы данных MySQL
Подробная инструкция по установке перечисленной связки сервисов для запуска Zabbix Server.
⇨ Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера NGINX, БД PostgreSQL, и расширением TimescaleDB
Другой стек для запуска Zabbix Server.
⇨ Отслеживание утечек секретов при разработке программных решений
Описание двух инструментов для поиска секретов в исходном коде приложений: Gitleaks и gitGrabber.
⇨ Критическая уязвимость в Zabbix: что известно и как защититься
Описание недавней CVE-2024-42327 в Zabbix Server.
Если кто-то хочет присоединиться к этой подборке, то пишите мне в личные сообщения. Пока список выглядит так:
▪️https://r4ven.me/
▪️https://wiki-it.ru/
▪️https://www.gurin.ru/
▪️https://sysadminhub.ru/
▪️https://it-skills.online/
▪️https://devopslife.ru/
▪️https://bite-byte.ru/
▪️https://sysadminium.ru/
▪️https://desoft.ru/
▪️https://www.pc360.ru/
▪️https://bafista.ru/
▪️https://it-experience.ru/
▪️https://blogadminday.ru/
▪️https://marukhin.ru/
#статьи
DeSoft.ru
Безопасная передача файлов с помощью Magic Wormhole
Для передачи файлов между распределенными устройствами и пользователями в повседневной работе как правило используются различные сервисы и инструменты, например, мессенджеры или электронная почта для мелких файлов, облачные хранилища и файлообменники для…
2👍108👎1
У Zabbix Server сегодня был релиз версии 7.2 Напомню, что это промежуточный, не LTS релиз. Данная версия будет поддерживаться 6 месяцев полной поддержкой, и 6 ограниченной, с выпуском только обновлений безопасности. Промежуточные релизы служат в основном для теста и отладки обновлений для LTS веток. Так что не спешите обновляться на эти версии, если у вас нет необходимости во что бы то ни стало получить новую функциональность. Я рабочие сервера обновляю только на LTS версии, а промежуточные ставлю на свой личный тестовый, да и то не всегда.
Полная информация на официальном сайте с картинками и на английском языке:
⇨ What’s new in Zabbix 7.2
Перечислю основные моменты со своими комментариями.
🔹Обновления визуализации и появление новых виджетов. Это основа обновлений данного релиза. Появился виджет Top items, который заменил собой устаревший Data overview (Обзор данных). Последний я активно использую. Например, на отдельные дашборды вывожу список айтемов с информацией о времени жизни сертификатов, доменов, статусы пиров asterisk или клиентов openvpn, уровень тонера в картриджах. Это универсальный виджет, который удобен для вывода точных значений айтемов. Попробуем новый виджет. Выглядит он поинтереснее старого.
Появилась новая диаграмма Sparkline chart, которую можно использовать в виджетах Top hosts, Top items, Item value. Смотрится неплохо.
Добавлен новый виджет Host card с подборкой информации о хосте. Особо не вижу применения для данного виджета, кроме быстрого доступа к Latest data. Лично я там провожу много времени в мониторингах.
🔹Добавлены новый шаблон для Nvidia GPU. Теперь можно мониторить видеокарты в связке с Zabbix Agent 2. Полезная штука для тех, кто использует видеокарты. Их как-то обычно стороной обходят.
Обновились шаблоны для мониторинга сертификатов и LAMP Stack. Я внимательно посмотрел ссылки на шаблоны, прочитал полностью Release Notes, но не смог найти подробностей обновлений. Надо пробовать. Для сертификатов описание такое же, как и было, а что имеется ввиду под шаблон для LAMP Stack я вообще не понял. Ссылки ведут на шаблон Zabbix Agent for Linux. Если у кого-то есть информация на этот счёт, пожалуйста, поделитесь.
Также масштабно обновился шаблон для VMware.
🔹Если я правильно понял описание, то доработали тип айтема на базе SSH агента, чтобы он мог подключаться туда, где разрешены только протоколы SFTP и NETCONF, а не полноценный SSH.
🔹Параметры компонентов Zabbix в файле конфигурации можно указывать в виде переменных. Сделано для упрощения использования в динамических средах. Не придётся свои костыли городить для подстановки значений из переменных в конфиг. Теперь их там можно сразу в виде переменных указывать.
🔹Добавлена поддержка PostgreSQL 17. Убрана поддержка Oracle DB. Судя по всему никто не использует эту СУБД для мониторинга.
Завтра будет 2 вебинара на английском утром и вечером по обновлениям этого релиза. Постараюсь посмотреть, если не отвлечёт ничего. Интересно посмотреть вживую на новые виджеты.
Кстати, последние обновления внешнего вида в Zabbix Server мне лично нравятся. Речь идёт об изменениях в 7.0 и далее. Я раньше критиковал Zabbix за его невыразительные визуализации. Но сейчас стало значительно лучше. Мне строгий светлый дизайн дашбордов Zabbix Server нравится больше, чем контрастный тёмный в Grafana. Он какой-т более мультяшный что ли. Чисто субъективное восприятие.
#zabbix
Полная информация на официальном сайте с картинками и на английском языке:
⇨ What’s new in Zabbix 7.2
Перечислю основные моменты со своими комментариями.
🔹Обновления визуализации и появление новых виджетов. Это основа обновлений данного релиза. Появился виджет Top items, который заменил собой устаревший Data overview (Обзор данных). Последний я активно использую. Например, на отдельные дашборды вывожу список айтемов с информацией о времени жизни сертификатов, доменов, статусы пиров asterisk или клиентов openvpn, уровень тонера в картриджах. Это универсальный виджет, который удобен для вывода точных значений айтемов. Попробуем новый виджет. Выглядит он поинтереснее старого.
Появилась новая диаграмма Sparkline chart, которую можно использовать в виджетах Top hosts, Top items, Item value. Смотрится неплохо.
Добавлен новый виджет Host card с подборкой информации о хосте. Особо не вижу применения для данного виджета, кроме быстрого доступа к Latest data. Лично я там провожу много времени в мониторингах.
🔹Добавлены новый шаблон для Nvidia GPU. Теперь можно мониторить видеокарты в связке с Zabbix Agent 2. Полезная штука для тех, кто использует видеокарты. Их как-то обычно стороной обходят.
Обновились шаблоны для мониторинга сертификатов и LAMP Stack. Я внимательно посмотрел ссылки на шаблоны, прочитал полностью Release Notes, но не смог найти подробностей обновлений. Надо пробовать. Для сертификатов описание такое же, как и было, а что имеется ввиду под шаблон для LAMP Stack я вообще не понял. Ссылки ведут на шаблон Zabbix Agent for Linux. Если у кого-то есть информация на этот счёт, пожалуйста, поделитесь.
Также масштабно обновился шаблон для VMware.
🔹Если я правильно понял описание, то доработали тип айтема на базе SSH агента, чтобы он мог подключаться туда, где разрешены только протоколы SFTP и NETCONF, а не полноценный SSH.
🔹Параметры компонентов Zabbix в файле конфигурации можно указывать в виде переменных. Сделано для упрощения использования в динамических средах. Не придётся свои костыли городить для подстановки значений из переменных в конфиг. Теперь их там можно сразу в виде переменных указывать.
🔹Добавлена поддержка PostgreSQL 17. Убрана поддержка Oracle DB. Судя по всему никто не использует эту СУБД для мониторинга.
Завтра будет 2 вебинара на английском утром и вечером по обновлениям этого релиза. Постараюсь посмотреть, если не отвлечёт ничего. Интересно посмотреть вживую на новые виджеты.
Кстати, последние обновления внешнего вида в Zabbix Server мне лично нравятся. Речь идёт об изменениях в 7.0 и далее. Я раньше критиковал Zabbix за его невыразительные визуализации. Но сейчас стало значительно лучше. Мне строгий светлый дизайн дашбордов Zabbix Server нравится больше, чем контрастный тёмный в Grafana. Он какой-т более мультяшный что ли. Чисто субъективное восприятие.
#zabbix
👍86👎2
Часто получал запросы на тему управления занятостью конференц-залов или переговорных комнат в офисах. Люди ищут и просят настроить какие-то программные продукты для этих целей. Мне знаком только один простой и удобный способ управления такими сущностями - на базе почтового сервера Exchange и его клиента Microsoft Outlook. Там всё сделано красиво и удобно. И сразу у всех в клиенте с интеграцией почты и задач. Это реально удобно и функционально.
Ничего другого, похожего на эти возможности я не знал и не видел, пока случайно не посмотрел видео одного англоязычного блогера, где он рассказал про open source проект cal.com, который как раз решает такую же задачу. С его помощью можно настроить публичные или закрытые календари, где можно будет выбрать дату и забронировать какой-то промежуток времени.
Всё это полностью бесплатно с возможностью развернуть на своём сервере. Для переговорок прям идеальное решение. Создаёте отдельный календарь. Делите на нём рабочий день на интервалы по 30 или 60 минут. Каждый желающий может зайти в календарь, выбрать свободный интервал и забронировать его. Всё это сопровождается дополнительной функциональной обвязкой: различные лимиты, обязательные промежутки между бронированиями, уведомления, вебхуки, подтверждения и т.д.
Продукт работает на Node.js, в качестве СУБД использует PostgreSQL. Можно установить вручную, можно взять готовый docker compose. Он подготовлен в отдельном репозитории:
Не забудьте в
▶️ Cal.com - an open source, self hosted tool for scheduling mutual best times for meetings!
Календарь очень приглянулся. Удобный и функциональный. Есть русский язык и 24-х часовой формат времени. Проект, как обычно с платной облачной версией. Но при этом open source версия полнофункциональная, то есть без ограничений, но, понятное дело, некоторых возможностей из облачной версии в ней нет.
Я немного побродил по их сайту и заметил очень интересный раздел. Первый раз такое вижу у коммерческой компании. Там перечислены все сотрудники, когда были приняты на работу, какая у них зарплата, сколько у них продаж в месяц, куда и как продаётся продукт, какие доходы, сколько активных пользователей и т.д. То есть открыта вся коммерческая информация. Первый раз такое вижу.
Когда-то давно, когда я задумывался о том, не организовать ли мне свою компанию, у меня были мысли как раз по такой открытости. Думал тогда, что наверное это наивно, быть открытым хотя бы для своих сотрудников внутри компании, чтобы каждый знал, сколько компания зарабатывает и какие у кого зарплаты. Мне казалось очень мотивирующим пропорциональное распределение доходов между всеми сотрудниками. В реальности я нигде такого не видел и думал, что эти мысли утопичны. Общение с собственниками компаний это подтверждали. Их опыт показывал, что это так просто не работает и вместо мотивации можно получить лишние проблемы. А у кого-то, оказывается, это получается. Это лишний раз подтверждает, что если у тебя есть какие-то идеи, надо поменьше рассуждать и побольше действовать. Чем больше раздумий и сомнений, тем меньше шансов сделать что-то новое.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#управление
Ничего другого, похожего на эти возможности я не знал и не видел, пока случайно не посмотрел видео одного англоязычного блогера, где он рассказал про open source проект cal.com, который как раз решает такую же задачу. С его помощью можно настроить публичные или закрытые календари, где можно будет выбрать дату и забронировать какой-то промежуток времени.
Всё это полностью бесплатно с возможностью развернуть на своём сервере. Для переговорок прям идеальное решение. Создаёте отдельный календарь. Делите на нём рабочий день на интервалы по 30 или 60 минут. Каждый желающий может зайти в календарь, выбрать свободный интервал и забронировать его. Всё это сопровождается дополнительной функциональной обвязкой: различные лимиты, обязательные промежутки между бронированиями, уведомления, вебхуки, подтверждения и т.д.
Продукт работает на Node.js, в качестве СУБД использует PostgreSQL. Можно установить вручную, можно взять готовый docker compose. Он подготовлен в отдельном репозитории:
# git clone https://github.com/calcom/docker.git
# cd docker
# cp .env.example .env
# docker compose up -d
Не забудьте в
.env
файле свои урлы поставить. И секреты поменять. Сгенерировать их можно так: openssl rand -base64 32
. Посмотреть весь процесс установки и настройки, а также обзор возможностей, можно в подробном видео:▶️ Cal.com - an open source, self hosted tool for scheduling mutual best times for meetings!
Календарь очень приглянулся. Удобный и функциональный. Есть русский язык и 24-х часовой формат времени. Проект, как обычно с платной облачной версией. Но при этом open source версия полнофункциональная, то есть без ограничений, но, понятное дело, некоторых возможностей из облачной версии в ней нет.
Я немного побродил по их сайту и заметил очень интересный раздел. Первый раз такое вижу у коммерческой компании. Там перечислены все сотрудники, когда были приняты на работу, какая у них зарплата, сколько у них продаж в месяц, куда и как продаётся продукт, какие доходы, сколько активных пользователей и т.д. То есть открыта вся коммерческая информация. Первый раз такое вижу.
Когда-то давно, когда я задумывался о том, не организовать ли мне свою компанию, у меня были мысли как раз по такой открытости. Думал тогда, что наверное это наивно, быть открытым хотя бы для своих сотрудников внутри компании, чтобы каждый знал, сколько компания зарабатывает и какие у кого зарплаты. Мне казалось очень мотивирующим пропорциональное распределение доходов между всеми сотрудниками. В реальности я нигде такого не видел и думал, что эти мысли утопичны. Общение с собственниками компаний это подтверждали. Их опыт показывал, что это так просто не работает и вместо мотивации можно получить лишние проблемы. А у кого-то, оказывается, это получается. Это лишний раз подтверждает, что если у тебя есть какие-то идеи, надо поменьше рассуждать и побольше действовать. Чем больше раздумий и сомнений, тем меньше шансов сделать что-то новое.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#управление
1👍145👎4
В продолжении вчерашней темы мониторинга Zabbix небольшая заметка из практики, с которой столкнулся на днях. Я абсолютно всегда без исключения настраиваю мониторинг TLS сертификатов и делегирование доменов. Даже если кажется, что всё под контролем, уведомления рассылаются, сертификаты обновляются и т.д.
Был почтовый домен mail.example.com с сервером и на него же посадили веб интерфейс, что не очень удобно. Не рекомендую так делать. Делайте для него отдельный домен, типа webmail.example.com или как-то ещё. Я веб интерфейс перекинул на отдельный веб сервер, и для домена mail.example.com в настройках nginx сделал переадресацию на webmail.example.com, а чтобы продолжать обновлять сертификат оставил
Прилетает от мониторинга через пару недель оповещение, что через 10 дней сертификат для mail протухает. А должен обновиться раньше. Иду разбираться и не понимаю, в чём проблема. На вид всё сделано корректно, как я обычно делаю. Смотрю логи ошибок certbot и вижу, что проверка домена mail идёт не по https, а по http. Я честно говоря почему-то думал, что сначала проверка всегда идёт по https, и если там всё ОК, то этого достаточно. Оказывается нет. Не обращал на это внимание.
У меня получилось так, что по http шла сразу переадресация всех запросов mail -> webmail, а последний хостился на другом сервере, поэтому проверка не проходила. Поправил правила nginx. Оставил
Для https аналогично.
Без мониторинга очень часто протухают сертификаты. Сколько раз это видел даже у крупных компаний. Помню у Rebrain когда-то давно был анонс вебинара про мониторинг. Переходишь по ссылке, а там браузер даёт ошибку на протухший сертификат. Получилось забавно. Поправили сразу, но сам факт. Либо не было мониторинга, либо за ним никто не следил. На протухшие домены и сертификаты лучше всего делать повторяющие уведомления, которые будут раз в сутки прилетать, пока не продлишь.
#zabbix #мониторинг
Был почтовый домен mail.example.com с сервером и на него же посадили веб интерфейс, что не очень удобно. Не рекомендую так делать. Делайте для него отдельный домен, типа webmail.example.com или как-то ещё. Я веб интерфейс перекинул на отдельный веб сервер, и для домена mail.example.com в настройках nginx сделал переадресацию на webmail.example.com, а чтобы продолжать обновлять сертификат оставил
location /.well-known
без переадресации. Сделал и забыл. Прилетает от мониторинга через пару недель оповещение, что через 10 дней сертификат для mail протухает. А должен обновиться раньше. Иду разбираться и не понимаю, в чём проблема. На вид всё сделано корректно, как я обычно делаю. Смотрю логи ошибок certbot и вижу, что проверка домена mail идёт не по https, а по http. Я честно говоря почему-то думал, что сначала проверка всегда идёт по https, и если там всё ОК, то этого достаточно. Оказывается нет. Не обращал на это внимание.
У меня получилось так, что по http шла сразу переадресация всех запросов mail -> webmail, а последний хостился на другом сервере, поэтому проверка не проходила. Поправил правила nginx. Оставил
location /.well-known
и для http, и для https, чтобы в любом случае проверка домена проходила успешно. Что-то типа такого:server {
listen 80;
server_name mail.example.com;
location /.well-known {
root /var/www/mail.example.com;
}
location / {
return 301 https://webmail.example.com$request_uri;
}
}
Для https аналогично.
Без мониторинга очень часто протухают сертификаты. Сколько раз это видел даже у крупных компаний. Помню у Rebrain когда-то давно был анонс вебинара про мониторинг. Переходишь по ссылке, а там браузер даёт ошибку на протухший сертификат. Получилось забавно. Поправили сразу, но сам факт. Либо не было мониторинга, либо за ним никто не следил. На протухшие домены и сертификаты лучше всего делать повторяющие уведомления, которые будут раз в сутки прилетать, пока не продлишь.
#zabbix #мониторинг
Server Admin
Повторяющиеся уведомления в Zabbix
Настройка регулярных повторяющихся оповещений в системе мониторинга zabbix. Показано на конкретном примере с триггером.
2👍92👎4
Решил всё же после выхода Zabbix Server 7.2 обновить один из работающих серверов до этой версии. Давно собирался там порядок навести и нарисовать новые дашборды. Имеет смысл это сделать уже на свежей версии.
Сервер был версии 6.0 на ОС Debian 11. Первым делом обновил Debian 11 до 12. Всё прошло гладко. Debian хорошо обновляется с релиза на релиз. Не припоминаю серьёзных проблем с этим. Потом подключил репозиторий от Zabbix 7 и обновил его с 6.0 до 7.0. Процесс обновления в целом прошёл штатно, но на выходе я столкнулся с проблемой.
Это был старый сервер, который обновляется с релиза на релиз, с системы на систему с 4-й версии. А может и того раньше. Не помню точно. Он всегда работал под Apache. После обновления на 7.0 в веб интерфейсе пропал русский язык. В настройках он остался, но если в профиле выбрать русский язык и сохранить настройки, то ничего не менялось. Оставался английский.
Я немного погуглил, решения не нашёл. Несмотря на то, что все необходимые условия для появления русского языка выполнены, он не работал. Я не стал дальше решать вопрос, а просто заменил Apache на Nginx и Php-fpm. Русский язык появился. То есть проблема сидела где-то в настройках Apache и скорее всего php.
Дальше в пару шагов обновил 7.0 до 7.2:
Тут тоже столкнулся с ошибкой. В 7.2 веб интерфейс вынесли в новую директорию
❗️С версией сервера 7.2 не будут работать прокси 6.0. Для меня это было сюрпризом, так как в одном сегменте сети до сих пор работают Centos 7 и туда максимум можно поставить версию 6.0. С сервером 7.0 они нормально работали, а с 7.2 уже не хотят. Пришлось решать этот вопрос отдельной установкой туда более свежей системы.
Несмотря на то, что проделал довольно значительные обновления не только со сменой ветки программы, но и самой системы, прошло всё без особых сюрпризов. Потратил на всё про всё около двух часов. В комментариях к своим статьям по обновлению Zabbix постоянно встречаю различные ошибки у людей. То база не обновляется, то бэкенд остался старой версии. Сам с ними не сталкиваюсь. Если всё делать аккуратно с пониманием и проверкой того, что делаешь, то всё получается.
Перед обновлением сделал снепшот виртуалки и не забыл его удалить, когда убедился, что всё получилось и работает.
#zabbix
Сервер был версии 6.0 на ОС Debian 11. Первым делом обновил Debian 11 до 12. Всё прошло гладко. Debian хорошо обновляется с релиза на релиз. Не припоминаю серьёзных проблем с этим. Потом подключил репозиторий от Zabbix 7 и обновил его с 6.0 до 7.0. Процесс обновления в целом прошёл штатно, но на выходе я столкнулся с проблемой.
Это был старый сервер, который обновляется с релиза на релиз, с системы на систему с 4-й версии. А может и того раньше. Не помню точно. Он всегда работал под Apache. После обновления на 7.0 в веб интерфейсе пропал русский язык. В настройках он остался, но если в профиле выбрать русский язык и сохранить настройки, то ничего не менялось. Оставался английский.
Я немного погуглил, решения не нашёл. Несмотря на то, что все необходимые условия для появления русского языка выполнены, он не работал. Я не стал дальше решать вопрос, а просто заменил Apache на Nginx и Php-fpm. Русский язык появился. То есть проблема сидела где-то в настройках Apache и скорее всего php.
Дальше в пару шагов обновил 7.0 до 7.2:
# wget https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb
# dpkg -i zabbix-release_latest_7.2+debian12_all.deb
# apt update
# apt upgrade
Тут тоже столкнулся с ошибкой. В 7.2 веб интерфейс вынесли в новую директорию
/usr/share/zabbix/ui
вместо прошлой /usr/share/zabbix
. Нужно поправить это в настройках nginx. Больше ничего менять не надо. Перезапускаем службу и тестируем новую версию 7.2.❗️С версией сервера 7.2 не будут работать прокси 6.0. Для меня это было сюрпризом, так как в одном сегменте сети до сих пор работают Centos 7 и туда максимум можно поставить версию 6.0. С сервером 7.0 они нормально работали, а с 7.2 уже не хотят. Пришлось решать этот вопрос отдельной установкой туда более свежей системы.
Несмотря на то, что проделал довольно значительные обновления не только со сменой ветки программы, но и самой системы, прошло всё без особых сюрпризов. Потратил на всё про всё около двух часов. В комментариях к своим статьям по обновлению Zabbix постоянно встречаю различные ошибки у людей. То база не обновляется, то бэкенд остался старой версии. Сам с ними не сталкиваюсь. Если всё делать аккуратно с пониманием и проверкой того, что делаешь, то всё получается.
Перед обновлением сделал снепшот виртуалки и не забыл его удалить, когда убедился, что всё получилось и работает.
#zabbix
1👍110👎3
Для рисования схем существует много различных программ. Причём этот вопрос хорошо закрывается полностью бесплатным ПО. Его можно разделить на 2 категории: ручное рисование и автоматическое на основе текстового описания. Сегодня речь пойдёт про ручное рисование.
Наиболее популярные инструменты - draw.io и excalidraw.com. Оба сервиса представляют собой веб приложение, которое можно в том числе развернуть у себя на веб сервере. Результатом работы в браузере будет обычный файл, который можно сохранить к себе на компьютер. Это удобно. Не нужно ничего устанавливать локально, но при этом все схемы у тебя всегда под рукой. Можно воспользоваться как своим сервисом, так и публичным.
Я одно время пользовался draw.io и думал, что ничего другого и не надо. Вроде всё и так есть. Потом кто-то посоветовал посмотреть excalidraw. Он мне понравился. Там по умолчанию нет специальных иконок и прочих красивостей, но на деле оказалось, что простыми прямоугольниками и прочими геометрическими фигурами со стрелками нарисовать схему быстрее и проще. И выглядит она нагляднее. Так что теперь рисую там. При желании туда тоже можно импортировать готовые наборы иконок, но я без них обхожусь.
Видел не раз в комментариях упоминание lucidchart. Про него есть подробное видео на ютубе на канале ADV-IT. Автор нарисовал для примера пару схем и показал процесс. Изначально думал, что это наподобие описанных выше программ, где так же есть open source версия, но нет. Lucidchart полностью коммерческий продукт с бесплатным тарифным планом, в котором основное ограничение - 60 объектов на схему. Сайт использует какую-то хитрую блокировку по странам, так что я не смог зарегистрироваться даже через американский VPN. Так что можно смело про него забыть. Lucidchart у меня год в закладках висел, ждал своего часа и вот дождался.
☝️ Вернусь ещё раз к draw и excalidraw и расскажу об одной особенности, которая может быть кому-то незнакома. Для этих сервисов есть плагины для популярной IDE - VSCode. С помощью этих плагинов вы можете хранить схемы в репозиториях и изменять их прямо в редакторе. После изменения схемы автоматически рендерятся в картинки. То есть для вас это редактируемые объекты, которые легко изменяются, а для тех, кто будет смотреть этот репозиторий, это будут статические png картинки. Вот тут подробно показано, как это работает:
▶️ Рисуем документацию прямо внутри IDE - excalidraw
Ну и отдельно перечислю бесплатные сервисы, где можно автоматически создавать блок схемы на основе описания с помощью кода:
◽️Graphviz - ветеран подобных сервисов, очень старый продукт, который развивается и использует по сей день.
◽️Mermaid - более современный сервис, много где имеет встроенную поддержку (GitLab, Gitea, Joplin, Notion и т.д.), наиболее популярный на сегодняшний день.
Таких движков для описания кода очень много. У них довольно высокий порог вхождения. Используется свой язык разметки, так что придётся немного поразбираться.
#схемы
Наиболее популярные инструменты - draw.io и excalidraw.com. Оба сервиса представляют собой веб приложение, которое можно в том числе развернуть у себя на веб сервере. Результатом работы в браузере будет обычный файл, который можно сохранить к себе на компьютер. Это удобно. Не нужно ничего устанавливать локально, но при этом все схемы у тебя всегда под рукой. Можно воспользоваться как своим сервисом, так и публичным.
Я одно время пользовался draw.io и думал, что ничего другого и не надо. Вроде всё и так есть. Потом кто-то посоветовал посмотреть excalidraw. Он мне понравился. Там по умолчанию нет специальных иконок и прочих красивостей, но на деле оказалось, что простыми прямоугольниками и прочими геометрическими фигурами со стрелками нарисовать схему быстрее и проще. И выглядит она нагляднее. Так что теперь рисую там. При желании туда тоже можно импортировать готовые наборы иконок, но я без них обхожусь.
Видел не раз в комментариях упоминание lucidchart. Про него есть подробное видео на ютубе на канале ADV-IT. Автор нарисовал для примера пару схем и показал процесс. Изначально думал, что это наподобие описанных выше программ, где так же есть open source версия, но нет. Lucidchart полностью коммерческий продукт с бесплатным тарифным планом, в котором основное ограничение - 60 объектов на схему. Сайт использует какую-то хитрую блокировку по странам, так что я не смог зарегистрироваться даже через американский VPN. Так что можно смело про него забыть. Lucidchart у меня год в закладках висел, ждал своего часа и вот дождался.
☝️ Вернусь ещё раз к draw и excalidraw и расскажу об одной особенности, которая может быть кому-то незнакома. Для этих сервисов есть плагины для популярной IDE - VSCode. С помощью этих плагинов вы можете хранить схемы в репозиториях и изменять их прямо в редакторе. После изменения схемы автоматически рендерятся в картинки. То есть для вас это редактируемые объекты, которые легко изменяются, а для тех, кто будет смотреть этот репозиторий, это будут статические png картинки. Вот тут подробно показано, как это работает:
▶️ Рисуем документацию прямо внутри IDE - excalidraw
Ну и отдельно перечислю бесплатные сервисы, где можно автоматически создавать блок схемы на основе описания с помощью кода:
◽️Graphviz - ветеран подобных сервисов, очень старый продукт, который развивается и использует по сей день.
◽️Mermaid - более современный сервис, много где имеет встроенную поддержку (GitLab, Gitea, Joplin, Notion и т.д.), наиболее популярный на сегодняшний день.
Таких движков для описания кода очень много. У них довольно высокий порог вхождения. Используется свой язык разметки, так что придётся немного поразбираться.
#схемы
👍121👎1
В ОС на базе Linux существуют несколько наиболее популярных программных решений для построения отказоустойчивого дискового хранилища, или по простому - софтовых рейдов:
◽️Mdadm
◽️LVM Raid
◽️ZFS
Про Mdadm рассказывать особо нечего. Это самый популярный программный рейд, которому сто лет в обед. Он очень прост в настройке и эксплуатации, про него масса статей с инструкциями. Я использую его повсеместно и проблем с ним никогда не знал. Много писал про него на канале.
Про ZFS тоже рассказывать большого смысла нет. Известная и проверенная временем технология. Я ещё на Freebsd её использовал и очень радовался, когда корень системы можно было поставить на ZFS. Она спокойно переживала аварийные выключения сервера, в отличие от UFS, которая была файловой системой по умолчанию и постоянно ломалась после аварийных отключений.
А вот про LVM Raid и информации немного, и практического применения я не видел. Мне не очень понятно, почему. Я немного поигрался с этим рейдом на тестах. Выглядит интересно. Сразу скажу, почему я решил обратить на него внимание. LVM Raid поддерживает технологию DM-integrity (device mapper integrity), с помощью которой можно контролировать целостность хранимой информации с помощью дополнительного хранения и проверки метаданных (checksum) файлов. Это то, что ZFS делает по умолчанию. Поясню, зачем это надо.
В современных дисках, как HDD, так и SSD, очень высокая плотность записи. Это делает сохранение заряда в ячейках менее надёжным и долговременным. Допустим, у вас на дисках долго хранится какой-то объём информации. В каких-то ячейках изменились записанные биты либо из-за ошибок при записи, либо возникли во время хранения. При этом диски полностью исправны и ошибок чтения нет. То есть технически всё в порядке. Но во время чтения вы можете получить битые файлы, которые при этом успешно прочитаются. Но информация будет разрушена.
При использовании Mdadm и поверх него ФС EXT4 или XFS, никакой защиты от подобных ошибок у вас не будет. Если не делать регулярное сопоставление записанных файлов с каким-то другим хранилищем таких же файлов, то о битых файлах вы не узнаете, пока явно не наткнётесь на них во время проверки. В LVM Raid с поддержкой DM-integrity часть хранилища выделяется под хранение метаданных файлов. Я не нашёл точно информации, сколько конкретно % от общего объёма тратится. Но там немного, не более 10%.
При использовании LVM Raid + DM-integrity вы узнаете о битых файлах при очередной проверке файлов с тем, что записано ранее в хранилище метаданных. Это происходит как минимум во время чтения. Я так понимаю, что процесс этот может происходить и в фоне, можно и принудительно запускать и смотреть результаты. CLI от LVM даёт такие возможности. При обнаружении повреждённых файлов, они будут автоматически восстановлены с других носителей в рейд массиве.
Хотел сделать заметку с примерами создания и управления LVM Raid, но сделаю это позже отдельной заметкой в виде готовой шпаргалки. Вводная теоретическая часть получилась слишком длинной.
Если кто-то использовал LVM Raid, поделитесь опытом и впечатлениями. Особенно интересно, если дополнительно включали DM-integrity. Без неё я не вижу смысла использовать рейд LVM, а не Mdadm. LVM хоть и даёт бОльшую гибкость в управлении. Например, можно на лету изменить уровень рейда, увеличить или уменьшить тома. Но на практике это не особо нужно. Mdadm проще и более предсказуем, интуитивен в управлении. Технически DM-integrity можно включить и для дисков в составе Mdadm, но там нет нативной поддержки, как в LVM. Битые файлы будут помечаться как ошибки чтения диска и Mdadm будет пытаться их синхронизировать с других дисков. Это тоже рабочий вариант, но не такой удобный в плане управления и отслеживания ошибок.
#lvm #raid
◽️Mdadm
◽️LVM Raid
◽️ZFS
Про Mdadm рассказывать особо нечего. Это самый популярный программный рейд, которому сто лет в обед. Он очень прост в настройке и эксплуатации, про него масса статей с инструкциями. Я использую его повсеместно и проблем с ним никогда не знал. Много писал про него на канале.
Про ZFS тоже рассказывать большого смысла нет. Известная и проверенная временем технология. Я ещё на Freebsd её использовал и очень радовался, когда корень системы можно было поставить на ZFS. Она спокойно переживала аварийные выключения сервера, в отличие от UFS, которая была файловой системой по умолчанию и постоянно ломалась после аварийных отключений.
А вот про LVM Raid и информации немного, и практического применения я не видел. Мне не очень понятно, почему. Я немного поигрался с этим рейдом на тестах. Выглядит интересно. Сразу скажу, почему я решил обратить на него внимание. LVM Raid поддерживает технологию DM-integrity (device mapper integrity), с помощью которой можно контролировать целостность хранимой информации с помощью дополнительного хранения и проверки метаданных (checksum) файлов. Это то, что ZFS делает по умолчанию. Поясню, зачем это надо.
В современных дисках, как HDD, так и SSD, очень высокая плотность записи. Это делает сохранение заряда в ячейках менее надёжным и долговременным. Допустим, у вас на дисках долго хранится какой-то объём информации. В каких-то ячейках изменились записанные биты либо из-за ошибок при записи, либо возникли во время хранения. При этом диски полностью исправны и ошибок чтения нет. То есть технически всё в порядке. Но во время чтения вы можете получить битые файлы, которые при этом успешно прочитаются. Но информация будет разрушена.
При использовании Mdadm и поверх него ФС EXT4 или XFS, никакой защиты от подобных ошибок у вас не будет. Если не делать регулярное сопоставление записанных файлов с каким-то другим хранилищем таких же файлов, то о битых файлах вы не узнаете, пока явно не наткнётесь на них во время проверки. В LVM Raid с поддержкой DM-integrity часть хранилища выделяется под хранение метаданных файлов. Я не нашёл точно информации, сколько конкретно % от общего объёма тратится. Но там немного, не более 10%.
При использовании LVM Raid + DM-integrity вы узнаете о битых файлах при очередной проверке файлов с тем, что записано ранее в хранилище метаданных. Это происходит как минимум во время чтения. Я так понимаю, что процесс этот может происходить и в фоне, можно и принудительно запускать и смотреть результаты. CLI от LVM даёт такие возможности. При обнаружении повреждённых файлов, они будут автоматически восстановлены с других носителей в рейд массиве.
Хотел сделать заметку с примерами создания и управления LVM Raid, но сделаю это позже отдельной заметкой в виде готовой шпаргалки. Вводная теоретическая часть получилась слишком длинной.
Если кто-то использовал LVM Raid, поделитесь опытом и впечатлениями. Особенно интересно, если дополнительно включали DM-integrity. Без неё я не вижу смысла использовать рейд LVM, а не Mdadm. LVM хоть и даёт бОльшую гибкость в управлении. Например, можно на лету изменить уровень рейда, увеличить или уменьшить тома. Но на практике это не особо нужно. Mdadm проще и более предсказуем, интуитивен в управлении. Технически DM-integrity можно включить и для дисков в составе Mdadm, но там нет нативной поддержки, как в LVM. Битые файлы будут помечаться как ошибки чтения диска и Mdadm будет пытаться их синхронизировать с других дисков. Это тоже рабочий вариант, но не такой удобный в плане управления и отслеживания ошибок.
#lvm #raid
2👍136👎3
⇨ Truenas Scale Electric Eel. Как же долго я тебя ждала
Вышло крупное обновление Trunas Scale - одно из лучших open source решений для NAS. Оказывается, в нём под капотом был Kebernetes 😱 В обновлении его заменили на Docker Compose. Содержательное видео по этому продукту.
⇨ OpenProject - Система для организации проектов. Обзор функций. Установка пакетов и docker
Обзор OpenProject - системы управления проектами с открытым исходным кодом. Популярная и функциональная система. Раньше про неё не слышал. Думаю, разверну и сделаю отдельную заметку.
⇨ Установка Speedtest Tracker на Synology
Обзор Speedtest Tracker для регулярной проверки и хранения результатов замеров скорости интернета. Не раз получал просьбы посоветовать что-то для регулярных замеров, чтобы был график и можно было отслеживать свой канал. Вот вариант решения задачи.
⇨ xPipe is a fantastic, amazing remote connection manager!
Обзор xPipe - менеджера для удалённых подключений. Я писал про него. Пользовался им некоторое время, но в итоге бросил. Докучали некоторые баги и его тормознутость. По виду и возможностям всё нравится, но на практике не зашло. Попробуйте, может вам понравится. Из особенностей - для подключений по SSH использует Windows Terminal. Лично мне это особенно нравилось.
⇨ What’s the better Git? // GitLab vs Gitea
Краткое сравнение GitLab и Gitea. Так то они сильно различаются. Не знаю, что сподвигло автора сравнить их в лоб. Наверное, тема популярная.
⇨ Self-host your own Git platform! // Gitea Tutorial
Вдогонку от этого же автора ролик про саму Gitea.
⇨ GitLab - Установка приватного GitLab Сервера с Ручной и Авто настройкой SSL + PASSWORD
Подробный урок по установке Gitlab. Рассмотрены и системные требования, и разные редакции и т.д. База для тех, кто не особо знаком с продуктом.
⇨ GitLab CI/CD - Полный DevOps Pipeline с НУЛЯ, Создание Docker Image и деплой в AWS ECS Fargate
Практический урок по созданию пайплайна в Gitlab. Он привязан к сервисам AWS. Пол урока создание там сущностей и раздача прав. Тем не менее показано всё наглядно для общего понимания, как это в принципе работает: разные ветки в git, ветвление деплоя в зависимости от ветки, переменные и т.д.
⇨ 7 Правил безопасности сервера
Автор рассмотрел некоторый набор правил для повышения безопасности сервера. Информация для новичков, набор тривиальный: не ходим под root, не используем пароль, прячем SSH порт и т.д.
⇨ PostgreSQL Clustering the Hard Way...
Тяжёлое для восприятия техническое видео на час по построению кластера на базе PostgreSQL. Смотреть имеет смысл, если вам актуальна эта тема. Кластер на базе Patroni.
⇨ Установка ONLYOFFICE в докер и связываем его с Nextcloud
Небольшая инструкция по настройке этой связки. Меня не раз спрашивали, как это настроить. Последний раз буквально неделю назад кто-то то ли в личку, то ли куда-то в комментарии писал.
⇨ SafeLine: A Feature-Rich WAF with a Catch (or Two)
Обзор open source self-hosted WAF. Не слышал про него ранее. Думаю, что попробую и напишу отдельную заметку.
⇨ Reubah: Optimize Your Images & Files Without Compromising Your Privacy
Функциональный open source продукт Rebuah для одиночной или пакетной обработки изображений. В целом ничего особенно, но выглядит аккуратно и удобно. Можно сразу перемотать на демонстрацию. Мне понравилось. В список программ для собственного применения записал.
⇨ The Perfect Home Server 2024 – 56TB, ECC, IPMI, Quiet & (kind of) Compact
Интересное описание сборки домашнего сервера с минимальным шумом с IPMI и ECC. Понравилась материнка из видео - gigabyte mc12-le0. К сожалению, не нашёл, где её у нас купить можно. На aliexpress тоже нету. У автора ролики очень хорошего качества. Огромное количество просмотров для такой узкой темы это подтверждают.
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Truenas Scale Electric Eel. Как же долго я тебя ждала
#nas, #opnsense, #truenas, #proxmox, #ubuntu
В этом ролике поговорим о ключевых изменениях в новой версии Truenas Scale 24.10. Посмотрим на новый dashboard, как расширить пулы, а самое главное пощупаем docker, который появился вместо kubernetes.
Можно…
В этом ролике поговорим о ключевых изменениях в новой версии Truenas Scale 24.10. Посмотрим на новый dashboard, как расширить пулы, а самое главное пощупаем docker, который появился вместо kubernetes.
Можно…
1👍73👎4
This media is not supported in your browser
VIEW IN TELEGRAM
Ты просыпаешься на пыльном чердаке.
Снаружи буря грохочет по старой черепице.
Во рту пересохло. Ноги болят.
Ты прикован наручниками к трубе, и твоя рука обожжена.
Перед тобой стоит женщина. Тесак в ее руке блестит в тусклом свете.
"Что, - спрашивает она, - ты готов сделать, чтобы сбежать?"
Неплохое начало для триллера? Так начинается текстовая обучающая игра по regex выражениям SLASH\ESCAPE. В данном случае нетрудно догадаться об ответе: "Всё, что угодно." В формате regex это будет
"Всё, что угодно? - говорит она, - сурово."
Ты видишь, как она замахивается тесаком, как раз вовремя, чтобы отскочить назад. Металл оставляет порез на щеке, а затем ударяется о трубу позади тебя.
Три пальца на левой руке горят огнём. Ты понимаешь, что произошло, только когда видишь, как они отскакивают от твоего ботинка.
Над вами от внезапного толчка что-то зашаталось. Вы слышите, как что-то сдвигается, и женщина перед вами исчезает под грудой мусора.
Ваша рука выскользнула из наручника.
Вы можете двигаться ВПРАВО или ВЛЕВО - в RegEx вы можете просто написать слово, которое хотите сопоставить, так что пишите свой выбор.
Ну и так далее. К каждому заданию есть подсказка, которая объясняет правильный ответ и рассказывает, где это может пригодиться.
Сделано прикольно и атмосферно. Не видел и не слышал раньше про эту игру. Увидел случайно в другой похожей игре: lost-at-sql. Там тоже свой необычный сюжет. Вы капитан подводной лодки SS.QL, у которой какие-то проблемы. Вам надо их решать посредством SQL запросов к базе данных аппарата. Сделано забавно, но про SQL и так последнее время было много заметок, поэтому не стал акцентировать внимание именно на ней. С regex игра больше понравилась.
🎮 ⇨ SLASH\ESCAPE
📱⇨ Lost at SQL
#regex #обучение #игра
Снаружи буря грохочет по старой черепице.
Во рту пересохло. Ноги болят.
Ты прикован наручниками к трубе, и твоя рука обожжена.
Перед тобой стоит женщина. Тесак в ее руке блестит в тусклом свете.
"Что, - спрашивает она, - ты готов сделать, чтобы сбежать?"
Неплохое начало для триллера? Так начинается текстовая обучающая игра по regex выражениям SLASH\ESCAPE. В данном случае нетрудно догадаться об ответе: "Всё, что угодно." В формате regex это будет
.*
"Всё, что угодно? - говорит она, - сурово."
Ты видишь, как она замахивается тесаком, как раз вовремя, чтобы отскочить назад. Металл оставляет порез на щеке, а затем ударяется о трубу позади тебя.
Три пальца на левой руке горят огнём. Ты понимаешь, что произошло, только когда видишь, как они отскакивают от твоего ботинка.
Над вами от внезапного толчка что-то зашаталось. Вы слышите, как что-то сдвигается, и женщина перед вами исчезает под грудой мусора.
Ваша рука выскользнула из наручника.
Вы можете двигаться ВПРАВО или ВЛЕВО - в RegEx вы можете просто написать слово, которое хотите сопоставить, так что пишите свой выбор.
Ну и так далее. К каждому заданию есть подсказка, которая объясняет правильный ответ и рассказывает, где это может пригодиться.
Сделано прикольно и атмосферно. Не видел и не слышал раньше про эту игру. Увидел случайно в другой похожей игре: lost-at-sql. Там тоже свой необычный сюжет. Вы капитан подводной лодки SS.QL, у которой какие-то проблемы. Вам надо их решать посредством SQL запросов к базе данных аппарата. Сделано забавно, но про SQL и так последнее время было много заметок, поэтому не стал акцентировать внимание именно на ней. С regex игра больше понравилась.
🎮 ⇨ SLASH\ESCAPE
📱⇨ Lost at SQL
#regex #обучение #игра
👍76👎11
Несмотря на то, что mdadm хоронят уже много лет, например, те же разработчики Proxmox, я успешно и повсеместно его использую. Он меня полностью устраивает в плане надёжности и предсказуемости. Берёшь любой бюджетный сервер на 2 или 4 SSD или NVME диска и собираешь RAID1 или RAID10, ставишь на все диски загрузчик и больше не переживаешь за выход из строя одного из дисков.
Я уже десятки раз заменял вышедшие из строя диски и никогда не имел с mdadm проблем (постучал по дереву). Буквально вчера утром получил уведомление с одного из серверов о выходе из строя диска (картинка с ошибкой и данными из мониторинга внизу) и вечером заказал замену у техподдержки дедика. В этот раз собрал практически все возможные проблемы, так что оформлю в короткую шпаргалку.
Вышел из строя диск
Я получил ошибку:
В данном случае в тексте ошибки присутствует uuid одного из разделов оставшегося диска
Чтобы исправить ошибку выше, надо вывести из состава массивов разделы диска
Так для всех массивов. В моём случае их было 3:
Теперь команда
После этого сервер можно выключить и написать в техподдержку, чтобы выполнили замену. Внимательно укажите серийный номер сбойного диска. У меня он всегда в Zabbix остаётся. Отдельно не веду каталог дисков. Просто настраиваю мониторинг. Обычно этого достаточно.
После того, как поддержка заменит диск и включит сервер, можно добавлять новый диск в массив. Проверяем его:
Убеждаемся, что диск подходящего размера и он чистый, без разметки. У меня на подобных серверах обычно mbr разметка, так как SSD диски не очень большие. Разделы с работающего диска на новый копирую так:
Скопировали с
Теперь добавляем разделы нового диска в массив:
Наблюдаем синхронизацию в режиме реального времени:
Один из массивов у меня был остановлен:
Не получалось к нему добавить недостающий раздел. Перед этим его пришлось запустить:
После этого благополучно добавил недостающий раздел:
Не знаю, с чем связано то, что иногда массивы останавливаются. Хорошо, что в данном случае это был не корневой или загрузочный раздел. Как-то раз у меня остановился корневой раздел. Пришлюсь грузиться с livecd, запускать массив и добавлять в него раздел. После этого нормально загрузилась система. Случается такое редко. Добавляет некоторую нервозность ко всему процессу замены диска. Всегда есть шанс, что понадобится livecd или доступ к консоли сервера.
После замены диска не забываем установить загрузчик на новый диск
Обязательно убедитесь, что ошибок нет. Если есть, сразу их решайте, не откладывайте на потом.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mdadm
Я уже десятки раз заменял вышедшие из строя диски и никогда не имел с mdadm проблем (постучал по дереву). Буквально вчера утром получил уведомление с одного из серверов о выходе из строя диска (картинка с ошибкой и данными из мониторинга внизу) и вечером заказал замену у техподдержки дедика. В этот раз собрал практически все возможные проблемы, так что оформлю в короткую шпаргалку.
Вышел из строя диск
/dev/sda
, который входит в состав RAID1 из двух дисков. Это первый диск, с которого грузился загрузчик. Перед заменой обязательно проверяем, что есть загрузчик на втором диске:# dpkg-reconfigure grub-pc
Я получил ошибку:
grub-pc: Running grub-install ...
Installing for i386-pc platform.
grub-install.real: error: disk `mduuid/fe51668460b267542c1d5c1adb4e7680' not found.
grub-install failure for /dev/sdb
В данном случае в тексте ошибки присутствует uuid одного из разделов оставшегося диска
/dev/sdb
, который входит в массив mdadm, который из-за выхода из строя диска /dev/sda
находится в состоянии Degraded. Я точно знал, что ранее на /dev/sdb
уже ставил загрузчик, но решил перестраховаться. Чтобы исправить ошибку выше, надо вывести из состава массивов разделы диска
/dev/sda
:# mdadm /dev/md126 --fail /dev/sda1
# mdadm /dev/md126 --remove /dev/sda1
Так для всех массивов. В моём случае их было 3:
/
, /boot
и swap
. Я swap никогда в раздел не выношу, храню в файле, но это был шаблон от хостера. Там такая разбивка по умолчанию. Теперь команда
dpkg-reconfigure grub-pc
отработала без ошибок, поставила загрузчик на /dev/sdb.После этого сервер можно выключить и написать в техподдержку, чтобы выполнили замену. Внимательно укажите серийный номер сбойного диска. У меня он всегда в Zabbix остаётся. Отдельно не веду каталог дисков. Просто настраиваю мониторинг. Обычно этого достаточно.
После того, как поддержка заменит диск и включит сервер, можно добавлять новый диск в массив. Проверяем его:
# smartctl -i /dev/sda
# fdisk -l | grep /dev/sda
Убеждаемся, что диск подходящего размера и он чистый, без разметки. У меня на подобных серверах обычно mbr разметка, так как SSD диски не очень большие. Разделы с работающего диска на новый копирую так:
# sfdisk -d /dev/sdb | sfdisk /dev/sda
Скопировали с
/dev/sdb
на /dev/sda
. Не перепутайте диски и не обнулите разметку старого диска. Убеждаемся, что разметка на /dev/sda
идентична /dev/sdb
:# fdisk -l
Теперь добавляем разделы нового диска в массив:
# mdadm --add /dev/md126 /dev/sda1
Наблюдаем синхронизацию в режиме реального времени:
# watch cat /proc/mdstat
Один из массивов у меня был остановлен:
md127 : inactive sdb3[1](S)
Не получалось к нему добавить недостающий раздел. Перед этим его пришлось запустить:
# mdadm --run /dev/md127
mdadm: started array /dev/md/installrescue:43
После этого благополучно добавил недостающий раздел:
# mdadm --add /dev/md127 /dev/sda3
mdadm: added /dev/sda3
Не знаю, с чем связано то, что иногда массивы останавливаются. Хорошо, что в данном случае это был не корневой или загрузочный раздел. Как-то раз у меня остановился корневой раздел. Пришлюсь грузиться с livecd, запускать массив и добавлять в него раздел. После этого нормально загрузилась система. Случается такое редко. Добавляет некоторую нервозность ко всему процессу замены диска. Всегда есть шанс, что понадобится livecd или доступ к консоли сервера.
После замены диска не забываем установить загрузчик на новый диск
/dev/sda
:# dpkg-reconfigure grub-pc
Обязательно убедитесь, что ошибок нет. Если есть, сразу их решайте, не откладывайте на потом.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mdadm
4👍287👎4