По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
gRPC — это мощная платформа для работы с удаленными вызовами процедур (Remote Procedure Calls). RPC позволят писать код так, как будто он будет выполняться на локальном компьютере, даже если он может выполняться на другом компьютере. Что такое RPC? RPC — это форма взаимодействия клиент-сервер, в которой используется вызов функции, а не обычный вызов HTTP. Идея в том, что мы можем вызвать и выполнить функцию где-то на удаленной системе, как если бы это была локальная функция. Он использует IDL (Interface Definition Language - язык описания интерфейса) как форму контракта на вызываемые функции и тип данных. RPC — это протокол "запрос-ответ", т.е. он следует модели "клиент-сервер": Клиент делает запрос на выполнение процедуры на удаленном сервере. Как и при синхронном локальном вызове, клиент приостанавливается до тех пор, пока не будут возвращены результаты процедуры. Параметры процедуры передаются по сети на сторону сервера. Процедура выполняется на сервере и, наконец, результаты передаются обратно клиенту. gRPC воспроизводит этот архитектурный стиль взаимодействия клиент-сервер через вызовы функций. Таким образом, gRPC технически не является новой концепцией. Скорее, он был заимствован из этой старой техники и улучшен, что сделало ее очень популярной. Что такое gRPC? В 2015 году Google открыл исходный код своего проекта, который в конечном итоге получил название gRPC. Но что на самом деле означает буква «g» в gRPC? Многие люди могут предположить, что это для Google, потому что Google это сделал, но это не так. Google меняет значение «g» для каждой версии до такой степени, что они даже сделали README, чтобы перечислить все значения. С момента появления gRPC он приобрел довольно большую популярность, и многие компании используют его. Есть много причин, по которым gRPC так популярен: простая абстракция, он поддерживается во многих языках и он очень эффективный. И помимо всех вышеперечисленных причин, gRPC популярен потому, что очень популярны микросервисы и имеется большое количество взаимодействий между ними. Именно здесь gRPC помогает больше всего, предоставляя поддержку и возможности для решения типичных проблем, возникающих в таких ситуациях. А поскольку разные сервисы могут быть написаны на разных языках, gRPC поставляется с несколькими библиотеками для их поддержки. Архитектура gRPC Мы сказали что производительность gRPC очень высока, но что делает ее такой хорошей? Что делает gRPC намного лучше, чем RPC, если их дизайн очень похож? Вот несколько ключевых отличий, которые делают gRPC столь эффективным. HTTP/2 HTTP был с нами очень долго. Сейчас почти все серверные службы используют этот протокол. HTTP/1.1 долгое время оставался актуальным, затем в 2015 году, появился HTTP/2, который фактически заменил HTTP/1.1 как самый популярный транспортный протокол в Интернете. Если вы помните, что 2015 год был также годом выхода gRPC, и это было вовсе не совпадение. HTTP/2 также был создан Google для использования gRPC в его архитектуре. HTTP/2 — одна из важных причин, почему gRPC может работать так хорошо. И в следующем разделе вы поймете, почему. Мультиплексирование запроса/ответа В традиционном протоколе HTTP невозможно отправить несколько запросов или получить несколько ответов вместе в одном соединении. Для каждого из них необходимо создать новое соединение. Такой вид мультиплексирования запроса/ответа стал возможен в HTTP/2 благодаря введению нового уровня HTTP/2, называемого binary framing. Этот двоичный уровень инкапсулирует и кодирует данные. На этом уровне HTTP-запрос/ответ разбивается на кадры (они же фреймы). Фрейм заголовков (HEADERS frame) содержит типичную информацию заголовков HTTP, а фрейм данных (DATA frame) содержит полезные данные. Используя этот механизм, можно получить данные из нескольких запросов в одном соединении. Это позволяет получать полезные данные из нескольких запросов с одним и тем же заголовком, тем самым идентифицируя их как один запрос. Сжатие заголовка Вы могли столкнуться со многими случаями, когда заголовки HTTP даже больше, чем полезная нагрузка. И HTTP/2 имеет очень интересную стратегию под названием HPack для решения этой проблемы. Во-первых, все в HTTP/2 кодируется перед отправкой, включая заголовки. Это помогает повысить производительность, но это не самое важное в сжатии заголовков. HTTP/2 сопоставляет заголовок как на стороне клиента, так и на стороне сервера. Из этого HTTP/2 может узнать, содержит ли заголовок одно и то же значение, и отправляет значение заголовка только в том случае, если оно отличается от предыдущего заголовка. Как видно на картинке выше, запрос № 2 отправит только новый путь, так как другие значения точно такие же как и были. И да, это значительно сокращает размер полезной нагрузки и, в свою очередь, еще больше повышает производительность HTTP/2. Что такое Protocol Buffer (Protobuf)? Protobuf — это наиболее часто используемый IDL для gRPC. Здесь вы храните свои данные и функциональные контракты в виде так называемого прото-файла. По сути это протокол сериализации данных, такой как JSON или XML. Выглядит это так: message Person { required string name = 1; required int32 id = 2; optional string email = 3; } Так мы определили сообщение Person с полями name, id и email Поскольку это форма контракта то и клиент, и сервер должны иметь один и тот же прото-файл. Файл proto действует как промежуточный контракт для клиента, чтобы вызвать любые доступные функции с сервера. Protobuf также имеет собственные механизмы, в отличие от обычного REST API, который просто отправляет строки JSON в виде байтов. Эти механизмы позволяют значительно уменьшить полезную нагрузку и повысить производительность. Что еще может предложить gRPC? Метаданные Вместо обычного заголовка HTTP-запроса в gRPC есть то, что называется метаданными (Metadata). Метаданные — это тип данных «ключ-значение», которые можно установить как на стороне клиента, так и на стороне сервера. Заголовок может быть назначен со стороны клиента, в то время как серверы могут назначать заголовок и трейлеры, если они оба представлены в виде метаданных. Потоковая передача Потоковая передача (Streaming) — это одна из основных концепций gRPC, когда в одном запросе может выполняться несколько действий. Это стало возможным благодаря упомянутой ранее возможности мультиплексирования HTTP/2. Существует несколько видов потоковой передачи: Server Streaming RPC: когда клиент отправляет один запрос, а сервер может отправить несколько ответов. Например, когда клиент отправляет запрос на домашнюю страницу со списком из нескольких элементов, сервер может отправлять ответы по отдельности, позволяя клиенту использовать отложенную загрузку. Client Streaming RPC: когда клиент отправляет несколько запросов, а сервер отправляет обратно только один ответ. Например, zip/chunk, загруженный клиентом. Bidirectional Streaming RPC: клиент и сервер одновременно отправляют сообщения друг другу, не дожидаясь ответа. Перехватчики gRPC поддерживает использование перехватчиков для своего запроса/ответа. Они перехватывают сообщения и позволяют вам изменять их. Это звучит знакомо? Если вы работали с HTTP-процессами в REST API, перехватчики очень похожи на middleware (оно же промежуточное ПО). Библиотеки gRPC обычно поддерживают перехватчики и обеспечивают простую реализацию. Перехватчики обычно используются для: Изменения запроса/ответа перед передачей. Это можно использовать для предоставления обязательной информации перед отправкой на клиент/сервер. Позволяет вам манипулировать каждым вызовом функции, например, добавлять дополнительные логи для отслеживания времени отклика. Балансировки нагрузки Если вы еще не знакомы с балансировкой нагрузки, это механизм, который позволяет распределять клиентские запросы по нескольким серверам. Но балансировка нагрузки обычно делается на уровне прокси (например, nginx). Так причем это здесь? Дело в том, что gRPC поддерживает метод балансировки нагрузки клиентом. Он уже реализован в библиотеке Golang и может быть легко использован. Хотя это может показаться какой-то магией, это не так. Там есть что-то типа преобразователя DNS для получения списка IP-адресов и алгоритм балансировки нагрузки под капотом. Отмена вызова Клиенты gRPC могут отменить вызов gRPC, когда им больше не нужен ответ. Однако откат на стороне сервера невозможен. Эта функция особенно полезна для потоковой передачи на стороне сервера, когда может поступать несколько запросов к серверу. Библиотека gRPC оснащена шаблоном метода наблюдателя, чтобы узнать, отменен ли запрос, и позволить ей отменить несколько соответствующих запросов одновременно.
img
3CX программная IP-АТС на открытых стандартах с технологиями Унифицированных коммуникаций и интеграцией услуг в режиме реального времени. Это простая в установке, настройке и сопровождении IP-АТС. /p> В данной статье мы рассмотрим процесс настройки IP-DECT-базы Gigaset N870 IP PRO для работы с IP-АТС 3CX и последующего подключения IP-DECT-телефонов Gigaset серии PRO. DECT (Digital Enhanced Cordless Telecommunication) технология беспроводной связи, использующая частоты 1880-1900 МГц с модуляцией GMSK (ВТ = 0,5). Используется в современных радиотелефонах. Пользуется высокой популярностью благодаря простоте развертывания DECT-сетей, широкому спектру предоставляемых пользовательских услуг и высокому качеству связи. Достоинства DECT хорошая помехоустойчивость канала связи благодаря цифровой передаче сигнала. хорошая интеграция с системами корпоративной телефонии меньшее облучение абонента (по сравнению с мобильными телефонами) Недостатки DECT небольшая дальность связи невысокая скорость передачи данных (по сравнению с Wi-Fi) Микросотовая SIP DECT система на базе Gigaset N870 IP PRO позволяет развернуть бесшовную масштабируемую микросотовую систему вплоть до 20000 абонентов. О настройке DECT станции для работы с 3CX и пойдет речь в данной статье. Поддержка данной DECT-базы со стороны 3CX возможна, начиная с версии DECT-базы 2.16.2 и выше. Шаг 1. Включение DHCP мода (All in One) Зажмите кнопку базы на 10 секунд, до тех пор, пока не выключатся LED индикаторы. Нажав на кнопку, выберите роль устройства. В зависимости от цвета и сочетания LED индикаторов, база будет иметь разные роли. Нажмите кнопку базы. Оба LED индикатора станут синими и база получит роль Интегратор/DECT-менеджера/База с динамическим IP-адресом. Зажмите кнопку базы на 5 секунд для подтверждения новой роли. Устройству необходимы 5 минут на перезагрузку и появления в сети как Интегратора/DECT-менеджера/Базы с настройками по умолчанию. После перезагрузки, LED-светодиоды на базовой станции показывают разными цветами когда изменяется роль. Шаг 2. Обновление базы до рекомендуемой версии программного обеспечения Последние поддерживаемые версии программного обеспечения (ПО) можно скачать здесь (https://teamwork.gigaset.com/gigawiki/pages/viewpage.action?pageId=702251506) Введите в браузере IP-адрес базы. В роли Интегратора с динамическим IP-адресом, DECT-база получает IP-адрес от DHCP-сервера. Найдите IP-адрес базы на своем DHCP сервере по MAC-адресу базы (указан на обратной стороне устройства). При необходимости обратитесь к вашему системному администраторе. Для подключения рекомендуется использовать веб-браузер Google Chrome или Mozilla Firefox. Введите логин admin и пароль admin. При первом подключении необходимо установить новый пароль и выбрать DECT-диапазон. Введите новый пароль, выберите диапазон 1880 1900 МГц для Европы. Затем нажмите на кнопку Set. Перейдите в Settings , затем перейдите в System -> Firmware. Нажмите на Browse и выберите файл прошивки, который вы хотите установить. Нажмите на кнопку Upload и дождитесь завершения загрузки файла на базу. Нажмите на кнопку Set для начала обновления и загрузки ПО. Шаг 3. Настройка базы в 3CX. Запишите MAC адрес базы (указан на обратной стороне устройства). В 3CX перейдите в Дополнительно -> Устройства FXS/DECT. Нажмите на Добавить FXS/DECT Выберите производителя Gigaset. Выберите модель Gigaset N870. Укажите MAC-адрес устройства. Нажмите ОК. Скопируйте ссылку автонастройки. Перейдите на вкладку Добавочные номера и выберите номер, который будет назначен на данную базу. Нажмите ОК. Шаг 4. Настройка базы через Веб-интерфейс. Введите IP-адрес базы в адресную строку веб-браузера. Перейдите в Settings. Перейдите в System -> Provisioning and configuration. Вставьте скопированную в шаге 3 ссылке в поле Provisioning server. Нажмите Set, а затем нажмите Start auto configuration. Шаг 5. Регистрация DECT-трубок. Введите IP-адрес базы в адресную строку веб-браузера. Перейдите в Mobile Devices -> Administration. Нажмите на значок карандаша для редактирования учетной записи. Измените значение RegStatus на To register Нажмите кнопку Register now. Перейдите в Mobile Devices -> Registration Centre Нажмите на кнопку Start Now Нажмите на кнопку Регистрация на трубке и введите PIN код (по умолчанию 0000) для подтверждения регистрации. К сожалению, DECT системы поддерживают не весь функционал 3CX и имеют следующие ограничения: Нет поддержки STUN (возможно использовать только SBC) Нет полной поддержки CTI (только звонки) Нет LCD Language Provisioning Нет возможности установить различные мелодии вызова для внешних вызовов, очередей или IVR Нет поддержки 3CX Firmware Management Нет поддержки Paging групп (включая Multicast)
img
Icinga - это бесплатное средство мониторинга с открытым исходным кодом для вашего дата-центра. Это приложение для мониторинга компьютерных систем и работы сети, которое проверяет состояние готовности вашей сети и компьютерных ресурсов, уведомляет о перебоях в работе системы, генерирует данные о производительности ваших ресурсов, а также обеспечивает высокую степень работоспособности и возможность настройки мониторинга распределённых систем со встроенной функцией кластера. Icinga была создана в 2009 году в качестве разветвления средства мониторинга Nagios. Но потом была заново переписана на С++ и стала одним из самых популярных инструментов мониторинга в интернете. Слово "Ицинга" - это Зулусское слово, означающее "оно ищет", или "оно обозревает", или "оно исследует". В этом учебном пособии мы покажем вам, как установить и настроить инструмент мониторинга Icinga 2 на сервере LTS Ubuntu 20.04. Мы установим Icinga 2 из официального репозитория, а затем настроим icingaweb2, облегченный и расширяемый веб-интерфейс для системы мониторинга icinga2. Предпосылки Для этого руководства мы установим icinga2 и icingaweb2, используя сервер Ubuntu 20.04 с 2 ГБ оперативной памяти. Но эти данные меняются в зависимости от размера вашей ИТ-инфраструктуры. Что мы будем делать? Установка Icinga2 и Nagios Monitoring Plugins; Установка и настройка базы данных MySQL; Установка и настройка модуля Icinga MySQL; Установка Apache2 и PHP-пакетов; Установка и настройка Icingaweb2; Установка Icinga2 Stack Post. Шаг 1 - Установка Icinga2 и системы мониторинга Nagios Сперва мы добавим репозиторий icinga2 для Ubuntu 20.04 и установим пакеты icinga2 и плагины мониторинга Nagios. Добавьте GPG ключ Icinga2 в вашу систему. curl https://packages.icinga.com/icinga.key | apt-key add - Теперь перейдите в директорию '/etc/apt/sources.list.d' и создайте новый репозиторий 'icinga-focal.list'. cd /etc/apt/sources.list.d/ vim icinga-focal.list Вставьте следующую конфигурацию репозитория. deb http://packages.icinga.com/ubuntu icinga-focal main deb-src http://packages.icinga.com/ubuntu icinga-focal main Нажмите сохранить и закройте. Затем обновите все доступные репозитории и установите подключаемые модули Icinga2 и Nagios Monitoring с помощью команды apt ниже. sudo apt update sudo apt install icinga2 monitoring-plugins После завершения установки запустите службу Icinga2 и добавьте сервис в автозагрузку. systemctl start icinga2 systemctl enable icinga2 После этого проверьте службу icinga2, используя приведенную ниже команду. systemctl status icinga2 Ниже приведен результат, который вы получите. В результате сервис icinga2 запущен и работает на Ubuntu 20.04 FocalFossa. Шаг 2 - Установка и настройка базы данных MySQL На этом этапе мы установим последнюю версию сервера MySQL на нашем Ubuntu 20.04 и установим пароль по умолчанию для пользователя MySQL с root правами. Установите MySQL сервер с помощью команды apt, приведенной ниже. sudo apt install mysql-server mysql-client После этого запустите службу MySQL и добавьте её в автозагрузку. systemctl start mysql systemctl enable mysql И сервис MySQL готов и запущен. Далее мы зададим пароль для root - пользователя MySQL с помощью командной строки 'mysql_secure_installation', которые предоставлены MySQL-пакетами. Запустите команду 'mysql_secure_installation', которая представлена ниже. mysql_secure_installation Теперь вам будет предложено настроить новый пароль для пользователя root, введите надежный пароль, а затем введите "Y" для прочих конфигураций. Press y|Y for Yes, any other key for No: Please set the password for root here. New password: Re-enter new password: Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y В результате завершена установка сервера MySQL и сконфигурирован корневой пароль по умолчанию. Шаг 3 - Установка и настройка модуля Icinga MySQL После установки сервера MySQL мы установим модуль icinga2 для поддержки MySQL под названием 'icinga2-ido-mysql'. Установка 'icinga2-ido-mysql' возможна с помощью команды apt, приведенной ниже. sudo apt install icinga2-ido-mysql Теперь вам будет предложено включить функцию icinga2 ido-mysql, выберите "Да", чтобы продолжить. Сконфигурируйте 'icinga2-ido-mysql'с помощью команды dbconfig, затем выберите "Yes" для продолжения. Введите свой пароль для 'icinga2-ido-mysql'. Повторите пароль для 'icinga2-ido-mysql'. В результате установка пакета 'icinga2-ido-mysql' была завершена, и был создан новый пользователь MySQL 'icinga2'. Затем, чтобы Icinga работала с новой версией MySQL, мы настроим MySQL пользователя 'icinga2' с аутентификацией по встроенному паролю MySQL. Войдите в командную строку MySQL, используя нижеприведенную команду. mysql -u root -p Теперь измените аутентификацию пользователя 'icinga2@localhost' с помощью собственного плагина аутентификации MySQL, используя следующий запрос. ALTER USER icinga2@localhost IDENTIFIED WITH mysql_native_password BY 'aqwe123@#$'; flush privileges; Введите 'exit', чтобы выйти из командной строки MySQL, а пользователь MySQL 'icinga2' теперь будет использовать родной плагин аутентификации. Далее, включите функцию 'ido-mysql' и проверьте все включенные плагины, используя следующую команду. icinga2 feature enable ido-mysql icinga2 feature list Функция 'ido-mysql' будет включена, чтобы применить новую конфигурацию, перезапустите службу icinga2. systemctl restart icinga2 Таким образом, установка и настройка 'icinga2-ido-mysql' была завершена. Шаг 4 - Установка Apache2 и PHP-пакетов На этом шаге, мы установим пакеты Apache и PHP для icingaweb2 и мы будем использовать PHP 7.3, который доступен в репозитории PPA, потому что на данный момент icingaweb2 еще не поддерживается в новой версии PHP 7.4. Сначала установите пакет 'python3-software-properties' и добавьте репозиторий PHP PPA, используя следующую команду. sudo apt install python3-software-properties sudo add-apt-repository ppa:ondrej/php Далее установите Apache и PHP пакеты с помощью команды apt, описанной ниже. sudo apt install apache2 php7.3 php7.3-common php7.3-gd php7.3-ldap php7.3-intl php7.3-curl libapache2-mod-php7.3 php7.3-mysql php7.3-pgsql php7.3-xml После того, как вся установка будет завершена, отредактируйте конфигурацию 'php.ini' с помощью vim-редактора. vim /etc/php/7.3/apache2/php.ini Снимите комментарий с опции 'date.timezone' и введите свой часовой пояс. date.timezone = Asia/Singapore Раскомментируйте конфигурацию 'cgi.fix_pathinfo' и измените значение на '0'. cgi.fix_pathinfo=0 Сохраните и закройте. Далее перезапустите службу Apache2 и добавьте ее в автозагрузку. systemctl restart apache2 systemctl enable apache2 Служба Apache2 запущена и работает, проверьте её, используя следующую команду. systemctl status apache2 Ниже приведен результат, который вы получите. В результате была завершена установка Apache и PHP пакетов для icingaweb2. Шаг 5 - Установка и настройка Icingaweb2 После установки Apache и PHP-пакетов мы установим пакет icingaweb2 и создадим новую базу данных MySQL для icingaweb2. Начните установку пакетов icingaweb2 и icingacli с помощью команды apt. sudo apt install icingaweb2 icingacli После завершения установки сгенерируйте токен icingaweb2 для установки с помощью приведенной ниже команды. icingacli setup token create Ниже приведен результат, который вы получите. The newly generated setup token is: 9b871ead0a60c94f Теперь скопируйте код токена в надёжное место, он будет использован для установки icingaweb2. Далее войдите в командную строку MySQL, используя нижеприведенную команду mysql. mysql -u root -p Теперь создайте новую базу данных и пользователя, используя следующие запросы. create database icingaweb2; create user icingaweb2@localhost identified with mysql_native_password by "icingaweb2pass"; grant all privileges on icingaweb2.* to icingaweb2@localhost with grant option; flush privileges; Введите 'exit', чтобы выйти из командной строки MySQL. В результате этого установка icingaweb2 завершена и создана новая база данных icingaweb2. Шаг 6 - Установка Icinga2 и Icinga Stack Post Откройте веб-браузер и введите IP-адрес сервера, как показано ниже. Замените IP-адрес на IP-адрес своего сервера. http://IP_адрес/icingaweb2/setup Вставьте код токена установки в поле и нажмите кнопку 'Далее'. Теперь вам нужно выбрать модуль Icinga для установки, оставить модуль 'Monitoring' и нажать 'Далее'. После этого Icinga проверит состояние среды для его установки. Убедитесь, что все необходимые модули находятся в зеленом состоянии, за исключением 'Модулей PostgreSQL', затем нажмите 'Далее'. Теперь вам нужно выбрать Аутентификацию для доступа к icingaweb2, выбрать 'Database ' (База данных) и нажать 'Next ' (Далее). Введите все данные базы данных для 'icingaweb2' и нажмите 'Validate Configuration' (Проверить конфигурацию) для тестирования. После того, как все прошло успешно, нажмите кнопку 'Next ' (Далее). Теперь для аутентификации Backend Authentication выберите 'icingaweb2' и нажмите 'Next ' (Далее). Введите логин и пароль администратора для icingaweb2 и нажмите 'Далее' еще раз. В разделе Application Configuration (Конфигурация приложения) оставьте всё по умолчанию и нажмите 'Далее'. Подтвердите все настройки и нажмите "Далее". И вы получите страницу приветствия на icingaweb2. Снова нажмите "Далее", чтобы настроить backend мониторинга. Установите имя Backend как 'icinga2' с типом 'IDO', затем нажмите 'Далее'. Теперь вам нужно настроить MySQL IDO backend ресурс для приложения icinga2. Введите данные базы данных для icinga2 и нажмите кнопку 'Validate Configuration'. После успешного завершения нажмите кнопку 'Далее'. Для 'Command Transport' выберите 'Local Command File' и оставьте его по умолчанию. Затем нажмите 'Далее'. Для службы Monitoring Security оставьте всё по умолчанию и нажмите 'Далее'. Подтвердите все настройки и нажмите кнопку 'Готово'. Теперь установка Icinga 2 и Icinga web 2 завершена, нажмите кнопку 'Login to Icinga Web 2', и вы будете перенаправлены на страницу входа. Введите пользователя, которого вы настроили в самом начале и нажмите кнопку "Войти". И, наконец, установка и настройка icinga2 и icingaweb2 на сервере Ubuntu 20.04 успешно завершена.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59