Если вам приходится обслуживать сайты, работающие на php, то расскажу про небольшую настройку, которая по умолчанию отключена, но в некоторых случаях её имеет смысл включить. Речь пойдёт про логирование использования функции mail(), с помощью которой можно отправлять email сообщения.
Хорошо, если веб приложение умеет использовать сторонние SMTP сервера для отправки почты, а не прямую отправку через встроенную функцию. Но это не всегда так. Другая сторона медали - если сайт или хостинг взломают, то часто начинают слать спам через php напрямую. Это самое популярное использование взломанного каким-нибудь ботом сайта через публичную уязвимость. Через него либо сразу спам начинают слать, либо ддосить кого-нибудь, реже - майнить. Майнинг сразу видно по возросшей нагрузке. А вот почту можно и не заметить.
Я обычно в таких случаях ставлю для локальной отправки postfix и слежу за его логом. Если вы с почтовыми серверами не особо знакомы, а вам нужен просто список отправленных писем, где одно письмо - одна строчка, то с логированием сдрествами php будет проще всего. К тому же этот лог в том числе покажет, какой конкретно скрипт сделал отправку, что в логе почтового сервера не увидеть, там этой информации в принципе нет.
Идём в настройки php, в файл
Можно направить вывод в какой-то текстовый файл вместо syslog, но могут возникнуть нюансы с доступом, если, к примеру, у вас используется php-fpm и для каждого сайта запускается пул под своим отдельным пользователем. Использовать syslog как единое централизованное хранилище - более универсальное решение. Но тут уже вам решать, как удобнее, в зависимости от ваших настроек. Можно и из syslog сложить все записи в отдельный файл, отфильтровав их по вхождению фразы mail().
Для этого рисуем конфиг для rsyslog в файле
Перезапускаем rsyslog:
И перезапускаем службу php в зависимости от того, в каком виде она используется. Отдельно отмечу, что, к примеру, в Debian файл php.ini для модуля Apache, для php-fpm, для запуска консольных скриптов через cli свой. Не перепутайте, куда будете вносить правки. Либо вносите сразу во все. Лучше создать отдельный файл, вместо правки общего. То есть для php-fpm кладём настройку примерно сюда:
Принудительно проверить работу можно простейшим скриптом такого содержания:
Запускаем скрипт:
В файле
Видим скрипт
Не забудьте настроить ротацию этого файла, если будете хранить лог в отдельном файле. Добавьте примерно такой конфиг для logrotate в файле
Я обычно складываю все старые логи в отдельную директорию. Не забудьте её создать, если скопируете этот конфиг. Если будете логировать не по дням, а по размеру файла, то не забудьте настроить запуск logrotate чаще, чем раз в сутки. И так же туда надо будет добавить вместо daily дополнительные параметры:
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webserver #php
Хорошо, если веб приложение умеет использовать сторонние SMTP сервера для отправки почты, а не прямую отправку через встроенную функцию. Но это не всегда так. Другая сторона медали - если сайт или хостинг взломают, то часто начинают слать спам через php напрямую. Это самое популярное использование взломанного каким-нибудь ботом сайта через публичную уязвимость. Через него либо сразу спам начинают слать, либо ддосить кого-нибудь, реже - майнить. Майнинг сразу видно по возросшей нагрузке. А вот почту можно и не заметить.
Я обычно в таких случаях ставлю для локальной отправки postfix и слежу за его логом. Если вы с почтовыми серверами не особо знакомы, а вам нужен просто список отправленных писем, где одно письмо - одна строчка, то с логированием сдрествами php будет проще всего. К тому же этот лог в том числе покажет, какой конкретно скрипт сделал отправку, что в логе почтового сервера не увидеть, там этой информации в принципе нет.
Идём в настройки php, в файл
php.ini
и раскомментируем там строку:mail.log = syslog
Можно направить вывод в какой-то текстовый файл вместо syslog, но могут возникнуть нюансы с доступом, если, к примеру, у вас используется php-fpm и для каждого сайта запускается пул под своим отдельным пользователем. Использовать syslog как единое централизованное хранилище - более универсальное решение. Но тут уже вам решать, как удобнее, в зависимости от ваших настроек. Можно и из syslog сложить все записи в отдельный файл, отфильтровав их по вхождению фразы mail().
Для этого рисуем конфиг для rsyslog в файле
/etc/rsyslog.d/php-mail.conf
::msg, contains, "mail()" /var/log/mail-php.log
& stop
Перезапускаем rsyslog:
# systemctl restart rsyslog
И перезапускаем службу php в зависимости от того, в каком виде она используется. Отдельно отмечу, что, к примеру, в Debian файл php.ini для модуля Apache, для php-fpm, для запуска консольных скриптов через cli свой. Не перепутайте, куда будете вносить правки. Либо вносите сразу во все. Лучше создать отдельный файл, вместо правки общего. То есть для php-fpm кладём настройку примерно сюда:
/etc/php/8.2/fpm/conf.d/mail-log.conf
.Принудительно проверить работу можно простейшим скриптом такого содержания:
<?php
$to = "user@example.com";
$subject = "Привет от PHP!";
$message = "Это тестовое письмо, отправленное через PHP скрипт.";
mail($to, $subject, $message);
?>
Запускаем скрипт:
# php mail.php
В файле
/var/log/mail-php.log
наблюдаем запись:2025-06-09T00:07:09.607068+03:00 debian12-vm php: mail() on [/root/mail.php:5]: To: user@example.com -- Headers: -- Subject: Привет от PHP!
Видим скрипт
/root/mail.php
и конкретную строку 5, где сработала функция mail(). Это может очень пригодится при отладке неправомерных отправлений с сервера.Не забудьте настроить ротацию этого файла, если будете хранить лог в отдельном файле. Добавьте примерно такой конфиг для logrotate в файле
/etc/logrotate.d/mail-php
:/var/log/mail-php.log {
rotate 30
daily
missingok
notifempty
compress
olddir /var/log/old
}
Я обычно складываю все старые логи в отдельную директорию. Не забудьте её создать, если скопируете этот конфиг. Если будете логировать не по дням, а по размеру файла, то не забудьте настроить запуск logrotate чаще, чем раз в сутки. И так же туда надо будет добавить вместо daily дополнительные параметры:
size=50M
dateext
dateformat -%Y-%m-%d_%H-%s
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webserver #php
Раз уж начал вчера тему про MC (Midnight Commander), разовью её и перечислю основную функциональность этого файлового менеджера, которой лично я постоянно пользуюсь. Может кто-то найдёт для себя что-то новое.
1️⃣ Закладки. Комбинация Ctrl-\. Практически всегда начинаю работу в MC с открытия закладок. У меня там стандартно есть
2️⃣ Поиск файла. Комбинация Ctrl-s. После выбора закладки и перехода в нужный каталог сразу же запускаю поиск по файлу и начинаю его набирать. Например, перехожу в
3️⃣ Подсветка синтаксиса. Комбинация в mcedit Ctrl-s. После открытия файла включаю или отключаю подсветку синтаксиса, в зависимости то того, что хочу сделать. Если это огромный лог файл, то из-за подсветки будет тормозить просмотр, лучше сразу убрать её. Для того, чтобы стандартная подсветка для sh скриптов действовала на все файлы, даже без расширения, делаю вот так:
Копирую подсветку sh на все неопознанные файлы. Обычно это различные конфиги или логи и там как раз sh подсветка будет актуальной.
4️⃣ Cвернуть окно. Комбинация Ctrl-o. Обычно всегда сворачиваю MC, а не закрываю. Так и работаю, перемещаясь то в консоль, то в MC. Использовать его консоль для выполнения команд не люблю.
5️⃣ Создание, копирование или переименование файла. Комбинации Shift-F4, Shift-F5 и Shift-F6. Можно сделать копию файла с другим именем. Удобно, если руками правишь конфиги. Тут же копируешь старый с добавлением
6️⃣ Обновить содержимое каталога. Комбинация Ctrl-r. Не так давно узнал случайно про эту комбинацию. Пользуюсь постоянно. До этого выходил и возвращался в каталог для обновления списка файлов.
7️⃣ Выбор или отмена выбора. На цифровой панели + или -. Выбрать файлы по маске или отменить выбор. Если цифровой панели нет, то Shift-+ (шифт и потом плюс). Чаще всего приходится выбирать все файлы, для этого используется маска *, либо сразу комбинация Shift-*. Она выделяет все файлы в каталоге.
8️⃣ Расширенный Chown. Комбинации клавиш для него нет. Нажимаю F9 ⇨ File ⇨ A. Открывается Advanced chown. Я работаю в нём вместо отдельных chmod и chown.
9️⃣ Поменять местами панели. Комбинация Сtrl-u.
🔟 Посмотреть размер каталога. Комбинация Ctrl-space. Если каталоги жирные, подсчёт идёт долго, то я сразу по списку каталогов иду, не отпуская Ctrl, нажимая пробел. После каждого нажатия происходит автоматический переход на новый каталог. Так всё прокликав можно быстро либо очень большой каталог найти, либо пустой. Либо можно сначала выделить все каталоги и нажать Ctrl-space.
⏸️ Подстановка имени в консоль. Комбинация Esc-enter. Переходим к файлу, подставляем его имя в консоль, сворачиваем MC и потом в консоли работаем с выбранным файлом.
Есть ещё куча всяких комбинаций клавиш, но я даже не вспомню их, так что не использую, не считая однокнопочных, типа копирования или перемещения файлов. А эти уже на автомате вылетают. Так что когда мне кто-то говорит, что в консоли удобнее и быстрее, мне этого не понять. Что-то может и удобнее, а что-то явно нет.
Ещё некоторые моменты. Чтобы быстро получить путь каталога в буфер обмена, в котором я нахожусь в MC, сворачиваю его, пишу
MC можно запустить с разными темами. Бывает актуально, если какой-то цвет совсем нечитаем в текущей гамме. Можно чёрно-белый режим открыть, или какую-то тему выбрать:
Последняя вообще прикольная тема. Я иногда её на постоянку ставлю для выделения сервера. Обычно на какие-то свои.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #termianl #mc
/etc
и /var/log
, а дальше уже в зависимости от назначения сервера - каталог с бэкапами, каталог веб сервера, вольюмы контейнеров и т.д./var/log
, нажимаю поиск и начинаю набирать syslog
. Сразу же попадаю на нужный файл, набрав только sy
.# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
Копирую подсветку sh на все неопознанные файлы. Обычно это различные конфиги или логи и там как раз sh подсветка будет актуальной.
.old
. Либо переименовываешь текущий конфиг, чтобы отключить его. Например, добавляя к site.conf
расширение .disabled
. Я обычно так отключаю конфиги, не удаляю.🔟 Посмотреть размер каталога. Комбинация Ctrl-space. Если каталоги жирные, подсчёт идёт долго, то я сразу по списку каталогов иду, не отпуская Ctrl, нажимая пробел. После каждого нажатия происходит автоматический переход на новый каталог. Так всё прокликав можно быстро либо очень большой каталог найти, либо пустой. Либо можно сначала выделить все каталоги и нажать Ctrl-space.
⏸️ Подстановка имени в консоль. Комбинация Esc-enter. Переходим к файлу, подставляем его имя в консоль, сворачиваем MC и потом в консоли работаем с выбранным файлом.
Есть ещё куча всяких комбинаций клавиш, но я даже не вспомню их, так что не использую, не считая однокнопочных, типа копирования или перемещения файлов. А эти уже на автомате вылетают. Так что когда мне кто-то говорит, что в консоли удобнее и быстрее, мне этого не понять. Что-то может и удобнее, а что-то явно нет.
Ещё некоторые моменты. Чтобы быстро получить путь каталога в буфер обмена, в котором я нахожусь в MC, сворачиваю его, пишу
pwd
и выделяю.MC можно запустить с разными темами. Бывает актуально, если какой-то цвет совсем нечитаем в текущей гамме. Можно чёрно-белый режим открыть, или какую-то тему выбрать:
# mc -b
# mc -S darkfar
Последняя вообще прикольная тема. Я иногда её на постоянку ставлю для выделения сервера. Обычно на какие-то свои.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #termianl #mc
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐Когда выбираешь хостинг, хочется без сюрпризов: чтобы всё работало, тарифы были честными, а поддержка — не из бота. В IHC мы это понимаем.
У нас:
🔘 виртуальный хостинг от 123 ₽ в месяц с тестовым периодом;
🔘 VPS/VDS в России, Европе и Азии — с выбором ОС и доступом к ispmanager;
🔘 переезд и настройка сайта — бесплатно;
🔘 защита от DDoS включена на всех тарифах;
🔘 резервное копирование и лицензии CMS — по запросу;
🔘 и новая услуга — облачный хостинг для 1С: подключение за пару минут, доступ с любого устройства.
Работаем с 2008 года. Поддержка 24/7, все цены в рублях, без НДС👍
Выберите тариф — и начните без лишней суеты.
👉 Перейти на ihc.ru
Реклама, ООО «Интернет-Хостинг», ИНН 7701838266.
У нас:
🔘 виртуальный хостинг от 123 ₽ в месяц с тестовым периодом;
🔘 VPS/VDS в России, Европе и Азии — с выбором ОС и доступом к ispmanager;
🔘 переезд и настройка сайта — бесплатно;
🔘 защита от DDoS включена на всех тарифах;
🔘 резервное копирование и лицензии CMS — по запросу;
🔘 и новая услуга — облачный хостинг для 1С: подключение за пару минут, доступ с любого устройства.
Работаем с 2008 года. Поддержка 24/7, все цены в рублях, без НДС👍
Выберите тариф — и начните без лишней суеты.
👉 Перейти на ihc.ru
Реклама, ООО «Интернет-Хостинг», ИНН 7701838266.
Я давно уже завёл привычку записывать название моделей и основные характеристики различной техники, которую покупаю: дата покупки, стоимость, инструкция, расходники. Текстовую информацию храню в отдельных заметках в Joplin, фотки и чеки в фотографиях, в отдельной папке для этого дела.
Такой формат хранения не очень удобен. Давно подумывал как-то всё это организовать в более наглядном и удобном для поиска виде. На прошлой неделе попался видеообзор как раз такого рода продукта - DumbAssets. Показался интересным софт. Он как раз написан для таких же целей - хранить информацию о личной технике, либо компьютерном оборудовании. То есть в каких-то простых случаях можно и для работы использовать.
Развернул эту штуку у себя и попробовал:
Софт очень простой. Аутентификации нет, но веб морду можно закрыть четырёхзначным пинкодом. В программу можно добавлять устройства, указывать их основные характеристики, в том числе гарантийный срок и регулярные регламентные обслуживания.
Визуально выглядит неплохо, но как-то совсем простовато по возможностям. Даже тип валюты поменять нельзя. Для выстраивания структуры есть только тэги.
Может кто-то знает ещё подобный софт, только более продвинутый? Понятно, что эту функциональность обычно навешивают на полноценное ПО для инвентаризации и учёта оборудования, типа Glpi, Snipe-IT, Ralph и т.д. Но может есть что-то более простое и удобное именно для целей учёта оборудования, без всего остального в виде перемещений, договоров, лицензий, складов и т.д.
Больше интересно это для личного использования. Занести туда автомобиль, всю технику, в том числе с дачи. Там и расходники, и фильтра, и масла и т.д. Всё это периодически менять, чистить, проверять надо. Я характеристики своих компов, ноутов, мониторов, смартфонов тоже в текстовом виде держу, чтобы понимать, что у меня есть в наличии и что надо в перспективе обновлять. В большой семье нетривиальная задача всё держать в порядке и учёте. У меня только в семье в управлении 5 ноутов, 2 системных блока, 4 монитора, 6 смартфонов. Про инструмент вообще молчу, там позиций 20-25 будет. Уже даже и не помню, что у меня есть и где лежит. Надо всё записывать.
⇨ 🌐 Сайт / Исходники / Видеообзор / Демо
#управление
Такой формат хранения не очень удобен. Давно подумывал как-то всё это организовать в более наглядном и удобном для поиска виде. На прошлой неделе попался видеообзор как раз такого рода продукта - DumbAssets. Показался интересным софт. Он как раз написан для таких же целей - хранить информацию о личной технике, либо компьютерном оборудовании. То есть в каких-то простых случаях можно и для работы использовать.
Развернул эту штуку у себя и попробовал:
# docker run -p 3000:3000 -v $(pwd)/data:/app/data dumbwareio/dumbassets:latest
Софт очень простой. Аутентификации нет, но веб морду можно закрыть четырёхзначным пинкодом. В программу можно добавлять устройства, указывать их основные характеристики, в том числе гарантийный срок и регулярные регламентные обслуживания.
Визуально выглядит неплохо, но как-то совсем простовато по возможностям. Даже тип валюты поменять нельзя. Для выстраивания структуры есть только тэги.
Может кто-то знает ещё подобный софт, только более продвинутый? Понятно, что эту функциональность обычно навешивают на полноценное ПО для инвентаризации и учёта оборудования, типа Glpi, Snipe-IT, Ralph и т.д. Но может есть что-то более простое и удобное именно для целей учёта оборудования, без всего остального в виде перемещений, договоров, лицензий, складов и т.д.
Больше интересно это для личного использования. Занести туда автомобиль, всю технику, в том числе с дачи. Там и расходники, и фильтра, и масла и т.д. Всё это периодически менять, чистить, проверять надо. Я характеристики своих компов, ноутов, мониторов, смартфонов тоже в текстовом виде держу, чтобы понимать, что у меня есть в наличии и что надо в перспективе обновлять. В большой семье нетривиальная задача всё держать в порядке и учёте. У меня только в семье в управлении 5 ноутов, 2 системных блока, 4 монитора, 6 смартфонов. Про инструмент вообще молчу, там позиций 20-25 будет. Уже даже и не помню, что у меня есть и где лежит. Надо всё записывать.
⇨ 🌐 Сайт / Исходники / Видеообзор / Демо
#управление
Когда гуглишь какие-то ошибки по Linux и сопутствующему ПО, очень часто попадаешь на сайт access.redhat.com, где есть решения. Но проблема в том, что без подписки ты не можешь посмотреть ответ, только текст ошибки. Это раздражает и расстраивает.
Раньше это не представляло большой проблемы, так как достаточно бесплатной подписки Red Hat Developer Subscription for Individuals. Я даже статью делал о том, как её получить. Не пользовался никакими возможностями этой подписки, кроме доступа к порталу со статьями.
Проблема в том, что подписку надо продлевать каждый год. После 2022 года из-за экспортных ограничений, которые ввело правительство США, сделать это стало невозможно. А если быть точным, то как раньше стало невозможно, но в целом возможно и я расскажу, как это сделать.
У меня уже была учётка в RedHat, поэтому расскажу, как сделать с уже существующей. Если будете делать новую, то сразу вводите те данные, что я расскажу.
Я включил VPN из США, залогинился в учётную запись и поменял адрес с телефоном. Просто открыл карту США и вбил первый попавшийся адрес с номером телефона. Мне пришло подтверждение моего почтового адреса на email. Подтвердил его. Без этого меня не пускали в новый ЛК, ссылаясь на ограничения.
После этого пошёл по адресу developers.redhat.com/register, но не стал регистрировать, а вместо этого справа вверху нажал Login и зашёл под своей учёткой. У меня открылась форма регистрации с уже заполненными из профиля полями. И в конце не был отмечен чекбокс I have read and agree to the Red Hat Developer Subscriptions for Individuals. Отметил его и завершил регистрацию.
Собственно, всё. После этого в личном кабинете у меня появилась свежая подписка Red Hat Developer Subscription for Individuals. Далее я прошёл в их новую консоль для управления всем и вся console.redhat.com. Там уже не помню, что конкретно сделал, но подписка активировалась и добавилась ещё одна - Red Hat Beta Access.
Сначала доступ к материалам не открылся. Я расстроился. Несколько раз выходил и заходил снова в учётку, чистил кэш и куки. Почему-то ничего не помогало. В итоге открыл браузер в инкогнито, ещё раз залогинился и все материалы открылись.
С этой подпиской вам дают 16 лицензий на использование ОС RHEL. Мне и даром это не нужно. Подписку сделал исключительно, чтобы в гугле в результатах поиска иметь возможность прочитать материал. Несмотря на все ИИ, материалы с access.redhat.com представляют определённую ценность. Не раз там находил решения своих проблем, поэтому всегда старался настроить подписку.
Нигде не видел информации о том, как получить сейчас эту подписку. Интуитивно сделал всё сам, пробуя разные варианты. За пару часов разобрался.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
Раньше это не представляло большой проблемы, так как достаточно бесплатной подписки Red Hat Developer Subscription for Individuals. Я даже статью делал о том, как её получить. Не пользовался никакими возможностями этой подписки, кроме доступа к порталу со статьями.
Проблема в том, что подписку надо продлевать каждый год. После 2022 года из-за экспортных ограничений, которые ввело правительство США, сделать это стало невозможно. А если быть точным, то как раньше стало невозможно, но в целом возможно и я расскажу, как это сделать.
У меня уже была учётка в RedHat, поэтому расскажу, как сделать с уже существующей. Если будете делать новую, то сразу вводите те данные, что я расскажу.
Я включил VPN из США, залогинился в учётную запись и поменял адрес с телефоном. Просто открыл карту США и вбил первый попавшийся адрес с номером телефона. Мне пришло подтверждение моего почтового адреса на email. Подтвердил его. Без этого меня не пускали в новый ЛК, ссылаясь на ограничения.
После этого пошёл по адресу developers.redhat.com/register, но не стал регистрировать, а вместо этого справа вверху нажал Login и зашёл под своей учёткой. У меня открылась форма регистрации с уже заполненными из профиля полями. И в конце не был отмечен чекбокс I have read and agree to the Red Hat Developer Subscriptions for Individuals. Отметил его и завершил регистрацию.
Собственно, всё. После этого в личном кабинете у меня появилась свежая подписка Red Hat Developer Subscription for Individuals. Далее я прошёл в их новую консоль для управления всем и вся console.redhat.com. Там уже не помню, что конкретно сделал, но подписка активировалась и добавилась ещё одна - Red Hat Beta Access.
Сначала доступ к материалам не открылся. Я расстроился. Несколько раз выходил и заходил снова в учётку, чистил кэш и куки. Почему-то ничего не помогало. В итоге открыл браузер в инкогнито, ещё раз залогинился и все материалы открылись.
С этой подпиской вам дают 16 лицензий на использование ОС RHEL. Мне и даром это не нужно. Подписку сделал исключительно, чтобы в гугле в результатах поиска иметь возможность прочитать материал. Несмотря на все ИИ, материалы с access.redhat.com представляют определённую ценность. Не раз там находил решения своих проблем, поэтому всегда старался настроить подписку.
Нигде не видел информации о том, как получить сейчас эту подписку. Интуитивно сделал всё сам, пробуя разные варианты. За пару часов разобрался.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
Открытый практикум Linux by Rebrain: Права доступа в Linux
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉Регистрация
Время проведения:
18 июня (среда) в 20:00 по МСК
Программа практикума:
▪️ Файлы и каталоги
▫️ Umask
▪️ ACL
Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в компании VK, входит в топ 3 лучших преподавателей образовательных порталов. 13+ лет опыта работы с ОС Linux и 11+ лет опыта преподавания.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFHLuDP6
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉Регистрация
Время проведения:
18 июня (среда) в 20:00 по МСК
Программа практикума:
▪️ Файлы и каталоги
▫️ Umask
▪️ ACL
Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в компании VK, входит в топ 3 лучших преподавателей образовательных порталов. 13+ лет опыта работы с ОС Linux и 11+ лет опыта преподавания.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFHLuDP6
Существует известный сервис Ngrok для публикации веб приложений без прямого доступа к ним из интернета. Сервис выступает условно как публичный обратный прокси для вашего проекта. У него есть аналоги - localtunnel и Cloudflare Argo Tunnel. На днях в Яндексе вбил Ngrok, хотел освежить о нём информацию, и тут же первой строкой мне выскочила реклама аналогичного российского сервиса cloudpub. У него есть бесплатный тарифный план, так что решил попробовать.
Кратко поясню, как эти сервисы работают. Допустим, вы запускаете где-то у себя в локальном окружении какой-то веб сервер, например Nginx. Для него нет никаких пробросов портов, он никак не опубликован в интернет. А вы хотите, чтобы из интернета кто-то на него попадал. Например, это ваш личный Proxmox, у вас серый IP от провайдера, вы не хотите настраивать VPN, но хотите попадать в веб интерфейс откуда угодно.
Для этого вы регистрируетесь в сервисе, скачиваете к себе на сервер их клиент, запускаете его. И дальше через личный кабинет настраиваете публикацию вашего локального веб сервиса, куда вы поставили этого клиента. Получаете какой-то URL на временном домене или подключаете свой. И по этому урлу заходите через интернет на свой сервис. Плюс, этот сервис обычно поддерживает дополнительную функциональность в виде TLS сертификатов, дополнительной аутентификации и т.д. Всё это довольно удобно и пользуется спросом как в корпоративном сегменте, так и у продвинутых домашних пользователей.
В cloudpub всё примерно так же. Зарегистрировался на сайте, достаточно только email. Телефон или что-то ещё не нужно. В личном кабинете сразу же открывается инструкция, как пользоваться:
1️⃣ Скачиваешь на машину клиент. Поддерживаются клиенты под Windows, Linux, macOS, либо универсальный в Docker. Есть как с GUI, так и полностью консольные.
2️⃣ Распаковываешь клиент, проходишь аутентификацию:
3️⃣ Публикуешь веб сервис, который тут крутится:
Получаешь ссылку на случайный поддомен на базе cloudpub.ru.
4️⃣ В личном кабинете видно эту публикацию. Её можно изменить: поменять поддомен, включить дополнительную аутентификацию, добавить какие-то заголовки к HTTP запросам.
Это я описал работу бесплатного тарифного плана, который автоматом подключается после регистрации. В целом всё просто и удобно. Нигде не столкнулся с какими-то проблемами. Отмечу, что сервис мне незнаком, увидел впервые. Автора или компанию, которая его поддерживает, тоже не знаю. Используйте на свой страх и риск. Код клиента, кстати, открыт. Сделан на базе rathole.
Сразу предупрежу, не надо писать, что это реклама и т.д. У меня никто не заказывал никакую рекламу. Первый раз увидел сервис и попробовал. Почему-то когда я обозреваю какие-то иностранные сервисы, никто не пишет, что это реклама. Стоит написать про что-то отечественное, так сразу появляются претензии, что я что-то рекламирую. Вся заказная реклама публикуется с маркировкой в соответствии с законом о рекламе. Без исключений. Всё, что без отметок, это моя личная инициатива. За всё время ведения канала не было ни одного исключения.
#webserver #отечественное
Кратко поясню, как эти сервисы работают. Допустим, вы запускаете где-то у себя в локальном окружении какой-то веб сервер, например Nginx. Для него нет никаких пробросов портов, он никак не опубликован в интернет. А вы хотите, чтобы из интернета кто-то на него попадал. Например, это ваш личный Proxmox, у вас серый IP от провайдера, вы не хотите настраивать VPN, но хотите попадать в веб интерфейс откуда угодно.
Для этого вы регистрируетесь в сервисе, скачиваете к себе на сервер их клиент, запускаете его. И дальше через личный кабинет настраиваете публикацию вашего локального веб сервиса, куда вы поставили этого клиента. Получаете какой-то URL на временном домене или подключаете свой. И по этому урлу заходите через интернет на свой сервис. Плюс, этот сервис обычно поддерживает дополнительную функциональность в виде TLS сертификатов, дополнительной аутентификации и т.д. Всё это довольно удобно и пользуется спросом как в корпоративном сегменте, так и у продвинутых домашних пользователей.
В cloudpub всё примерно так же. Зарегистрировался на сайте, достаточно только email. Телефон или что-то ещё не нужно. В личном кабинете сразу же открывается инструкция, как пользоваться:
1️⃣ Скачиваешь на машину клиент. Поддерживаются клиенты под Windows, Linux, macOS, либо универсальный в Docker. Есть как с GUI, так и полностью консольные.
# wget https://cloudpub.ru/download/stable/clo-1.7.0-stable-linux-x86_64.tar.gz
2️⃣ Распаковываешь клиент, проходишь аутентификацию:
# tar xzvf clo-1.7.0-stable-linux-x86_64.tar.gz
# ./clo login
3️⃣ Публикуешь веб сервис, который тут крутится:
# ./clo publish http 80
Получаешь ссылку на случайный поддомен на базе cloudpub.ru.
4️⃣ В личном кабинете видно эту публикацию. Её можно изменить: поменять поддомен, включить дополнительную аутентификацию, добавить какие-то заголовки к HTTP запросам.
Это я описал работу бесплатного тарифного плана, который автоматом подключается после регистрации. В целом всё просто и удобно. Нигде не столкнулся с какими-то проблемами. Отмечу, что сервис мне незнаком, увидел впервые. Автора или компанию, которая его поддерживает, тоже не знаю. Используйте на свой страх и риск. Код клиента, кстати, открыт. Сделан на базе rathole.
Сразу предупрежу, не надо писать, что это реклама и т.д. У меня никто не заказывал никакую рекламу. Первый раз увидел сервис и попробовал. Почему-то когда я обозреваю какие-то иностранные сервисы, никто не пишет, что это реклама. Стоит написать про что-то отечественное, так сразу появляются претензии, что я что-то рекламирую. Вся заказная реклама публикуется с маркировкой в соответствии с законом о рекламе. Без исключений. Всё, что без отметок, это моя личная инициатива. За всё время ведения канала не было ни одного исключения.
#webserver #отечественное
Насколько мне известно, у Zabbix до сих пор нет стандартного шаблона для мониторинга за временем оплаты домена. Про крайней мере мне такой неизвестен. Если он уже есть и я его упустил, прошу подсказать.
В разное время я реализовывал различные способы решения этой задачи. Все они один за одним собирались в статью на сайте:
⇨ Мониторинг времени делегирования домена в zabbix
Все способы, описанные там, актуальны и работают. Основное их неудобство - реализация через скрипты, от чего уже давно хочется уйти, потому что неудобно ходить в консоль и править там список доменов. Можно собрать простенький пайплайн для этого, но это тоже перебор для такой простой задачи.
Я её однажды реализовал полностью в шаблоне без скриптов с помощью внешнего сервиса Whois API и его бесплатного тарифа. В принципе, вариант рабочий, но не всегда удобно регистрироваться во внешнем сервисе, получать от него токен и в целом зависеть от его доступности.
Прикинул, как можно сделать так же удобно, реализовав всю логику только в шаблоне Zabbix, в том числе в нём же в макросах вести список доменов, но при этом без внешнего сервиса. Решил для этого воспользоваться готовым экспортером для Prometheus. Он удобен тем, что отдаёт метрики по HTTP, а значит их можно забирать заббиксом напрямую через его HTTP Агент.
Рассказываю по шагам, как всё настроил.
1️⃣ Поднимаю на любой своей машине в докере domain_exporter. Можно тут же на сервере Zabbix.
2️⃣ В шаблоне Zabbix создаю правило обнаружения с любым типом. Для примера взял тип Внутренний Zabbix и ключ zabbix[boottime]. Значения этого ключа нам не нужны, так как мы их сразу же будем преобразовывать.
3️⃣ В правиле обнаружения настроил предобработку типа JavaScript с таким кодом:
Берём список доменов из макроса
Это формат, который принимают прототипы айтемов и триггеров.
4️⃣ Создал в шаблоне макросы:
◽️
◽️
◽️
◽️
5️⃣ Создал прототип айтема с типом HTTP Agent. В качестве урла указал
target ⇨ {#DOMAIN}
То есть итоговый урл для получения данных будет такой: http://10.30.52.9:9222/probe?target={#DOMAIN}. А если развернуть lld-макрос, то такой: http://10.30.52.9:9222/probe?target=serveradmin.ru.
6️⃣ В прототипе айтема сделал предобработку:
Шаблон Prometheus ⇨ domain_expiry_days
Так как у нас данные поступают в формате Prometheus, с помощью этой предобработки мы сразу получаем данные о времени оплаты в формате целого числа.
7️⃣ В это же правило автообнаружения добавил 2 триггера.
На выходе мы имеем шаблон для мониторинга за оплатой доменов, где все настройки можно выполнять в веб интерфейсе Zabbix Server через макросы. Не нужны никакие скрипты на хостах. Единственное, что нужно сделать на сервере - запустить экспортер от Prometheus и убедиться, что с Zabbix Server есть к нему доступ.
Решение придумал и реализовал полностью сам. Не исследовал, что уже есть готового на эту тему. Мне видится такая реализация вполне удобной и функциональной. Если кто-то знает решение удобнее без скриптов, поделитесь информацией.
Шаблон публикую отдельно следующей публикацией. Проверял на версии Zabbix 7.0. Необходимо его импортировать на сервер и заполнить макросы либо в самом шаблоне, либо переопределить их после прикрепления к любому хосту.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#zabbix
В разное время я реализовывал различные способы решения этой задачи. Все они один за одним собирались в статью на сайте:
⇨ Мониторинг времени делегирования домена в zabbix
Все способы, описанные там, актуальны и работают. Основное их неудобство - реализация через скрипты, от чего уже давно хочется уйти, потому что неудобно ходить в консоль и править там список доменов. Можно собрать простенький пайплайн для этого, но это тоже перебор для такой простой задачи.
Я её однажды реализовал полностью в шаблоне без скриптов с помощью внешнего сервиса Whois API и его бесплатного тарифа. В принципе, вариант рабочий, но не всегда удобно регистрироваться во внешнем сервисе, получать от него токен и в целом зависеть от его доступности.
Прикинул, как можно сделать так же удобно, реализовав всю логику только в шаблоне Zabbix, в том числе в нём же в макросах вести список доменов, но при этом без внешнего сервиса. Решил для этого воспользоваться готовым экспортером для Prometheus. Он удобен тем, что отдаёт метрики по HTTP, а значит их можно забирать заббиксом напрямую через его HTTP Агент.
Рассказываю по шагам, как всё настроил.
var domains = '{$DOMAINS}'.split(/\s+/);
var data = [];
for (var i = 0; i < domains.length; i++) {
data.push({ "{#DOMAIN}": domains[i] });
}
return JSON.stringify({ data: data });
Берём список доменов из макроса
{$DOMAINS}
и преобразуем их в строку:{
"data": [
{ "{#DOMAIN}": "serveradmin.ru" },
{ "{#DOMAIN}": "example.com" }
]
}
Это формат, который принимают прототипы айтемов и триггеров.
◽️
{$DOMAINS}
= serveradmin.ru example.com # разделитель доменов - пробел;◽️
{$PROM_URL}
= http://10.30.52.9:9222/probe # адрес экспортера;◽️
{$WARN_DAYS}
= 30 # порог в днях для триггера со статусом предупреждение;◽️
{$CRIT_DAYS}
= 5 # порог в днях для триггера со статусом критический.{$PROM_URL}
, а для передачи имени домена использовал поля запроса:target ⇨ {#DOMAIN}
То есть итоговый урл для получения данных будет такой: http://10.30.52.9:9222/probe?target={#DOMAIN}. А если развернуть lld-макрос, то такой: http://10.30.52.9:9222/probe?target=serveradmin.ru.
Шаблон Prometheus ⇨ domain_expiry_days
Так как у нас данные поступают в формате Prometheus, с помощью этой предобработки мы сразу получаем данные о времени оплаты в формате целого числа.
На выходе мы имеем шаблон для мониторинга за оплатой доменов, где все настройки можно выполнять в веб интерфейсе Zabbix Server через макросы. Не нужны никакие скрипты на хостах. Единственное, что нужно сделать на сервере - запустить экспортер от Prometheus и убедиться, что с Zabbix Server есть к нему доступ.
Решение придумал и реализовал полностью сам. Не исследовал, что уже есть готового на эту тему. Мне видится такая реализация вполне удобной и функциональной. Если кто-то знает решение удобнее без скриптов, поделитесь информацией.
Шаблон публикую отдельно следующей публикацией. Проверял на версии Zabbix 7.0. Необходимо его импортировать на сервер и заполнить макросы либо в самом шаблоне, либо переопределить их после прикрепления к любому хосту.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Сталкиваетесь с проблемами использования памяти в Linux? Хотите научиться оптимизировать работу системы и улучшить производительность?
🚀 Присоединяйтесь к открытому уроку 16 июня в 20:00 МСК, где мы разберем, как работает память в Linux. Вы узнаете, как управлять физической памятью, кэшем и подкачкой, а также как интерпретировать данные из
Понимание работы dirty pages и swap поможет вам диагностировать проблемы с производительностью и научит оптимизировать систему при нехватке ресурсов. Эти знания крайне полезны для системных администраторов, инженеров и технических специалистов.
⭐️ Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов.
Урок пройдет в преддверие старта курса «Administrator Linux. Professional». Все участники урока получат скидку на обучение.
👉 Регистрируйтесь для участия: https://clck.ru/3MZuND
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚀 Присоединяйтесь к открытому уроку 16 июня в 20:00 МСК, где мы разберем, как работает память в Linux. Вы узнаете, как управлять физической памятью, кэшем и подкачкой, а также как интерпретировать данные из
/proc/meminfo
и использовать инструменты, такие как top
, free
и vmstat
для мониторинга памяти.Понимание работы dirty pages и swap поможет вам диагностировать проблемы с производительностью и научит оптимизировать систему при нехватке ресурсов. Эти знания крайне полезны для системных администраторов, инженеров и технических специалистов.
⭐️ Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов.
Урок пройдет в преддверие старта курса «Administrator Linux. Professional». Все участники урока получат скидку на обучение.
👉 Регистрируйтесь для участия: https://clck.ru/3MZuND
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Для Windows существует множество программ для управления трафиком, как платные, так и бесплатные. Про какие-то я ранее сам писал. Например, Portmaster. Она бесплатна и функциональна, но довольно тяжёлая. На момент написания интерфейс управления был на Electron. Собирались переписать. Сейчас глянул, но он всё там же.
Есть и другого рода программы, максимально лёгкие и простые. Наглядный пример - Simplewall. Это обёртка над Windows Filtering Platform (WFP), то есть на уровень ниже, чем сам Windows Firewall. Программа ведёт свои правила через API к WFP.
Промежуточным и наиболее универсальным вариантом между двумя описанными выше является бесплатная программа Windows Firewall Control. Она является более функциональной и удобной обёрткой над встроенным Windows Firewall и оперирует его правилами. Программа небольшая, весит всего 3,5 Мб!
📌 Основная функциональность Windows Firewall Control:
◽️встроенный русский язык, перевод хорошего качества;
◽️разные режимы фильтрации, от между всё запрещено, до всё разрешено с промежуточными вариантами;
◽️уведомления о работе файрвола, к примеру, если всё запрещено, о запрете будут всплывать уведомления;
◽️создание временных правил с установленным сроком жизни, либо до перезагрузки;
◽️свой компактный интерфейс управления правилами встроенного файрвола с возможностью быстрого создания правил, например, выбрав просто окно с программой, для которой надо создать правило;
◽️просмотр журнала работы файрвола;
◽️работает со всей линейкой Windows, в том числе серверными версиями.
Ну и многие другие возможности. Все не стал перечислять. В целом программа удобная и функциональная. На мой взгляд оптимальный вариант для управления правилами файрвола. Лезть в стандартную оснастку и создавать там правила лично мне не нравится. Интерфейс неудобен, список неуинтуитивен. Быстро понять, что и как тут настроено, затруднительно.
WFC решает эту проблему, не добавляя лишних сущностей к тому, что уже есть в системе. То есть не создаёт ещё один файрвол, а использует имеющийся.
⇨ 🌐 Сайт
#windows #firewall
Есть и другого рода программы, максимально лёгкие и простые. Наглядный пример - Simplewall. Это обёртка над Windows Filtering Platform (WFP), то есть на уровень ниже, чем сам Windows Firewall. Программа ведёт свои правила через API к WFP.
Промежуточным и наиболее универсальным вариантом между двумя описанными выше является бесплатная программа Windows Firewall Control. Она является более функциональной и удобной обёрткой над встроенным Windows Firewall и оперирует его правилами. Программа небольшая, весит всего 3,5 Мб!
📌 Основная функциональность Windows Firewall Control:
◽️встроенный русский язык, перевод хорошего качества;
◽️разные режимы фильтрации, от между всё запрещено, до всё разрешено с промежуточными вариантами;
◽️уведомления о работе файрвола, к примеру, если всё запрещено, о запрете будут всплывать уведомления;
◽️создание временных правил с установленным сроком жизни, либо до перезагрузки;
◽️свой компактный интерфейс управления правилами встроенного файрвола с возможностью быстрого создания правил, например, выбрав просто окно с программой, для которой надо создать правило;
◽️просмотр журнала работы файрвола;
◽️работает со всей линейкой Windows, в том числе серверными версиями.
Ну и многие другие возможности. Все не стал перечислять. В целом программа удобная и функциональная. На мой взгляд оптимальный вариант для управления правилами файрвола. Лезть в стандартную оснастку и создавать там правила лично мне не нравится. Интерфейс неудобен, список неуинтуитивен. Быстро понять, что и как тут настроено, затруднительно.
WFC решает эту проблему, не добавляя лишних сущностей к тому, что уже есть в системе. То есть не создаёт ещё один файрвол, а использует имеющийся.
⇨ 🌐 Сайт
#windows #firewall
К моим заметкам на тему бесплатных программ для бэкапа Windows систем постоянно упоминали Iperius Backup. Она же упоминается и в комментариях к статье, где все подобные программы собраны в одном месте. Никогда не пользовался этой программой, так что решил посмотреть.
У программы есть несколько редакций, в том числе полностью бесплатная. Основное её ограничение в том, что может бэкапить только директории и файлы, а складывать их локально или на сетевые диски. Никаких тебе образов дисков, восстановления системы, бэкапов на S3 и т.д. Это только в платных редакциях.
Программа на вид добротная, довольно старая, но развивается и по сей день. Нашёл даже материалы, как её скрещивают с Zabbix для мониторинга бэкапов на множестве серверов и компьютеров. Идея мониторинга в том, что на PowerShell пишется автообнаружение текстовых логов заданий и на основе их анализа передаётся информация в Zabbix Server.
📌 Перечислю основные возможности бесплатной версии:
▪️полный и инкрементный бэкап директорий и файлов с автоматическим удалением старых копий;
▪️шифрование и zip сжатие бэкапов;
▪️расписание и возможность без ограничения по количеству создавать задания;
▪️умеет выполнять команды или внешние скрипты до или после бэкапа по заданным условиям, например, если размер бэкапа получился меньше заданного;
▪️умеет выстраивать цепочки выполнения бэкапов, запускать следующий после успешного предыдущего, удобно для серверов;
▪️результат работы заданий пишет в подробные лог-файлы;
▪️аутентификация на сетевых ресурсах;
▪️поддержка серверных версий Windows;
▪️уведомления на email с расширенной настройкой условий, например, отправить уведомление, если бэкап меньше определённого размера или выполнялся дольше заданного интервала.
В целом, ничего особенного, кроме настроек выполнения внешних скриптов и уведомлений. Там нетипично много настроек для бесплатной версии.
С помощью Iperius Backup можно настроить в фоне бэкап пользовательских данных на их компьютерах куда-то на сетевой диск. Причём для каждого пользователя можно сделать отдельную директорию, куда Iperius Backup будет проходить аутентификацию по заданным учётным данным. На что-то большее она не способна в бесплатной редакции.
⇨ 🌐 Сайт
Среди подобных решений из знакомых мне, наиболее функциональной и удобной является Hasleo Backup Suite Free. Для своих нужд лично я использую Veeam Agent for Windows or Linux Free. Но там в плане функциональности бесплатной версии всё грустно, хотя лично мне хватает. Я бэкаплю разом всю систему. Есть ещё похожая программа Cobian Backup, но на неё не раз видел негативные отзывы, что зависает, или не восстанавливает после бэкапа. Плюс, она не развивается, а на сайте пишут "Слава Украине! Долой рашистов и Z-орков!". Так что от использования я бы воздержался.
#windows #backup
У программы есть несколько редакций, в том числе полностью бесплатная. Основное её ограничение в том, что может бэкапить только директории и файлы, а складывать их локально или на сетевые диски. Никаких тебе образов дисков, восстановления системы, бэкапов на S3 и т.д. Это только в платных редакциях.
Программа на вид добротная, довольно старая, но развивается и по сей день. Нашёл даже материалы, как её скрещивают с Zabbix для мониторинга бэкапов на множестве серверов и компьютеров. Идея мониторинга в том, что на PowerShell пишется автообнаружение текстовых логов заданий и на основе их анализа передаётся информация в Zabbix Server.
📌 Перечислю основные возможности бесплатной версии:
▪️полный и инкрементный бэкап директорий и файлов с автоматическим удалением старых копий;
▪️шифрование и zip сжатие бэкапов;
▪️расписание и возможность без ограничения по количеству создавать задания;
▪️умеет выполнять команды или внешние скрипты до или после бэкапа по заданным условиям, например, если размер бэкапа получился меньше заданного;
▪️умеет выстраивать цепочки выполнения бэкапов, запускать следующий после успешного предыдущего, удобно для серверов;
▪️результат работы заданий пишет в подробные лог-файлы;
▪️аутентификация на сетевых ресурсах;
▪️поддержка серверных версий Windows;
▪️уведомления на email с расширенной настройкой условий, например, отправить уведомление, если бэкап меньше определённого размера или выполнялся дольше заданного интервала.
В целом, ничего особенного, кроме настроек выполнения внешних скриптов и уведомлений. Там нетипично много настроек для бесплатной версии.
С помощью Iperius Backup можно настроить в фоне бэкап пользовательских данных на их компьютерах куда-то на сетевой диск. Причём для каждого пользователя можно сделать отдельную директорию, куда Iperius Backup будет проходить аутентификацию по заданным учётным данным. На что-то большее она не способна в бесплатной редакции.
⇨ 🌐 Сайт
Среди подобных решений из знакомых мне, наиболее функциональной и удобной является Hasleo Backup Suite Free. Для своих нужд лично я использую Veeam Agent for Windows or Linux Free. Но там в плане функциональности бесплатной версии всё грустно, хотя лично мне хватает. Я бэкаплю разом всю систему. Есть ещё похожая программа Cobian Backup, но на неё не раз видел негативные отзывы, что зависает, или не восстанавливает после бэкапа. Плюс, она не развивается, а на сайте пишут "Слава Украине! Долой рашистов и Z-орков!". Так что от использования я бы воздержался.
#windows #backup