На днях писал о том, что Elastic, как и многие другие, ограничил доступ к своим репозиториям с российских IP. Но решение очень простое. Копии репозиториев поднял Яндекс.
Для установки Elasticsearch и остальных продуктов Elastic, можно использовать репозиторий https://mirror.yandex.ru/mirrors. Пример конфига для репозитроия 8-й версии:
К сожалению, не увидел там rpm репозитория, только deb. Конкретно для меня это не критично, так как использую теперь везде Debian.
В разделе mirrors яндексовского зеркала много в том числе санкционного софта. Я как-то вообще не замечал его существования. Всегда использовал это зеркало только для дистрибутивов. А там оказывается копии реп для docker, ceph, kubernetes и т.д. есть.
Продукты Hashicorp тот же Яндекс поместил в своё зеркало Yandex Cloud -https://hashicorp-releases.website.yandexcloud.net/ Почему-то отдельно положили, а не на mirror.yandex.ru.
Для установки Elasticsearch и остальных продуктов Elastic, можно использовать репозиторий https://mirror.yandex.ru/mirrors. Пример конфига для репозитроия 8-й версии:
deb [trusted=yes] https://mirror.yandex.ru/mirrors/elastic/8/ stable main
К сожалению, не увидел там rpm репозитория, только deb. Конкретно для меня это не критично, так как использую теперь везде Debian.
В разделе mirrors яндексовского зеркала много в том числе санкционного софта. Я как-то вообще не замечал его существования. Всегда использовал это зеркало только для дистрибутивов. А там оказывается копии реп для docker, ceph, kubernetes и т.д. есть.
Продукты Hashicorp тот же Яндекс поместил в своё зеркало Yandex Cloud -https://hashicorp-releases.website.yandexcloud.net/ Почему-то отдельно положили, а не на mirror.yandex.ru.
Делюсь с вами отличным сайтом для розыгрышей по IT тематике - https://geekprank.com. Меня очень повеселила идея и реализация. Сделано качественно и натурально.
На главной реализован интерфейс Windows XP с работающим браузером и некоторыми другими программами и элементами интерфейса. Если развернуть на весь экран, то не отличишь от реальной ОС. Даже музыку в Winamp можно выбирать и слушать. После того, как немного погуляешь по интерфейсу, всё падает в синий экран. А дальше загрузка биос, всякие ошибки и т.д.
Помимо пранка с Windows XP, там же есть ссылки на другие тематики. Мне с хакером понравился экран. Можно поприкалываться над кем-то.
#юмор
На главной реализован интерфейс Windows XP с работающим браузером и некоторыми другими программами и элементами интерфейса. Если развернуть на весь экран, то не отличишь от реальной ОС. Даже музыку в Winamp можно выбирать и слушать. После того, как немного погуляешь по интерфейсу, всё падает в синий экран. А дальше загрузка биос, всякие ошибки и т.д.
Помимо пранка с Windows XP, там же есть ссылки на другие тематики. Мне с хакером понравился экран. Можно поприкалываться над кем-то.
#юмор
Всем хорошо известен продукт Gitlab, который закрывает несколько базовых потребностей современной разработки: хранение кода, сборка и деплой, хранение образов. И всё это реализовано в единой платформе.
Обратной стороной этого удобства является высокие требования по железу, избыточный во многих случаях функционал, перегруженный, не слишком отзывчивый веб интерфейс.
Я хочу предложить на рассмотрение альтернативную сборку из отдельных компонентов, которые в сумме предоставляют такой же базовый функционал. Не хочу сказать, что это прямой аналог, но в некоторых простых ситуациях это может быть полноценная, но более лёгкая замена Gitlab.
Gitea - легковесная Open Source-система для управления Git-репозиториями, которую можно развернуть на своем сервере. Отличает её простота установки и настройки, низкие требования к производительности. В самом простом случае Gitea может использовать базу данных SQLite.
Drone CI - популярная система непрерывной интеграции, написанная на Go. Также отличается легковесностью (docker образ ~24Мб), простым синтаксисом yaml файлов для сборки. Легко интегрируется с любым git репозиторием и хранилищем docker образов. Отлично подходит для знакомства с ci/cd на основе docker контейнеров.
Docker Registry 2.0 - вариант локального registry от самой компании Docker. Тоже очень простой продукт с минимальными требованиями к железу. Размер docker контейнера, в котором он запускается 8Мб. При желании к нему можно установить веб интерфейс - docker-registry-ui.
Указанный набор программ связывается между собой в единую систему, обеспечивая базовый функционал по разработке и доставке софта на базе docker контейнеров. Drone CI расширяет функционал с помощью плагинов. Например, плагин для отправки уведомлений в telegram, запуска удалённых команд по ssh, выполнения webhook и т.д.
Если есть идеи, чем можно заменить одну из предложенных программ, предлагайте в комментариях. Я сделал акцент на легковесности и простоте установки, настройки.
Gitea - https://github.com/go-gitea/gitea
Drone - https://github.com/harness/drone
Registry 2.0 - https://hub.docker.com/_/registry
#docker #devops #git
Обратной стороной этого удобства является высокие требования по железу, избыточный во многих случаях функционал, перегруженный, не слишком отзывчивый веб интерфейс.
Я хочу предложить на рассмотрение альтернативную сборку из отдельных компонентов, которые в сумме предоставляют такой же базовый функционал. Не хочу сказать, что это прямой аналог, но в некоторых простых ситуациях это может быть полноценная, но более лёгкая замена Gitlab.
Gitea - легковесная Open Source-система для управления Git-репозиториями, которую можно развернуть на своем сервере. Отличает её простота установки и настройки, низкие требования к производительности. В самом простом случае Gitea может использовать базу данных SQLite.
Drone CI - популярная система непрерывной интеграции, написанная на Go. Также отличается легковесностью (docker образ ~24Мб), простым синтаксисом yaml файлов для сборки. Легко интегрируется с любым git репозиторием и хранилищем docker образов. Отлично подходит для знакомства с ci/cd на основе docker контейнеров.
Docker Registry 2.0 - вариант локального registry от самой компании Docker. Тоже очень простой продукт с минимальными требованиями к железу. Размер docker контейнера, в котором он запускается 8Мб. При желании к нему можно установить веб интерфейс - docker-registry-ui.
Указанный набор программ связывается между собой в единую систему, обеспечивая базовый функционал по разработке и доставке софта на базе docker контейнеров. Drone CI расширяет функционал с помощью плагинов. Например, плагин для отправки уведомлений в telegram, запуска удалённых команд по ssh, выполнения webhook и т.д.
Если есть идеи, чем можно заменить одну из предложенных программ, предлагайте в комментариях. Я сделал акцент на легковесности и простоте установки, настройки.
Gitea - https://github.com/go-gitea/gitea
Drone - https://github.com/harness/drone
Registry 2.0 - https://hub.docker.com/_/registry
#docker #devops #git
Есть отличная игра для изучения JavaScript
- http://play.elevatorsaga.com. На что я не люблю игры, потому что нет особо времени в них играть, но тут залип на 2 часа. Игра привлекает своей наглядностью.
Вам нужно запрограммировать работу лифта по перевозке людей. Задача будет выполнена, если вы перевезёте заданное количество людей в указанный промежуток времени. В каждом новом уровне добавляется сложность.
Все необходимые функции, объекты и свойства описаны в документации. Их немного, буквально все перед глазами. Я быстро выполнил первое задание и очень воодушевился. Над вторым уровнем уже сидел больше часа. Разбирался, пробовал разные варианты. Затягивает именно то, что ты закодил алгоритм, запустил и лифт на твоих глазах начинает ездить и собирать людей.
Не знаю, насколько такой тренажёр актуален для прокачивания навыка программирования на JS, но, как минимум, это интересно, в отличие от многих других тренажёров, что я встречал. Редко мне самому хотелось поиграть.
#игра #обучение
- http://play.elevatorsaga.com. На что я не люблю игры, потому что нет особо времени в них играть, но тут залип на 2 часа. Игра привлекает своей наглядностью.
Вам нужно запрограммировать работу лифта по перевозке людей. Задача будет выполнена, если вы перевезёте заданное количество людей в указанный промежуток времени. В каждом новом уровне добавляется сложность.
Все необходимые функции, объекты и свойства описаны в документации. Их немного, буквально все перед глазами. Я быстро выполнил первое задание и очень воодушевился. Над вторым уровнем уже сидел больше часа. Разбирался, пробовал разные варианты. Затягивает именно то, что ты закодил алгоритм, запустил и лифт на твоих глазах начинает ездить и собирать людей.
Не знаю, насколько такой тренажёр актуален для прокачивания навыка программирования на JS, но, как минимум, это интересно, в отличие от многих других тренажёров, что я встречал. Редко мне самому хотелось поиграть.
#игра #обучение
У многих организаций, причём не только бюджетных, на повестке стоит тема ухода от пакета Microsoft Office на что-то другое. Тема давно витает в воздухе, и я лично с ней сталкивался ещё задолго до событий этого года. Видел безуспешные попытки перехода на какой-то Open Source аналог. В итоге откатывались обратно, потому что в реальности возникает огромное множество незаметных сразу мелочей, которые тратят время и нервы сотрудников, а значит и несут расходы для организации. Зачастую дешевле просто купить Microsoft Office и не мучаться.
Сейчас ситуация изменилась и многие уже вынуждены на что-то переходить. Я давно слышал про отечественную систему МойОфис, но очень поверхностно. На тот момент, когда я им интересовался, его даже спокойно скачать нельзя было. Не было не то, что бесплатной версии, но даже дистрибутива в свободном доступе. Сейчас ситуация в корне изменилась. Даже сайт стал совсем другим. Частное лицо спокойно может скачать бесплатную версию МойОфис Стандартный для домашнего использования, что я и сделал. Не нужна даже регистрация. Есть в том числе и мобильная версия.
Понятное дело, что оценить офисный пакет не так просто. С ним надо плотно поработать, желательно на каких-то сложных документах. Все мои документы и таблицы нормально открылись. Обратил внимание, что МойОфис запускается и работает пошустрее, чем бесплатный аналог от OnlyOffice, который я хорошо знаю и кое-где использую. Там под капотом JavaScript. Что здесь - не знаю.
Посмотрел сайт компании. На текущий момент это большая организация с сотнями сотрудников. Есть живой блог на Хабре. Проводят вебинары, обучение, сертификацию. Помимо непосредственно редакторов у них есть продукт для организации совместной работы с документами через браузер на базе облака.
❓Мне интересно узнать от тех, кто реально работал с МойОфис, насколько он качественный и удобный? Интересны как оффлайн редакторы, так и онлайн. Тут тоже есть из чего выбирать и трудно однозначно сказать, какой продукт лучше. Для дома бесплатная версия мне показалась отличным вариантом. Небольшой дистрибутив (~80Мб), в составе только "Word" и "Excel". Лично мне больше ничего и не надо. Думаю многим может не хватить презентаций. Их в составе бесплатной версии нет :(
👎🏻 В завершении добавлю, что в худших традициях отечественного бизнеса, цен на сайте я не увидел. Не понятно, как я должен его сравнить с другими продуктами. Это наводит на мысли, что покупают его только по принуждению, когда выбор цены вообще не стоит.
Сайт - https://myoffice.ru
Хабр - https://habr.com/ru/company/ncloudtech/blog/
Реестр ПО - https://reestr.digital.gov.ru/reestr/301558/
#отечественное #офис
Сейчас ситуация изменилась и многие уже вынуждены на что-то переходить. Я давно слышал про отечественную систему МойОфис, но очень поверхностно. На тот момент, когда я им интересовался, его даже спокойно скачать нельзя было. Не было не то, что бесплатной версии, но даже дистрибутива в свободном доступе. Сейчас ситуация в корне изменилась. Даже сайт стал совсем другим. Частное лицо спокойно может скачать бесплатную версию МойОфис Стандартный для домашнего использования, что я и сделал. Не нужна даже регистрация. Есть в том числе и мобильная версия.
Понятное дело, что оценить офисный пакет не так просто. С ним надо плотно поработать, желательно на каких-то сложных документах. Все мои документы и таблицы нормально открылись. Обратил внимание, что МойОфис запускается и работает пошустрее, чем бесплатный аналог от OnlyOffice, который я хорошо знаю и кое-где использую. Там под капотом JavaScript. Что здесь - не знаю.
Посмотрел сайт компании. На текущий момент это большая организация с сотнями сотрудников. Есть живой блог на Хабре. Проводят вебинары, обучение, сертификацию. Помимо непосредственно редакторов у них есть продукт для организации совместной работы с документами через браузер на базе облака.
❓Мне интересно узнать от тех, кто реально работал с МойОфис, насколько он качественный и удобный? Интересны как оффлайн редакторы, так и онлайн. Тут тоже есть из чего выбирать и трудно однозначно сказать, какой продукт лучше. Для дома бесплатная версия мне показалась отличным вариантом. Небольшой дистрибутив (~80Мб), в составе только "Word" и "Excel". Лично мне больше ничего и не надо. Думаю многим может не хватить презентаций. Их в составе бесплатной версии нет :(
👎🏻 В завершении добавлю, что в худших традициях отечественного бизнеса, цен на сайте я не увидел. Не понятно, как я должен его сравнить с другими продуктами. Это наводит на мысли, что покупают его только по принуждению, когда выбор цены вообще не стоит.
Сайт - https://myoffice.ru
Хабр - https://habr.com/ru/company/ncloudtech/blog/
Реестр ПО - https://reestr.digital.gov.ru/reestr/301558/
#отечественное #офис
Ранее рассматривал локальную систему сбора статистики о посетителях сайта umami.is, которую условно можно назвать аналогом Яндекс.Метрики и Google.Analytics. Это неплохой продукт с хорошими отзывами. Собирает статистику с помощью небольшого js скрипта.
Есть похожий бесплатный аналог GoatCounter, который тоже можно развернуть у себя и собирать статистику крохотным js скриптом. Но у этого счётчика есть одна замечательная возможность - он умеет строить статистику на базе логов веб сервера в режиме онлайн. У него для этого есть импортёр, который постоянно запущен и следит за зименениями лога:
Я знаю, что анализаторов веб логов существует великое множество. Сам то я анализировал логи Apache на Freebsd еще лет 15 назад с помощью Webalizer и AWStats. Эти продукты и сейчас могут нормально работать, потому что формат логов не изменился. В данном случае GoatCounter представляет и ту, и другую возможность. Хочешь скриптом собирай, хочешь из логов инфу бери. Потом можно сравнить результат.
GoatCounter написан на Go, не имеет внешних зависимостей. Достаточно запустить бинарник в режиме сервера. Хранить данные может в SQLite или PostgreSQL.
Сайт - https://www.goatcounter.com
Исходники - https://github.com/arp242/goatcounter
#website
Есть похожий бесплатный аналог GoatCounter, который тоже можно развернуть у себя и собирать статистику крохотным js скриптом. Но у этого счётчика есть одна замечательная возможность - он умеет строить статистику на базе логов веб сервера в режиме онлайн. У него для этого есть импортёр, который постоянно запущен и следит за зименениями лога:
# goatcounter import -follow -format=combined \
-exclude=static -site='https://MYCODE.goatcounter.com' \
/var/log/nginx/access_log
Я знаю, что анализаторов веб логов существует великое множество. Сам то я анализировал логи Apache на Freebsd еще лет 15 назад с помощью Webalizer и AWStats. Эти продукты и сейчас могут нормально работать, потому что формат логов не изменился. В данном случае GoatCounter представляет и ту, и другую возможность. Хочешь скриптом собирай, хочешь из логов инфу бери. Потом можно сравнить результат.
GoatCounter написан на Go, не имеет внешних зависимостей. Достаточно запустить бинарник в режиме сервера. Хранить данные может в SQLite или PostgreSQL.
Сайт - https://www.goatcounter.com
Исходники - https://github.com/arp242/goatcounter
#website
На днях была задача по переносу обычного почтового сервера на базе Postfix. Как же мне он нравится за его простоту обслуживания. Существует огромное количество почтовых систем на базе различных программных компонентов, но лично я всегда предпочту классический Postfix в связке с Dovecot.
Задача переноса Postfix очень простая и состоит из двух этапов:
1️⃣ Перенос mysql базы с ящиками и некоторыми настройками доменов и алиасов.
2️⃣ Перенос непосредственно почты, которая в формате хранения maildir представляет из себя обычные файлы. По отдельному файлу на каждое письмо. Копируется обычным rsync.
Важно, что вы можете спокойно перенести почтовый сервер очень старой версии на полностью новую систему и новую версию Postfix. Я вообще не помню, чтобы у Postfix менялся формат конфига или базы mysql. Можно поставить самую свежую версию Postfix и вручную перенести с любого старого Linux сервера. И каких-то особых сложностей не возникнет. Не надо ломать голову, как безболезненно переехать. Сейчас у многих возникли потребности в смене ОС и подобная легкость переезда очень на руку.
Из основных плюсов Postfix, кроме тех, что я уже перечислил, отмечу ещё некоторые:
✅ Очень информативные логи. Прямо классический пример качественных логов. По ним всегда ясно, где и что произошло. Никакое письмо не потеряется. Всегда будет понятно, почему оно не доставлено и куда в итоге пропало.
✅ Не припоминаю каких-то серьезных критических уязвимостей.
✅ Нетребовательный к ресурсам. На практике у меня были сервера с архивами почты на 3-4 Тб для 50-150 пользователей. У некоторых ящики были по 50-100 Гб. Доступ к ящикам через Dovecot. Всё это без проблем работает на обычных HDD в RAID1 или RAID10. Даже на таких ящиках без каких-то внешних поисковых сервисов вполне сносно работает поиск по всему ящику.
✅ Простой бэкап и перенос данных.
✅ Куча инструкций по интеграции с внешними сервисами: антиспам, антивирус, dkim и т.д.
✅ Возможность гибкой настройки транспорта и редактирования писем. Например, менять тему на лету, отправлять копию писем на несколько ящиков, подменять отправителя и т.д. Я реализовывал авто удаление писем с определённо темой через заданное количество дней.
Тематические ссылки с моего сайта:
◽ Перенос почтового сервера postfix
◽ Защита почтового сервера postfix
◽ Установка и настройка postfix
◽ Очистка и обслуживание почтовой базы postfix
А вы какие почтовые сервера предпочитаете?
#mailserver #postfix
Задача переноса Postfix очень простая и состоит из двух этапов:
1️⃣ Перенос mysql базы с ящиками и некоторыми настройками доменов и алиасов.
2️⃣ Перенос непосредственно почты, которая в формате хранения maildir представляет из себя обычные файлы. По отдельному файлу на каждое письмо. Копируется обычным rsync.
Важно, что вы можете спокойно перенести почтовый сервер очень старой версии на полностью новую систему и новую версию Postfix. Я вообще не помню, чтобы у Postfix менялся формат конфига или базы mysql. Можно поставить самую свежую версию Postfix и вручную перенести с любого старого Linux сервера. И каких-то особых сложностей не возникнет. Не надо ломать голову, как безболезненно переехать. Сейчас у многих возникли потребности в смене ОС и подобная легкость переезда очень на руку.
Из основных плюсов Postfix, кроме тех, что я уже перечислил, отмечу ещё некоторые:
✅ Очень информативные логи. Прямо классический пример качественных логов. По ним всегда ясно, где и что произошло. Никакое письмо не потеряется. Всегда будет понятно, почему оно не доставлено и куда в итоге пропало.
✅ Не припоминаю каких-то серьезных критических уязвимостей.
✅ Нетребовательный к ресурсам. На практике у меня были сервера с архивами почты на 3-4 Тб для 50-150 пользователей. У некоторых ящики были по 50-100 Гб. Доступ к ящикам через Dovecot. Всё это без проблем работает на обычных HDD в RAID1 или RAID10. Даже на таких ящиках без каких-то внешних поисковых сервисов вполне сносно работает поиск по всему ящику.
✅ Простой бэкап и перенос данных.
✅ Куча инструкций по интеграции с внешними сервисами: антиспам, антивирус, dkim и т.д.
✅ Возможность гибкой настройки транспорта и редактирования писем. Например, менять тему на лету, отправлять копию писем на несколько ящиков, подменять отправителя и т.д. Я реализовывал авто удаление писем с определённо темой через заданное количество дней.
Тематические ссылки с моего сайта:
◽ Перенос почтового сервера postfix
◽ Защита почтового сервера postfix
◽ Установка и настройка postfix
◽ Очистка и обслуживание почтовой базы postfix
А вы какие почтовые сервера предпочитаете?
#mailserver #postfix
Захотелось с вами поделиться информацией о необычных неттопах, с которыми я лично хорошо знаком, так как их закупили в один из офисов, с которым я работал. До этого вообще не знал, что такие компы бывают и более нигде ничего подобного не видел.
Речь идёт о Мини ПК от Gigabite размером 100 мм x 105 мм со всторенным проектором и динамиками. Этот коробасик 10 на 10 см может работать без монитора. Ссылку привёл на конкретную модель, которую я наблюдал лично, вертел в руках, разбирал. Не знаю, есть ли сейчас что-то подобное в продаже. Просто делюсь информацией о необычной машинке.
Когда компы покупались, за проектор какой-то сильной доплаты не было, так что системники купили просто по совокупности технических характеристик. А проектор был в довесок, который специально никому нафиг не нужен был. Им и не пользовался никто. Удобство такого решения оценили только админы, так как эти системники можно было запустить и настроить вообще без монитора.
В общем и целом оказались очень удачные офисные компы. Внутри 16 Гб оперативной памяти, динамики, wifi, ssd диск. Все офисные задачи летают до сих пор, хотя компам лет по 5-6 уже, может даже больше. Шума от них почти нет, потребление энергии минимальное.
Если будете подбирать что-то компактное, обратите внимание на эту платформу. Хорошее решение.
#железо
Речь идёт о Мини ПК от Gigabite размером 100 мм x 105 мм со всторенным проектором и динамиками. Этот коробасик 10 на 10 см может работать без монитора. Ссылку привёл на конкретную модель, которую я наблюдал лично, вертел в руках, разбирал. Не знаю, есть ли сейчас что-то подобное в продаже. Просто делюсь информацией о необычной машинке.
Когда компы покупались, за проектор какой-то сильной доплаты не было, так что системники купили просто по совокупности технических характеристик. А проектор был в довесок, который специально никому нафиг не нужен был. Им и не пользовался никто. Удобство такого решения оценили только админы, так как эти системники можно было запустить и настроить вообще без монитора.
В общем и целом оказались очень удачные офисные компы. Внутри 16 Гб оперативной памяти, динамики, wifi, ssd диск. Все офисные задачи летают до сих пор, хотя компам лет по 5-6 уже, может даже больше. Шума от них почти нет, потребление энергии минимальное.
Если будете подбирать что-то компактное, обратите внимание на эту платформу. Хорошее решение.
#железо
Иногда возникает задача быстро удалить все таблицы в базе данных mysql, не удаляя саму базу данных. Доступ к базе через консоль. В общем случае удалить конкретную таблицу в базе db можно следующей командой:
Если таблиц немного, то можно поступить и так. Но если их много, то нужен какой-то другой способ. Можно изобрести или поискать какой-то готовый велосипед на bash. Я предлагаю вам свой 😁
Берём mysqldump и делаем дамп только структуры, добавляя информацию об удалении таблиц перед их созданием:
Теперь получить консольные команды на удаление всех таблиц базы данных проще простого. Грепаем получившийся дамп:
То есть выводим все строки, которые начинаются с DROP. Это как раз то, что нам нужно.
Далее можно либо взять только нужные строки с определёнными таблицами для удаления, либо сразу весь вывод отправить в консоль mysql и удалить все таблицы, оставив саму базу данных:
Не забудьте добавить авторизацию, если у вас она не настроена каким-то другим способом:
Таким простым способом, без скриптов, можно прямо в консоли сервера удалить все таблицы из базы данных mysql, не удаляя саму базу.
❓Может возникнуть вопрос, а почему не удалить всё же базу и не создать заново. Причин может быть несколько:
1️⃣ У вас нет прав на создание и удаление баз данных (наиболее частый случай).
2️⃣ Не помните точно параметры базы данных, не хочется вспоминать, искать, как создать новую базу данных с теми же параметрами, что стоят у текущей (мой случай).
Если у вас есть какое-то свое простое решение по удалению таблиц из базы, делитесь в комментариях.
#terminal #mysql
> use db;
> drop table00 table01, table02;
Если таблиц немного, то можно поступить и так. Но если их много, то нужен какой-то другой способ. Можно изобрести или поискать какой-то готовый велосипед на bash. Я предлагаю вам свой 😁
Берём mysqldump и делаем дамп только структуры, добавляя информацию об удалении таблиц перед их созданием:
# mysqldump --add-drop-table --no-data db
Теперь получить консольные команды на удаление всех таблиц базы данных проще простого. Грепаем получившийся дамп:
# mysqldump --add-drop-table --no-data db | grep ^DROP
То есть выводим все строки, которые начинаются с DROP. Это как раз то, что нам нужно.
Далее можно либо взять только нужные строки с определёнными таблицами для удаления, либо сразу весь вывод отправить в консоль mysql и удалить все таблицы, оставив саму базу данных:
# mysqldump --add-drop-table --no-data db | grep ^DROP | mysql db
Не забудьте добавить авторизацию, если у вас она не настроена каким-то другим способом:
# mysqldump -uuser -ppassword --add-drop-table --no-data db \
| grep ^DROP | mysql -uuser -ppassword db
Таким простым способом, без скриптов, можно прямо в консоли сервера удалить все таблицы из базы данных mysql, не удаляя саму базу.
❓Может возникнуть вопрос, а почему не удалить всё же базу и не создать заново. Причин может быть несколько:
1️⃣ У вас нет прав на создание и удаление баз данных (наиболее частый случай).
2️⃣ Не помните точно параметры базы данных, не хочется вспоминать, искать, как создать новую базу данных с теми же параметрами, что стоят у текущей (мой случай).
Если у вас есть какое-то свое простое решение по удалению таблиц из базы, делитесь в комментариях.
#terminal #mysql
Думаю все, кто используют PVE (Proxmox Virtual Environment) знают про PBS (Proxmox Backup Server). А если кто не знает, то настоятельно рекомендую познакомиться. Это отличное средство для бесплатных инкрементных бэкапов виртуальных машин с дедупликацией.
Хочу одну идею подкинуть, которая не претендует ни на что, но лично мне сразу в голову не пришла. У Proxmox есть встроенная система бэкапа виртуалок, но она не такая удобная, как PBS. Но даже если у вас один гипервизор и нет локально железа под бэкап виртуалок, а хочется инкрементов и дедупликации, то это не проблема.
Поставьте PBS тут же в виртуальную машину и бэкапьте VM локально на него. Это не будет бэкапом в полной мере, потому что очевидно, при потере хоста, потеряете всё. Но лично я при возможности стараюсь держать бэкапы не только где-то на стороне, но и локально, чтобы в случае проблем быстро развернуть.
Это актуально, когда готовится какое-то важное обновление и нужен на всякий случай полный образ виртуальной машины. Или шифровальщик пришёл и грохнул вам данные внутри VM. С локальной копии восстановите их максимально быстро.
Для этой истории достаточно в сервер воткнуть лишний HDD и использовать его под PBS. Или заранее спланировать диски под это дело. Оптимально при аренде дедика взять SSD под рабочие виртулаки и HDD под локальные бэкапы. Для самой VM под PBS достаточно выделить 2-4 ядра CPU и 4 GB оперативной памяти.
При переносе виртуалок этот же PBS можно подключить на новом хосте и восстановить виртуальные машины из бэкапов. Я так делал, когда переехать нужно было. Быстрее и удобнее, чем ручной перенос дампов VM с хоста на хост.
#proxmox #backup
Хочу одну идею подкинуть, которая не претендует ни на что, но лично мне сразу в голову не пришла. У Proxmox есть встроенная система бэкапа виртуалок, но она не такая удобная, как PBS. Но даже если у вас один гипервизор и нет локально железа под бэкап виртуалок, а хочется инкрементов и дедупликации, то это не проблема.
Поставьте PBS тут же в виртуальную машину и бэкапьте VM локально на него. Это не будет бэкапом в полной мере, потому что очевидно, при потере хоста, потеряете всё. Но лично я при возможности стараюсь держать бэкапы не только где-то на стороне, но и локально, чтобы в случае проблем быстро развернуть.
Это актуально, когда готовится какое-то важное обновление и нужен на всякий случай полный образ виртуальной машины. Или шифровальщик пришёл и грохнул вам данные внутри VM. С локальной копии восстановите их максимально быстро.
Для этой истории достаточно в сервер воткнуть лишний HDD и использовать его под PBS. Или заранее спланировать диски под это дело. Оптимально при аренде дедика взять SSD под рабочие виртулаки и HDD под локальные бэкапы. Для самой VM под PBS достаточно выделить 2-4 ядра CPU и 4 GB оперативной памяти.
При переносе виртуалок этот же PBS можно подключить на новом хосте и восстановить виртуальные машины из бэкапов. Я так делал, когда переехать нужно было. Быстрее и удобнее, чем ручной перенос дампов VM с хоста на хост.
#proxmox #backup
Каждый раз, когда речь заходит о брендовых системных блоках или серверах, возникает спор на тему того, зачем платить за брендовое железо x1.5-x2, если можно самому собрать из комплектующих и будет то же самое, только дешевле. Я всю свою профессиональную деятельность отстаиваю возможность купить брендовое железо. Доказываю и убеждаю. Оно в конечном счёте экономит деньги бизнеса, иначе бы просто не появилось.
Меня удивляет, когда сами технические специалисты не понимают такого простого вывода. Ладно бы обычные пользователи, им действительно может быть не очевидно, зачем покупать брендовый системник или сервер, если самосбор по характеристикам такой же, но в 2 раза дешевле. Но админы то как могут этого не понимать?
Гарантия и стандарты сборок мировых производителей компьютеров (таких как HP, Lenovo, Dell, Acer и т.д.) кратно выше любого сборщика компьютеров т.к. стоимость ошибки при больших объемах производства и поставках по всему миру очень высока, производится тщательное тестирование совместимости комплектующих (что отсутствует при штучной сборке) для сведения к минимуму отказов компьютеров и к осуществлению гарантии. Самостоятельная или локальная сборки не могут конкурировать по качеству и надежности собранного изделия.
Одной из полезных особенностей брендовых компов являются корпуса, которые часто собираются на основе принципа tool-less, то есть без инструмента. Чтобы разобрать корпус и выполнить модульную замену, не нужен вообще никакой инструмент. Все будет на защелках и задвижках. Это же очень удобно и практично в обслуживании.
С серверами разница по качеству ещё заметнее, чем с обычными компьютерами. Я вообще не могу припомнить ни одного случая, чтобы у меня полностью вышел из строя сервер HP или Dell, которые чаще всего покупаю. Может и было когда-то за 15 лет моей трудовой деятельности. Но даже не могу припомнить это событие. Материнку разок по гарантии менял, когда сервер периодически аварийно перезагружался, рейд-контроллер ломался. Пожалуй и всё.
❓А вы какое железо стараетесь брать, самосбор или известные бренды? Не касаемся пока текущей ситуации в РФ, так как я не знаю, что сейчас по наличию того или иного железа.
Когда то даже статью написал по мотивам одной из историй с сервером: Зачем нужен брендовый сервер?
#железо
Меня удивляет, когда сами технические специалисты не понимают такого простого вывода. Ладно бы обычные пользователи, им действительно может быть не очевидно, зачем покупать брендовый системник или сервер, если самосбор по характеристикам такой же, но в 2 раза дешевле. Но админы то как могут этого не понимать?
Гарантия и стандарты сборок мировых производителей компьютеров (таких как HP, Lenovo, Dell, Acer и т.д.) кратно выше любого сборщика компьютеров т.к. стоимость ошибки при больших объемах производства и поставках по всему миру очень высока, производится тщательное тестирование совместимости комплектующих (что отсутствует при штучной сборке) для сведения к минимуму отказов компьютеров и к осуществлению гарантии. Самостоятельная или локальная сборки не могут конкурировать по качеству и надежности собранного изделия.
Одной из полезных особенностей брендовых компов являются корпуса, которые часто собираются на основе принципа tool-less, то есть без инструмента. Чтобы разобрать корпус и выполнить модульную замену, не нужен вообще никакой инструмент. Все будет на защелках и задвижках. Это же очень удобно и практично в обслуживании.
С серверами разница по качеству ещё заметнее, чем с обычными компьютерами. Я вообще не могу припомнить ни одного случая, чтобы у меня полностью вышел из строя сервер HP или Dell, которые чаще всего покупаю. Может и было когда-то за 15 лет моей трудовой деятельности. Но даже не могу припомнить это событие. Материнку разок по гарантии менял, когда сервер периодически аварийно перезагружался, рейд-контроллер ломался. Пожалуй и всё.
❓А вы какое железо стараетесь брать, самосбор или известные бренды? Не касаемся пока текущей ситуации в РФ, так как я не знаю, что сейчас по наличию того или иного железа.
Когда то даже статью написал по мотивам одной из историй с сервером: Зачем нужен брендовый сервер?
#железо
Server Admin
Зачем нужен брендовый сервер? | serveradmin.ru
На днях произошла проблема с одним из серверов в ЦОД, которая разрешилась без потерь и последствий. По горячим следам решил поделиться опытом и немного порассуждать на актуальную для многих тему...
При настройке любой службы в Linux, которая пишет логи, надо обязательно следить за их ротацией. Типовая ситуация, когда логи забивают всё свободное место на диске, и сервак встаёт колом. Ротировать логи можно встроенной утилитой Linux - logrotate.
Для логов веб сайтов полезно включать ротацию не по заданному расписанию, а по размеру лог файла. Иногда случаются набеги ботов, которые могут раздуть логи до огромных размеров за несколько минут. Дождаться суточной ротации можно и не успеть. В этом случае полезно использовать следующий параметр logrotate:
Обычно люди ставят его и ожидают, что теперь логи будут автоматически ротироваться при достижении ими размера в 100 мегабайт. Ага, сейчас. Ничего подобного не произойдёт. По умолчанию logrotate запускается раз в сутки, поэтому он при всём желании не сможет следить за размером файла и ротировать его чаще, чем раз в сутки. Обычно за его запуск отвечает скрипт в директории /etc/cron.daily/logrotate.
Для того, чтобы logrotate мог проверять размер лог файла хотя бы раз в час, скрипт запуска надо перенести в директорию /etc/cron.hourly. А для более частой проверки, добавить его напрямую в cron с нужным интервалом запуска. Например, раз в 5 минут.
Допустим вы всё это сделали, но логи всё равно не будут ротироваться при достижении заданного размера. Понять, в чем же теперь проблема, не так просто. При запуске logrotate вы не увидите никаких ошибок. Он просто ничего не будет делать. Понять, в чём проблема, можно только при запуске в режиме отладки. Там вы увидите ошибку, если в этот день ротация уже была хотя бы раз.
Смысл тут в том, что logrotate сегодня уже произвел ротацию и создал архив лога с определенным именем и второй раз такой же файл он сделать не может. А маска имени файла при создании настроена в формате %Y%m%d. За эту маску отвечает параметр в /etc/logrotate.conf:
Самый простой вариант - это просто закомментировать этот параметр, тогда все архивы логов будут иметь следующую маску в файлах:
Если же вам хочется сохранить исходный формат лога для всех файлов, а для тех, что ротируются по размеру, настроить другую маску имени, используйте дополнительный параметр:
Формат имени архивного лога будет access.log.2022-04-26_15-1566819154.gz. Имена больше не будут дублироваться и logrotate сможет корректно запускать ротацию при достижении указанного размера файла.
Таким образом, чтобы настроить ротацию лог файла по достижении определенного размера, вам нужно:
1️⃣ Запускать через cron logrotate с достаточно высокой периодичностью, например раз в час или чаще.
2️⃣ Настроить маску файла для архива лога, чтобы она была уникальной в каждый момент запуска logrotate.
#logrotate #nginx #webserver
Для логов веб сайтов полезно включать ротацию не по заданному расписанию, а по размеру лог файла. Иногда случаются набеги ботов, которые могут раздуть логи до огромных размеров за несколько минут. Дождаться суточной ротации можно и не успеть. В этом случае полезно использовать следующий параметр logrotate:
size = 100M
Обычно люди ставят его и ожидают, что теперь логи будут автоматически ротироваться при достижении ими размера в 100 мегабайт. Ага, сейчас. Ничего подобного не произойдёт. По умолчанию logrotate запускается раз в сутки, поэтому он при всём желании не сможет следить за размером файла и ротировать его чаще, чем раз в сутки. Обычно за его запуск отвечает скрипт в директории /etc/cron.daily/logrotate.
Для того, чтобы logrotate мог проверять размер лог файла хотя бы раз в час, скрипт запуска надо перенести в директорию /etc/cron.hourly. А для более частой проверки, добавить его напрямую в cron с нужным интервалом запуска. Например, раз в 5 минут.
Допустим вы всё это сделали, но логи всё равно не будут ротироваться при достижении заданного размера. Понять, в чем же теперь проблема, не так просто. При запуске logrotate вы не увидите никаких ошибок. Он просто ничего не будет делать. Понять, в чём проблема, можно только при запуске в режиме отладки. Там вы увидите ошибку, если в этот день ротация уже была хотя бы раз.
destination /var/log/nginx/access.log.20220426.gz already exists, skipping rotation
Смысл тут в том, что logrotate сегодня уже произвел ротацию и создал архив лога с определенным именем и второй раз такой же файл он сделать не может. А маска имени файла при создании настроена в формате %Y%m%d. За эту маску отвечает параметр в /etc/logrotate.conf:
dateext
Самый простой вариант - это просто закомментировать этот параметр, тогда все архивы логов будут иметь следующую маску в файлах:
access.log.1.gz
access.log.2.gz
access.log.3.gz
Если же вам хочется сохранить исходный формат лога для всех файлов, а для тех, что ротируются по размеру, настроить другую маску имени, используйте дополнительный параметр:
dateformat -%Y-%m-%d_%H-%s
Формат имени архивного лога будет access.log.2022-04-26_15-1566819154.gz. Имена больше не будут дублироваться и logrotate сможет корректно запускать ротацию при достижении указанного размера файла.
Таким образом, чтобы настроить ротацию лог файла по достижении определенного размера, вам нужно:
1️⃣ Запускать через cron logrotate с достаточно высокой периодичностью, например раз в час или чаще.
2️⃣ Настроить маску файла для архива лога, чтобы она была уникальной в каждый момент запуска logrotate.
#logrotate #nginx #webserver
В 6-й версии Zabbix появился совершенно новый функционал, который в русском переводе назван Услуги, а в английском - Service. Мне кажется, данный перевод выглядит не очень корректным, так как не совсем чётко отражает новый функционал. Пока я внимательно туда не заглянул, не понял, что это на практике значит. В информации о релизе эти нововведения упоминали, как мониторинг за бизнес процессами или метриками.
На деле это вот что значит. Вы можете создать Service, который по настроенным тэгам будет следить за состоянием хостов с этими тэгами. Состояние самого Service может быть гибко настроено в зависимости от состояния вложенных в него зависимых сервисов. То есть выстраивается иерархическая схема.
Статус родительского Service может меняться в зависимости от статуса дочерних услуг. Например, у вас есть какое-то приложение, работу которого обеспечивает некоторое количество хостов:
- Один балансер, принимающий входящие соединения.
- Кластер БД из мастер ноды и двух слейвов.
- 3 бэкенда для обработки запросов.
Если выйдет из строя слейв сервер с бд или один бэкенд, то это не приведёт к проблемам приложения. Оно будет обслуживать клиентов. Можно считать, что родительский Service в этом случае находится в статусе Warning. А вот если выйдет из строя мастер нода БД или входящий балансер, то клиенты не будут обслуживаться. Это повод перевести весь Service в статус Critical и отправить предупреждение кому-то из руководства. На каждый Service можно настраивать оповещения, отличные от оповещений триггеров. А заодно занести простой по этому Service в SLA.
Дочерним сервисам можно настраивать веса, которые будут так или иначе влиять на конечное состояние родительской службы. Можно настраивать влияние в SLA дочерних сервисов, указывать разные временные промежутки с разными весами и т.д. Это позволяет гибко управлять всей этой конструкцией. Как я уже сказал, сервисы выстраиваются в иерархическую структуру, где первым уровнем являются триггеры, потом хосты, а дальше службы, собранные из этих хостов.
Видео с примером настройки
Описание из Документации
#zabbix
На деле это вот что значит. Вы можете создать Service, который по настроенным тэгам будет следить за состоянием хостов с этими тэгами. Состояние самого Service может быть гибко настроено в зависимости от состояния вложенных в него зависимых сервисов. То есть выстраивается иерархическая схема.
Статус родительского Service может меняться в зависимости от статуса дочерних услуг. Например, у вас есть какое-то приложение, работу которого обеспечивает некоторое количество хостов:
- Один балансер, принимающий входящие соединения.
- Кластер БД из мастер ноды и двух слейвов.
- 3 бэкенда для обработки запросов.
Если выйдет из строя слейв сервер с бд или один бэкенд, то это не приведёт к проблемам приложения. Оно будет обслуживать клиентов. Можно считать, что родительский Service в этом случае находится в статусе Warning. А вот если выйдет из строя мастер нода БД или входящий балансер, то клиенты не будут обслуживаться. Это повод перевести весь Service в статус Critical и отправить предупреждение кому-то из руководства. На каждый Service можно настраивать оповещения, отличные от оповещений триггеров. А заодно занести простой по этому Service в SLA.
Дочерним сервисам можно настраивать веса, которые будут так или иначе влиять на конечное состояние родительской службы. Можно настраивать влияние в SLA дочерних сервисов, указывать разные временные промежутки с разными весами и т.д. Это позволяет гибко управлять всей этой конструкцией. Как я уже сказал, сервисы выстраиваются в иерархическую структуру, где первым уровнем являются триггеры, потом хосты, а дальше службы, собранные из этих хостов.
Видео с примером настройки
Описание из Документации
#zabbix
YouTube
Zabbix Handy Tips: Keeping track of your services with business service monitoring
Zabbix Handy Tips - is byte-sized news for busy techies, focused on one particular topic. In this video, we will take a look at the redesigned Services section and configure monitoring for an online store business service.
Subscribe here: https://www.za…
Subscribe here: https://www.za…
SQLpedia - канал про SQL и базы данных, в котором вы найдете:
— Возможность предложить нам статью для перевода;
— Полезные видео;
— Интересные опросы;
— Профессиональный юмор;
Полезности с канала:
— Шпаргалка по SQL
— Выбор СУБД
— Обзор типов и подходов БД
Присоединяйтесь, давайте расти как профессионалы вместе 😉
Подписаться: @sql_wiki
#реклама
— Возможность предложить нам статью для перевода;
— Полезные видео;
— Интересные опросы;
— Профессиональный юмор;
Полезности с канала:
— Шпаргалка по SQL
— Выбор СУБД
— Обзор типов и подходов БД
Присоединяйтесь, давайте расти как профессионалы вместе 😉
Подписаться: @sql_wiki
#реклама
Нестареющая уже практически классика легкого айтишного юмора - Кремниевая Долина "Silicon Valley" - Удаление данных.
https://www.youtube.com/watch?v=SOuhTLeyVCE
Всмотрелся в некоторые скриншоты. Там, кстати, не привычный для фильмов бред, а вполне реальные данные. В консоли видно, как удаляются .mov файлы. Причём на одном из кадров хорошо видна консоль. Я очень внимательно посмотрел, но так и не узнал по тексту сообщений, откуда это. Путь для файлов указан как /mount/gluster/originals/... Походу сетевую файловую систему glusterfs используют 😁
Так и не посмотрел этот сериал, хотя очень хочется. Нет времени на просмотр киношек, а тем более сериалов.
#юмор
https://www.youtube.com/watch?v=SOuhTLeyVCE
Всмотрелся в некоторые скриншоты. Там, кстати, не привычный для фильмов бред, а вполне реальные данные. В консоли видно, как удаляются .mov файлы. Причём на одном из кадров хорошо видна консоль. Я очень внимательно посмотрел, но так и не узнал по тексту сообщений, откуда это. Путь для файлов указан как /mount/gluster/originals/... Походу сетевую файловую систему glusterfs используют 😁
Так и не посмотрел этот сериал, хотя очень хочется. Нет времени на просмотр киношек, а тем более сериалов.
#юмор
YouTube
Кремниевая Долина "Silicon Valley" - Удаление данных (Хакерская атака) . Кубик в кубе.
Кремниевая Долина (Silicon Valley). 2 сезон. 8 серия. Озвучка - Кубик в кубе.
Пока идут праздники, не хочется погружаться в рабочие темы и задачи, так что поговорим об играх. А точнее об автоматическом разворачивании игровых серверов с помощью Docker. Отсюда тэг devops 😉 Если у вас есть дети, то тема будет особенно актуальна. Как мне кажется, проще всего заводить детей в IT с помощью игр. Я как раз недавно изучал тему Minecraft и своих серверов для неё.
Есть бесплатная панель для управления игровыми серверами - Pterodactyl. Это бесплатная, Open Source разработка. Сама она ставится с помощью Docker. И с помощью него же разворачивает некоторый набор игровых серверов. Причём сама панель может стоять отдельно и объединять несколько хостов с играми.
Список наиболее известных игр, которые поддерживает панель (это не полный список, только популярные):
◽️ Minecraft в различных редакциях
◽️ Rust
◽️ Terraria
◽️ Team Fortress 2
◽️ Counter Strike: Global Offensive
◽️ Garry's Mod
◽️ ARK: Survival Evolved
Сюда же к играм можно поставить Teamspeak и другие средства общения. Получается полный набор юного девопс-геймера. Помимо поддержки игр самой платформой, это может делать сообщество. На текущий момент с его помощью портированы следующие игры: Factorio, San Andreas: MP, Pocketmine MP и др.
У проекта неплохая документация. Ниже будет видео по полной установке и настройке. Так что особых проблем с запуском этого хозяйства быть не должно.
Сайт - https://pterodactyl.io
Исходники - https://github.com/pterodactyl/panel
Инструкция - https://www.youtube.com/watch?v=_ypAmCcIlBE
#игра #devops
Есть бесплатная панель для управления игровыми серверами - Pterodactyl. Это бесплатная, Open Source разработка. Сама она ставится с помощью Docker. И с помощью него же разворачивает некоторый набор игровых серверов. Причём сама панель может стоять отдельно и объединять несколько хостов с играми.
Список наиболее известных игр, которые поддерживает панель (это не полный список, только популярные):
◽️ Minecraft в различных редакциях
◽️ Rust
◽️ Terraria
◽️ Team Fortress 2
◽️ Counter Strike: Global Offensive
◽️ Garry's Mod
◽️ ARK: Survival Evolved
Сюда же к играм можно поставить Teamspeak и другие средства общения. Получается полный набор юного девопс-геймера. Помимо поддержки игр самой платформой, это может делать сообщество. На текущий момент с его помощью портированы следующие игры: Factorio, San Andreas: MP, Pocketmine MP и др.
У проекта неплохая документация. Ниже будет видео по полной установке и настройке. Так что особых проблем с запуском этого хозяйства быть не должно.
Сайт - https://pterodactyl.io
Исходники - https://github.com/pterodactyl/panel
Инструкция - https://www.youtube.com/watch?v=_ypAmCcIlBE
#игра #devops
Мониторинг и траблшутинг VOIP
Ниже мой краткий конспект интересного выступления с AsterConf 2021 на тему мониторинга и разбора проблем с VOIP. Я так или иначе стараюсь просматривать выступления со всех популярных конференций. Если что-то кажется интересным и полезным, то конспектирую для вас и себя в том числе.
📌 Мониторинг:
- Базовые метрики серверов (процессор, память, диск, сеть и т.д.). Мониторить просто, толку мало, особенно когда серверов, связанных со связью, несколько.
- Использовать сервисные метрики от SIP3, Homer, VoIPMonitor. Это специализированные open source системы для мониторинга SIP трафика. Минус этого решения - +еще одна система мониторинга.
- Что собираем: RFC-6076. Основное: ASR, SCR, SER, SEER, ISAs.
- Следим за временными метриками (пример из SIP3): sip_call_duration, sip_call_trying-delay, sip_call_setup-time, sip_call_establish-time, sip_call_cancel-time, sip_call_disconnect-time.
- Следим за RTP метриками: Rating Factor, Mean Opinion Score (latency, jitter, packet loss).
📌 Разбор проблем:
- Качественный разбор проблем возможен только если есть хороший мониторинг.
- Чем подробнее данные о трафике, который собирается, тем проще дебажить проблемы. В довесок к хранению должен быть хороший поиск по сохранённым данным. Соответственно, нужны системы для сбора, хранения и анализа трафика. Автор предлагает SIP3, но как я понял, это уже платный функционал.
Видео - https://www.youtube.com/watch?v=1I7Mxc_7rAw
Презентация - https://voxlink.ru/wp-content/uploads/2022/04/03_agafonov.pdf
#asterisk #мониторинг #voip
Ниже мой краткий конспект интересного выступления с AsterConf 2021 на тему мониторинга и разбора проблем с VOIP. Я так или иначе стараюсь просматривать выступления со всех популярных конференций. Если что-то кажется интересным и полезным, то конспектирую для вас и себя в том числе.
📌 Мониторинг:
- Базовые метрики серверов (процессор, память, диск, сеть и т.д.). Мониторить просто, толку мало, особенно когда серверов, связанных со связью, несколько.
- Использовать сервисные метрики от SIP3, Homer, VoIPMonitor. Это специализированные open source системы для мониторинга SIP трафика. Минус этого решения - +еще одна система мониторинга.
- Что собираем: RFC-6076. Основное: ASR, SCR, SER, SEER, ISAs.
- Следим за временными метриками (пример из SIP3): sip_call_duration, sip_call_trying-delay, sip_call_setup-time, sip_call_establish-time, sip_call_cancel-time, sip_call_disconnect-time.
- Следим за RTP метриками: Rating Factor, Mean Opinion Score (latency, jitter, packet loss).
📌 Разбор проблем:
- Качественный разбор проблем возможен только если есть хороший мониторинг.
- Чем подробнее данные о трафике, который собирается, тем проще дебажить проблемы. В довесок к хранению должен быть хороший поиск по сохранённым данным. Соответственно, нужны системы для сбора, хранения и анализа трафика. Автор предлагает SIP3, но как я понял, это уже платный функционал.
Видео - https://www.youtube.com/watch?v=1I7Mxc_7rAw
Презентация - https://voxlink.ru/wp-content/uploads/2022/04/03_agafonov.pdf
#asterisk #мониторинг #voip
Продолжаю утреннюю тему диагностики VOIP серверов и анализа SIP трафика. В самом начале выступления, про которое я рассказал, автор упомянул, что весь дальнейший рассказ будет актуален для тех, кому возможностей SNGREP недостаточно. Я не стал поднимать эту тему в утренней заметке, потому что данная утилита заслуживает отдельного упоминания.
С помощью SNGREP можно анализировать SIP трафик, в том числе и в режиме реального времени. Причём это консольное приложение настолько удобно и наглядно сделано, что им можно пользоваться, даже если вы в SIP полный профан. Разобраться не составит труда.
Я впервые его поставил и запустил, когда мне достался в обслуживание небольшой call центр. На собеседовании я сказал, что знаю asterisk, хотя вообще не знал его (предполагал, что могу поставить). Это тот случай, когда можно приврать, если уверен в своих способностях. Linux админил давно, но с астером просто не сталкивался. За месяц освоил на очень хорошем уровне. Мог уже сам внедрять сервера и писать диалпланы. В итоге никто и не понял, что я не разбираюсь в астериске, а через 2 года, когда увольнялся, со мной очень не хотели расставаться.
Процесс установки и много примеров использования sngrep я привёл в своей статье Анализ SIP трафика в Asterisk с помощью sngrep. Она написана давно, но с тех пор ничего принципиально не изменилось. Скорее всего не изменилось вообще ничего.
Настоятельно рекомендую использовать sngrep, если у вас есть хотя бы один сервер Asterisk в управлении.
#asterisk #sip
С помощью SNGREP можно анализировать SIP трафик, в том числе и в режиме реального времени. Причём это консольное приложение настолько удобно и наглядно сделано, что им можно пользоваться, даже если вы в SIP полный профан. Разобраться не составит труда.
Я впервые его поставил и запустил, когда мне достался в обслуживание небольшой call центр. На собеседовании я сказал, что знаю asterisk, хотя вообще не знал его (предполагал, что могу поставить). Это тот случай, когда можно приврать, если уверен в своих способностях. Linux админил давно, но с астером просто не сталкивался. За месяц освоил на очень хорошем уровне. Мог уже сам внедрять сервера и писать диалпланы. В итоге никто и не понял, что я не разбираюсь в астериске, а через 2 года, когда увольнялся, со мной очень не хотели расставаться.
Процесс установки и много примеров использования sngrep я привёл в своей статье Анализ SIP трафика в Asterisk с помощью sngrep. Она написана давно, но с тех пор ничего принципиально не изменилось. Скорее всего не изменилось вообще ничего.
Настоятельно рекомендую использовать sngrep, если у вас есть хотя бы один сервер Asterisk в управлении.
#asterisk #sip
Ранее я рассказывал про 3 программных продукта для организации тестовых полигонов на базе виртуальных машин. Рекомендую сохранить информацию о них:
▪ GNS3
▪ EVE-NG
▪ PNETLab
Сегодня речь пойдёт о похожей программе, только на базе контейнеров docker - Containerlab. Сами разработчики Containerlab называют её Framwork для построения сетевых лабораторий на основе контейнеров. Сразу становятся очевидны явные плюсы и минусы такого подхода. Плюсы - быстрый деплой систем, экономия ресурсов по сравнению с виртуальными машинами. Минусы - все ограничения контейнеров, и как итог - ограниченный набор готовых контейнеров операционной системой Linux.
Containerlab - бесплатное, open source решение. С его помощью можно разворачивать тестовые лаборатории в один клик с помощью преднастроенных заранее конфигураций. То есть реализуется современный подход Labs-as-a-code.
Посмотрите демонстрационное видео. Выглядит всё это действительно просто и удобно. Есть возможность запускать вместе с тестовыми виртуальными машинами на базе qemu. Они просто подключаются в сетевой бридж, который создаёт docker. Управляются нативно через общий конфигурационный файл вместе с контейнерами
Для Containerlab уже существуют готовые контейнеры с системами некоторых популярных вендоров (Nokia SR-Linux, Arista cEOS, Azure SONiC, Juniper cRPD, Cumulus VX). Если честно, я вообще впервые про них услышал 🧐 Когда не нашёл контейнера с RouterOS, продукт пал в моих глазах практически до самого пола. Но поднялся, после того, как я увидел, что поддержка RouterOS есть, но запускается она через qemu с нативной интеграцией в едином конфиге.
Стоит ещё добавить, что Containerlab поддерживает дистрибутив FRRouting, который является софтовой open source реализацией различных протоколов маршрутизации: BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric, VRRP и др. То есть отлично подходит для сетевых экспериментов.
Я вообще не нашёл никакой информации о Containerlab на русском языке. Насколько всё это удобно и юзабельно в реальности остаётся только догадываться. Сам я не тестировал. Но выглядит очень интересно. В первую очередь своим подходом Labs-as-a-code. Если кто-то пользовался, дайте обратную связь.
Сайт - https://containerlab.dev/
Исходники - https://github.com/srl-labs/containerlab
Видео с обзором - https://www.youtube.com/watch?v=xdi7rwdJgkg
#testlab
▪ GNS3
▪ EVE-NG
▪ PNETLab
Сегодня речь пойдёт о похожей программе, только на базе контейнеров docker - Containerlab. Сами разработчики Containerlab называют её Framwork для построения сетевых лабораторий на основе контейнеров. Сразу становятся очевидны явные плюсы и минусы такого подхода. Плюсы - быстрый деплой систем, экономия ресурсов по сравнению с виртуальными машинами. Минусы - все ограничения контейнеров, и как итог - ограниченный набор готовых контейнеров операционной системой Linux.
Containerlab - бесплатное, open source решение. С его помощью можно разворачивать тестовые лаборатории в один клик с помощью преднастроенных заранее конфигураций. То есть реализуется современный подход Labs-as-a-code.
Посмотрите демонстрационное видео. Выглядит всё это действительно просто и удобно. Есть возможность запускать вместе с тестовыми виртуальными машинами на базе qemu. Они просто подключаются в сетевой бридж, который создаёт docker. Управляются нативно через общий конфигурационный файл вместе с контейнерами
Для Containerlab уже существуют готовые контейнеры с системами некоторых популярных вендоров (Nokia SR-Linux, Arista cEOS, Azure SONiC, Juniper cRPD, Cumulus VX). Если честно, я вообще впервые про них услышал 🧐 Когда не нашёл контейнера с RouterOS, продукт пал в моих глазах практически до самого пола. Но поднялся, после того, как я увидел, что поддержка RouterOS есть, но запускается она через qemu с нативной интеграцией в едином конфиге.
Стоит ещё добавить, что Containerlab поддерживает дистрибутив FRRouting, который является софтовой open source реализацией различных протоколов маршрутизации: BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric, VRRP и др. То есть отлично подходит для сетевых экспериментов.
Я вообще не нашёл никакой информации о Containerlab на русском языке. Насколько всё это удобно и юзабельно в реальности остаётся только догадываться. Сам я не тестировал. Но выглядит очень интересно. В первую очередь своим подходом Labs-as-a-code. Если кто-то пользовался, дайте обратную связь.
Сайт - https://containerlab.dev/
Исходники - https://github.com/srl-labs/containerlab
Видео с обзором - https://www.youtube.com/watch?v=xdi7rwdJgkg
#testlab
У меня давно написана статья на тему работы с дисками в Debian. С тех пор ничего не поменялось, так что она по прежнему актуальна. Думаю, будет полезна выжимка из этой статьи, чтобы сохранить полезные команды в закладки. Статья писалась на основе системы Debian, но практически всё без каких-то существенных изменений будет актуально в любом дистрибутиве Linux.
Информация о дисках (железо)
Hwinfo
На выходе максимально подробная информация о диске - вендор, модель, серийный номер, метки диска в системе и многое другое. Программа показывает принадлежность диска к рейд массиву (если он поддерживает, например adaptec), что бывает удобно.
Smartmontools
Показывает основную информацию о диске, в том числе SMART.
Информация о дисках (разделы)
Общая информация о разделах и их размерах.
Более подробная информация о структуре диска, в том числе используемых секторах каждого раздела.
Создать или удалить раздел.
Обновить информацию об изменённых разделах.
Просмотр меток разделов.
Cвободное место на диске
Общая информация о всех подмонтированных дисках.
10 самых больших папок в текущем каталоге:
Подключение сетевого диска
По smb.
- 0.1.4.4/backup - сетевая шара
- /mnt/backup - локальная директория, куда монтируем сетевой диск
- admin - пользователь с доступом к сетевому диску
- passadmin - пароль
По NFS.
Перед подключением диска можете проверить, а если вам вообще доступ к сетевому диску на сервере:
Создание файловой системы ext4, xfs
XFS
EXT4
Работа с LVM
Инициализация дисков для работы в LVM:
Создание группы томов:
Создание раздела, занимающего 100% размера группы томов:
Создание файловой системы:
Монтирование:
Удаление раздела:
Список физических томов:
Информация о Физическая томах:
Логическая информация о Физических томах:
Список логических разделов:
Показать информацию о логических разделах:
Протестировать скорость диска
Тест записи.
Тест чтения.
Проверить нагрузку на диск
или
Нагрузка процессов или конкретного процесса:
#bash #terminal
Информация о дисках (железо)
Hwinfo
# apt install hwinfo
# hwinfo --disk
На выходе максимально подробная информация о диске - вендор, модель, серийный номер, метки диска в системе и многое другое. Программа показывает принадлежность диска к рейд массиву (если он поддерживает, например adaptec), что бывает удобно.
Smartmontools
# apt install smartmontools
# smartctl -i /dev/sda
Показывает основную информацию о диске, в том числе SMART.
Информация о дисках (разделы)
Общая информация о разделах и их размерах.
# lsblk -a
Более подробная информация о структуре диска, в том числе используемых секторах каждого раздела.
# fdisk -l
Создать или удалить раздел.
# cfdisk /dev/sdb
Обновить информацию об изменённых разделах.
# partprobe -s
Просмотр меток разделов.
# blkid
Cвободное место на диске
Общая информация о всех подмонтированных дисках.
# df -h
10 самых больших папок в текущем каталоге:
# du . --max-depth=1 -ah | sort -rh | head -10
Подключение сетевого диска
По smb.
# apt install cifs-utils
# mount -t cifs //10.1.4.4/backup /mnt/backup \
-o user=admin,password=passadmin
- 0.1.4.4/backup - сетевая шара
- /mnt/backup - локальная директория, куда монтируем сетевой диск
- admin - пользователь с доступом к сетевому диску
- passadmin - пароль
По NFS.
# apt install nfs-common
# mount -t nfs 10.1.4.4:/backup /mnt/backup
Перед подключением диска можете проверить, а если вам вообще доступ к сетевому диску на сервере:
# showmount --exports 10.1.4.4
Создание файловой системы ext4, xfs
XFS
# apt install xfsprogs
# mkfs.xfs /dev/sdb1
EXT4
# mkfs -t ext4 /dev/sdb1
Работа с LVM
Инициализация дисков для работы в LVM:
# pvcreate /dev/sdb /dev/sdc
Создание группы томов:
# vgcreate vgbackup /dev/sdb /dev/sdc
Создание раздела, занимающего 100% размера группы томов:
# lvcreate -l100%FREE vgbackup -n lv_full
Создание файловой системы:
# mkfs -t ext4 /dev/vgbackup/lv_full
Монтирование:
# mount /dev/vgbackup/lv_full /mnt/backup
Удаление раздела:
# umount /mnt/backup
# lvremove /dev/vgbackup/lv_full
Список физических томов:
# vgscan
Информация о Физическая томах:
# pvscan
# pvdisplay
Логическая информация о Физических томах:
# vgdisplay
Список логических разделов:
# lvscan
# lvs
Показать информацию о логических разделах:
# lvdisplay
Протестировать скорость диска
Тест записи.
# sync; dd if=/dev/zero of=tempfile bs=1M count=12000; sync
Тест чтения.
# apt install hdparm
# hdparm -t /dev/vda1
Проверить нагрузку на диск
# apt install sysstat
# iostat -xk -t 2
или
# apt install dstat
# dstat --top-bio
# dstat --top-io
# dstat -tldnpms 10
Нагрузка процессов или конкретного процесса:
# pidstat -d 1
# pidstat -p `pgrep mysqld` -d 1
#bash #terminal