По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Мы хотели бы поговорить про Quality of Service (QoS) в VoIP сетях, рассказать что это такое, как это работает, зачем это нужно и как это настраивать. В этой статье мы рассмотрим, какие проблемы мы можем иметь в сети, и как QoS может с ними помочь. Для успешного функционирования VoIP сетей голосовой трафик (voice traffic) должен иметь приоритет над трафиком с данными (data traffic). Quality of Service можно определить как способность сети предоставить лучший или особый сервис для группы пользователей и приложений за счет других пользователей и приложений. Звучит как то, что как раз необходимо для голосового трафика – “лучший” сервис необходим для VoIP не из-за больших требований по пропускной способности (VoIP трафик использует маленькую полосу пропускания, по сравнению с другими приложениями), а из-за требований по задержке. В отличие от трафика с данными, время за которое пакет проходит из одного конца сети в другой имеет значение. Если пакет с данными при прохождении через сеть испытал задержку (delay), то файловый сервер получит файл секундой позже или страничка в браузере будет загружаться чуть дольше, и с точки зрения пользователя не произойдет ничего страшного. Однако если голосовой трафик проходит по сети и испытывает задержку, то голоса начинают перекрываться (например, абонент начинает говорить одновременно с другим абонентом) и продолжать разговор становится невозможно. Чтобы побороть эти проблемы нужно убедиться, что для голосового трафика подходит не только полоса пропускания, но и что голосовой трафик получает первую доступную полосу. Это означает что если бутылочное горлышко (самое узкое место) находится в сети, где маршрутизатор ставит трафик в очередь, то перед тем как его выслать, маршрутизатор будет перемещать голосовой трафик перед трафиком данных, чтобы отправить его в первом доступном интервале. И это как раз задача Quality of Service. QoS, по сути, является не отдельным инструментом, а классом инструментов, направленных на то чтобы дать администратору полный контроль над трафиком внутри сети. Как и когда использовать каждый инструмент QoS зависит от требований к сети от трафика и ее характеристик. Понимание основных проблем Перед тем как применять QoS, нужно разораться с тем, какие проблемы мы пытаемся решить. Рассмотрим основные: Недостаток пропускной способности (Lack of bandwidth) – Множественные потоки голосового трафика и трафика с данными конкурируют за ограниченную полосу пропускания. Задержка (Delay) – Для того чтобы пакет дошел из пункта отправления в пункт назначения требуется какое-то время. Задержка имеет три формы: Фиксированная задержка (Fixed delay) – Значение задержки, которое нельзя изменить. Например, требуется определенное время, чтобы пакет добрался до определенной географической локации. Это значение считается фиксированным и QoS не может повлиять на него. Переменная задержка(Variable delay) – Значения задержки, которые можно изменить. Например, задержка в очереди интерфейса маршрутизатора является переменной, потому что она зависит от того, сколько пакетов находится на данный момент в очереди. На эту задержку можно повлиять поставив голосовые пакеты перед пакетами с данными. Джиттер (Jitter) – Разница задержек между пакетами. Например, первому пакету разговора потребовалось 100 мс чтобы добраться до точки назначения, в то время как второму потребовалось 110 мс. В этой ситуации джиттер составляет 10 мс. Потеря пакетов (Packet loss) – пакеты теряются из-за переполненного или ненадежного сетевого подключения. Очень важно понимать эти проблемы, поскольку они вызывают наложения звука, эхо, потрескивания и разорванные звонки. Механизм QoS предназначен для того, чтобы обеспечить бесперебойную передачу голоса в течение временных перегрузок в сети. Однако это не волшебная палочка, которая сможет решить все проблемы в сети. Например, если в сети есть недостаток пропускной способности, то при добавлении голосовых пакетов не стоит ожидать что QoS сможет все решить – получится что либо приложения с данными будут работать так медленно, что перестанут быть функциональными, либо голосовой трафик будет испытывать проблемы с качеством. Цель QoS – обеспечить постоянную пропускную способность для голосового трафика таким образом, чтобы была низкая постоянная задержка с одного конца сети в другой. Чтобы выполнить это требование необходимо иметь настроенные механизмы QoS в каждой точке сети, где существует перегрузка. Требования к голосовому и видео трафику Разный тип трафика, который используется в сети, имеет разные требования QoS. В отличие от трафика данных, голосовой трафик считается предсказуемым. В то время как трафик данных может значительно увеличиваться при скачивании или передачи большого объема данных, голосовой трафик остается постоянным для каждого звонка поступающего и покидающего сеть. Фактический объем полосы пропускания, требуемый для голоса сильно зависит от используемого кодека. Помимо требований к пропускной способности, голосовой трафик имеет следующие дополнительные требования: Задержка (End-to-end delay) : 150 мс или меньше Джиттер: 30 мс или меньше Потеря пакетов: 1% или меньше Видео трафик имеет такие же требования по задержке, но потребляет большую полосу пропускания. Кроме того ширина полосы пропускания может меняться в зависимости от того, сколько движения происходит в видео (большее количество движений значительно увеличивают необходимую пропускную способность). Требования к трафику данных Невозможно подогнать весь трафик данных под одно требование, потому что каждое отдельное приложение имеет свои QoS требования. Приложения данных можно разделить на несколько категорий: Критически важные приложения (Mission-critical applications) – эти приложения критически важны для организации и требуют выделенной полосы пропускания. Транзакционные приложения (Transactional applications) – эти приложения обычно взаимодействуют с пользователями и требуют быстрого времени отклика. Например, сотрудник техподдержки может использовать приложение базы данных чтобы получать информацию о абоненте на основе ID предыдущих запросов. Низкоприоритетные приложения (Best-effort applications) – эти приложения некритичны или некатегоризированы. Это может быть почта, веб и FTP. “Мусорные ” приложения (Scavenger applications) – это непродуктивные приложения, в которых нет необходимости для работы, но которые поглощают значительные объемы полосы пропускания. Например, это могут быть p2p приложения типа BitTorrent Каждой из этих категорий приложений можно назначить определенный уровень QoS.
img
Не секрет, что на сегодняшний день Kubernetes стал одной из лучших оркестраторов контейнерных платформ. Более 80% организаций сегодня используют Kubernetes в тех или иных целях. Он просто автоматизирует конфигурирование и управление контейнерами. Но помимо простоты, безопасность также является одной из наиболее важных частей любого контейнерного приложения. Вы должны знать, как обеспечить надежную безопасность приложений, работающих в кластере Kubernetes. Вопросы безопасности в последние несколько лет экспоненциально возрастают, поэтому каждая организация сосредотачивает внимание на этой области. Если вы знакомы с Kubernetes, то вы знаете, что, по умолчанию, Kubernetes назначает IP-адрес каждому порту в кластере и обеспечивает безопасность на основе IP. Но он предоставляет только основные меры безопасности. Когда речь заходит о расширенном мониторинге безопасности и обеспечении соответствия нормативным требованиям, к сожалению, Kubernetes не обеспечивает нужного уровня безопасности. Но, к счастью, есть сторонние сканеры Kubernetes с открытым исходным кодом, которые могут помочь вам защитить ваши кластеры Kubernetes. Вот несколько преимуществ использования сканеров Kubernetes: Определение неправильных настроек и уязвимостей в кластере, контейнерах, модулях Предоставляет решения для исправления неправильных настроек и устранения уязвимостей Дает представление о состоянии кластера в реальном времени. Дает больше уверенности команде DevOps в необходимости разработки и развертывания приложений в кластере Kubernetes Помогает избежать сбоя кластера, выявляя проблему на ранней стадии. Рассмотрим следующие инструменты, которые помогут найти уязвимость и неправильную конфигурацию системы безопасности для обеспечения безопасности контейнерных приложений. 1. Kube Hunter Kube Hunter - это средство поиска уязвимостей от Aqua Security. Этот инструмент очень полезен для повышения уровня безопасности кластеров Kubernetes. Этот инструмент для выявления уязвимостей предлагает несколько стандартных вариантов сканирования, таких как удаленный, чересстрочный, сетевой. Он содержит список активных и пассивных тестов, которые могут идентифицировать большинство уязвимостей, присутствующих в кластере Kubernetes. Существует несколько различных вариантов использования этого инструмента. Можно загрузить архив, извлечь его или использовать pip для непосредственной установки Kube Hunter на машину с сетевым доступом к кластеру Kubernetes. После установки можно начать сканирование кластера на наличие уязвимостей. Второй способ использования Kube Hunter - в качестве контейнера Docker. Вы можете непосредственно установить Kube Hunter на машину в кластере, а затем проверить локальные сети для сканирования кластеров. И третий способ - запустить Kube Hunter как под внутри Kubernetes кластера. Это помогает находить уязвимости в любых модулях приложений. 2. KubeBench Kube Bench является одним из инструментов обеспечения безопасности с открытым исходным кодом, которые проверяют соответствие ваших приложений эталонному стандарту безопасности CIS (Center for Internet Security). Он поддерживает тесты для нескольких версий Kubernetes. Кроме того, он также указывает на ошибки и помогает в их исправлении. Этот инструмент также проверяет настройки авторизации и аутентификации пользователей, а также уровень шифрования данных. Это гарантирует, что приложение соответствует требованиям CIS. Возможности KubeBench: Написано как приложение Go Тест для мастеров и узлов Kubernetes Доступно как контейнер Тесты определены в YAML, что упрощает расширение и обновление Поддержка выходных данных формата JSON 3. Checkov Checkov - это средство безопасности, используемое для предотвращения неправильных настроек облака во время сборки Kubernetes, Terraform, Cloudformation, Serverless фреймворков и других сервисов типа Infrastructure-as-code-language. Он написан на языке Python и направлен на повышение эффективности внедрения безопасности и соответствия передовым практикам. Можно выполнить сканирование с помощью Checkov для анализа сервисов типа Infrastructure-as-code-language Функции Checkov: Открытый и простой в использовании Более 500 встроенных политики безопасности Передовые практики обеспечения соответствия для AWS, Azure и Google Cloud Поддержка нескольких форматов вывода - CLI, JUnit XML, JSON Интеграция сканирований в конвейеры ci/cd Выполняет сканирование входной папки, содержащей файлы Terraform & Cloudformation 4. MKIT MKIT означает управляемый инструмент проверки Kubernetes. Этот инструмент помогает быстро выявлять ключевые угрозы безопасности кластеров Kubernetes и их ресурсов. Он имеет быстрые и простые методы для оценки неправильных настроек в кластере и рабочих нагрузках. Инструмент поставляется с интерфейсом, который по умолчанию работает на http://localhost:8000. Инструмент дает представление о неуспешных и успешных проверках. В разделе «Затронутые ресурсы» вы получите подробные сведения о затронутых и не затронутых ресурсах. Функции MKIT: Создана с использованием всех библиотек и инструментов с открытым исходным кодом Простота установки и использования Поддержка нескольких поставщиков Kubernetes - AKS, EKS и GKE Хранение конфиденциальных данных внутри контейнера Предоставляет веб-интерфейс 5. Kubei Kubei используется для оценки непосредственных рисков в кластере Kubernetes. Большая часть Kubei написана на языке программирования Go. Он охватывает все эталонные тесты CIS для Docker. Он сканирует все образы, используемые кластером Kubernetes, прикладные и системные модули и т.д. Вы получаете несколько вариантов настройки сканирования с точки зрения уровня уязвимости, скорости сканирования, области сканирования и т.д. С помощью графического интерфейса можно просмотреть все уязвимости, обнаруженные в кластере, и способы их устранения. Основные характеристики Kubei: Сканер уязвимостей среды выполнения Kubernetes с открытым исходным кодом Проверяет общедоступные образы, размещенные в реестре Предоставляет состояние работоспособности кластера в режиме реального времени Веб-интерфейс пользователя для визуализации сканирований Предоставляет несколько пользовательских параметров для сканирования 6. Kube Scan Kube Scan - это сканер контейнера, который сам поставляется как контейнер. Вы устанавливаете его в новый кластер, после чего он сканирует рабочие нагрузки, выполняющиеся в данный момент в кластере, и показывает оценку риска и сведения о рисках в удобном веб-интерфейсе. Риск оценивается от 0 до 10, 0 означает отсутствие риска, а 10 - высокий риск. Формула и правила оценки, используемые Kube scan, основаны на KCCSS, общей системе оценки конфигурации Kubernetes, которая является фреймворком с открытым исходным кодом. Он аналогичен CVSS (Common Vulnerability Scoring System). Он использует более 30 параметров настройки безопасности, таких как политики, возможности Kubernetes, уровни привилегий и создает базовый уровень риска для оценки риска. Оценка риска также основана на простоте эксплуатации или уровне воздействия и масштабах эксплуатации. Функции KubeScan: Инструмент оценки рисков с открытым исходным кодом Веб-интерфейс пользователя с оценкой рисков и подробностями оценки рисков Выполняется как контейнер в кластере. Регулярные сканирование кластера каждые 24 часа 7. Kubeaudit Kubeaudit, как предполагает название, является инструментом кластерного аудита Kubernetes с открытым исходным кодом. Он находит неправильные настройки безопасности в ресурсах Kubernetes и подсказывает, как их устранить. Он написан на языке Go, что позволяет использовать его как пакет Go или средство командной строки. Его можно установить на компьютер с помощью команды brew. Он предлагает различные решения вроде запуск приложений от имени пользователя без рут прав, предоставление доступа только для чтения к корневой файловой системе, избегание предоставления дополнительных привилегий приложениям в кластере для предотвращения общих проблем безопасности. Он содержит обширный список аудиторов, используемых для проверки проблем безопасности кластера Kubernetes, таких как SecurityContext модулей. Особенности Kubeaudit: Инструмент аудита Kubernetes с открытым исходным кодом Предоставляет три различных режима - манифест, локальный, кластер, для аудита кластера Дает результат аудита на трех уровнях серьезности - ошибка, предупреждение, информация Использует несколько встроенных аудиторов для аудита контейнеров, модулей, пространств имен 8. Kubesec Kubesec - это инструмент анализа рисков безопасности с открытым исходным кодом для ресурсов Kubernetes. Он проверяет конфигурацию и файлы манифестов, используемые для развертывания и операций кластера Kubernetes. Вы можете установить его в свою систему с помощью образа контейнера, двоичного пакета, контроллера допуска в Kubernetes или плагина kubectl. Особенности Kubesec: Инструмент анализа рисков с открытым исходным кодом Он поставляется с объединенным HTTP-сервером, который по умолчанию работает в фоновом режиме и слушает порт 8080. Может запускаться как Kubesec-as-a-Service через HTTPS по адресу v2.kubesec.io/scan Может сканировать несколько документов YAML в одном входном файле. Заключение Указанные средства предназначены для обеспечения безопасности кластера Kubernetes и его ресурсов и затрудняют взлом хакерами приложений, работающих внутри кластера. Сканеры помогут более уверенно развертывать приложения на кластере.
img
Представьте ситуацию, пользователи пытаются получить доступ к вашему сайту, но он не открывается. Знаете в чём дело? Возможно, есть ошибки, которые не были выявлены и решены раньше. Разочарованные пользователи покидают ваш сайт, а вы теряете лояльных пользователей. Как решить эту проблему? Как узнать о состоянии сайта раньше пользователей? Существует два возможных способа - eсли вы не против потратить немного денег, то можно обратиться к таким мониторинговым решениям, как StartCake и т.п. Однако если вы разработчик или не готовы тратиться ежемесячно, можете воспользоваться преимуществами API Geekflare - Site Up? Данный API проверяет доступность сайта из разных точек. В данном материале рассмотрим Python код, который немедленно уведомит вас через Gmail, как только сайт станет недоступен. Начнем с изучения API «Is Site Up?» API Is Site Up? Перед началом работы с API необходимо установить пакет requests, который в Python используется для работы с API. Но не обязательно использовать Python. Можно использовать любой другой язык. В любом случае, убедитесь, что настроили все необходимое, чтобы сделать API запрос. Итак, для тех, кто использует Python, установите пакет запросов с помощью команды: pip install requests Выполните настройку для других языков (если выбран другой язык, кроме Python) и переходите к следующим шагам. Теперь перейдите на страницу API Geekflare. Вы можете найти различные типы API, включая «Is Site Up?». Для использования API Geekflare нам нужен ключ API, который мы можем получить через RapidAPI. Нажмите на кнопку GET API KEY, чтобы перейти к RapidAPI. RapidAPI откроется в новой вкладке и выглядит следующим образом: Чтобы получить ключ API нужно создать учетную запись. Создайте учетную запись в RapidAPI, если у вас ее нет. Затем в верхней части всех доступных API Geekflare вы увидите API «Is Site Up?», который мы ищем. Если он не активен, найдите его с помощью поиска и нажмите на него. После этого в правой стороне должно отобразиться руководство по данному API. Из раздела Code Snippets в правой части выберите Python -> Requests. Или же если вы не используете Python, выберите другой язык с соответствующим пакетом. Вы получите код для вызова API «Is Site Up?». Давайте изменим его немного, чтобы потом легче было добавлять код. Посмотрите на измененный код в Python. import requests API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "YOUR_API_KEY" } payload = r'{"url": "https://www.geekflare.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() if __name__ == '__main__': data = make_api_request() print(data) Замените API_KEY своим собственным ключом API из RapidAPI в приведенном выше коде. Он будет разным для каждого пользователя. Вы найдете его в RapidAPI в разделе Параметры заголовка: Тот же ключ API вы сможете найти в примере кода, как показано ниже. Несколько расположений В приведенном выше коде сайт проверяется из одного датацентра (Нью-Йорк, США). Но мы можем посылать запросы на сайт из разных мест с указав буквенные коды стран в теле запроса. Другие доступные места - Англия (Лондон) и Сингапур. Мы можем передать данные местоположения вместе с URL-адресом сайта следующим образом: { "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" } Вы можете передать предпочитаемые расположения из списка. Мы написали код, чтобы сделать запрос API, который получает данные независимо от того, работает сайт или нет. Пришло время написать еще код, который отправляет почту, когда сайт не работает. Получение уведомления на почту В сети можно найти немало руководств о том, как отправлять электронные письма через Gmail в Python или же использовать следующий код, который использует пакет под названием yagmail специально разработан для отправки почты из Gmail. Перед отправкой сообщения через учетную запись Gmail необходимо включить параметр Разрешить небезопасные приложения. Вы можете включить его здесь. Посмотрим код: def send_mail(): gmail = yagmail.SMTP("gmail", "password") receiver = "receiver@domain.com" subject = "Testing Subject" body = "This is a testing mail" gmail.send( to=receiver, subject=subject, contents=body, ) Полное руководство по yagmail можно найти здесь. Теперь у нас есть код для запросов API и отправки почты. Следующим шагом является вызов send_mail всякий раз, когда в ответе на запрос сайт указывается как недостпный. Итак, откуда мы знаем, что наш сайт не работает или работает? Когда мы посылаем запрос к API «Is Site Up?», он возвращает нам Python словарь с некоторыми данными как следующем скриншоте: В данном словаре есть ключ message. Значение этого ключа и показывает нам состояние сайта. Данный ключ может иметь два значения: Site is up Site is down Итак, мы отправим почту, когда получим сообщение «Site is down». Окончательный код будет выглядеть так: import requests import yagmail API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "API_KEY" } payload = r'{"url": "https://www.abcd.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() def send_mail(content): gmail = yagmail.SMTP("gmail", "password") receiver = "email@domain.com" subject = "Your Site is Down" gmail.send( to=receiver, subject=subject, contents=content, ) if __name__ == '__main__': data = make_api_request() message = data['message'] ## seding the mail if message == 'Site is down.': ## extracting the errors from different locations locations_data = data['data'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below. " for location in locations_data: mail_content += f"{location['city']}, {location['country']} - {location['error']} " mail_content += " Check the error and resolve them as soon as possible." send_mail(mail_content) Тело сообщения можете редактировать по своему усмотрению. Мы завершили код отправки почты всякий раз, когда наш сайт не работает. Смотри образец сообщения, полученного с помощью вышеуказанного кода. Но, есть еще проблема. Мы должны выполнить наш код, чтобы проверить, работает ли наш сайт или нет. Частота запуска данного скрипта зависит от ваших предпочтений. Допустим, мы должны проверять сайт каждые час. Правда, мы можем каждый час открыть терминал и запустить скрипт. Но это скучно и неэффективно. Плюс к этому, никто так не делает. Решение напрашивается само: использовать cron для автоматического выполнения нашего кода каждый час. Посмотрим, как его настроить. Настройка Cron Рассмотрим шаги по настройке cron в операционной системе на базе UNIX. Открыть терминал. Выполните команду crontab -e, которая открывает файл crontab на терминале. Нажмите клавишу i для перехода в режим ВВОДА. Теперь добавьте шаблон cron, пути к исполняемому файлу Python и нашему файлу, как указано ниже: 0 * * * * /usr/bin/python3 /home/sample.py Подробно про cron можно прочесть в этой статье. Итак, мы настроили планировщик для ежечасного запуска кода. Если нужно будет указать другое расписание, можно воспользоваться разными утилитами для генерации шаблона расписания для cron. Пожалуй, теперь все. Мы настроили проверку сайта каждый час и получение уведомления на почту, если сайт станет недоступен. Заключение Автоматизация экономит много времени и работает на нас. Можно настроить cron на каком-нибудь облаке, чтобы он постоянно работал, проверял состояние сайта и уведомлял нас при сбое.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59