пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ Asterisk
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Apache Cassandra — это программное обеспечение распределенной базы данных с открытым исходным кодом для работы с базами данных NoSQL. Это программное обеспечение использует язык запросов Cassandra - CQL в качестве основы для связи. CQL хранит данные в таблицах, организованных в виде набора строк со столбцами, содержащими пары ключ-значение.
Таблицы CQL сгруппированы в контейнеры данных, которые в Cassandra называются пространствами ключей (keyspace). Данные, хранящиеся в одном пространстве ключей, не связаны с другими данными в кластере. Таким образом, вы можете иметь таблицы для разных целей в отдельных пространствах ключей в кластере, и данные не будут совпадать.
В этом руководстве вы узнаете, как создать таблицу Cassandra для различных целей, а также как изменять, удалять или очищать таблицы с помощью оболочки Cassandra.
Выбор пространства ключей для таблицы Cassandra
Прежде чем вы начнете добавлять таблицу, вам нужно определить пространство ключей, в котором вы хотите создать свою таблицу. Есть два варианта сделать это.
Вариант 1: команда USE
Запустите команду USE, чтобы выбрать пространство клавиш, к которому будут применяться все ваши команды. Для этого в оболочке cqlsh введите:
USE keyspace_name;
Затем вы можете начать добавлять таблицы.
Вариант 2. Укажите имя пространства ключей в запросе
Второй вариант — указать имя пространства ключей в запросе на создание таблицы. Первая часть команды перед именами столбцов и параметрами выглядит так:
CREATE TABLE keyspace_name.table_name
Таким образом, вы сразу же создаете таблицу в заданном пространстве ключей.
Базовый синтаксис для создания таблиц Cassandra
Создание таблиц с помощью CQL похоже на SQL-запросы. В этом разделе мы покажем вам основной синтаксис для создания таблиц в Cassandra.
Основной синтаксис для создания таблицы выглядит следующим образом:
CREATE TABLE tableName (
columnName1 dataType,
columnName2 dataType,
columnName2 datatype
PRIMARY KEY (columnName)
);
При желании вы можете определить дополнительные свойства и значения таблицы, используя WITH:
WITH propertyName=propertyValue;
Например, используйте его, чтобы определить, как хранить данные на диске или использовать ли сжатие.
Типы первичных ключей Cassandra
Каждая таблица в Cassandra должна иметь первичный ключ, что делает строку уникальной. С первичными ключами вы определяете, какой узел хранит данные и как он их разделяет.
Существует несколько типов первичных ключей:
Простой первичный ключ. Содержит только одно имя столбца в качестве ключа секции, чтобы определить, какие узлы будут хранить данные.
Составной первичный ключ. Использует один ключ разделения и несколько столбцов кластеризации, чтобы определить, где хранить данные и как их сортировать в разделе.
Составной ключ раздела. В этом случае есть несколько столбцов, которые определяют, где хранить данные. Таким образом, вы можете разбить данные на более мелкие части, чтобы распределить их по нескольким разделам, чтобы избежать горячих точек.
Как создать таблицу Cassandra
В следующих разделах объясняется, как создавать таблицы с различными типами первичных ключей. Сначала выберите пространство ключей, в котором вы хотите создать таблицу. В нашем случае:
USE businesinfo;
Каждая таблица содержит столбцы и тип данных Cassandra для каждой записи.
Создать таблицу с простым первичным ключом
Первый пример — это базовая таблица с поставщиками. Идентификатор уникален для каждого поставщика и будет служить первичным ключом.
CQL-запрос выглядит следующим образом:
CREATE TABLE suppliers (
supp_id int PRIMARY KEY,
supp_city text,
supp_email text,
supp_fee int,
supp_name text,
supp_phone int
);
Этот запрос создал таблицу с именем supplier с supp_id в качестве первичного ключа для таблицы. Когда вы используете простой первичный ключ с именем столбца в качестве ключа раздела, вы можете поместить его либо в начало запроса (рядом со столбцом, который будет служить первичным ключом), либо в конец, а затем указать имя столбца:
CREATE TABLE suppliers (
supp_id int,
supp_city text,
supp_email text,
supp_fee int,
supp_name text,
supp_phone int
PRIMARY KEY(supp_id)
);
Чтобы увидеть, находится ли таблица в пространстве ключей, введите:
DESCRIBE TABLES;
В выводе перечислены все таблицы в этом пространстве ключей, а также та, которую вы создали.
Чтобы отобразить содержимое таблиц, введите:
SELECT * FROM suppliers;
Вывод показывает все столбцы, определенные при создании таблицы.
Другой способ просмотреть сведения о таблице — использовать DESCRIBE и указать имя таблицы:
DESCRIBE suppliers;
В выходных данных отображаются столбцы и настройки по умолчанию для таблицы.
Создать таблицу с составным первичным ключом
Чтобы запросить и получить результаты, отсортированные в определенном порядке, создайте таблицу с составным первичным ключом.
Например, создайте таблицу для поставщиков и всех продуктов, которые они предлагают. Поскольку продукты могут не быть уникальными для каждого поставщика, необходимо добавить один или несколько столбцов кластеризации в первичный ключ, чтобы сделать его уникальным.
Схема таблицы выглядит так:
CREATE TABLE suppliers_by_product (
supp_product text,
supp_id int,
supp_product_quantity text,
PRIMARY KEY(supp_product, supp_id)
);
В этом случае мы использовали supp_product и supp_id для создания уникального составного ключа. Здесь первая запись в скобках supp_product — это ключ раздела. Он определяет, где хранить данные, то есть как система разделяет данные.
Следующая запись — столбец кластеризации, определяющий, как Cassandra сортирует данные, в нашем случае — по supp_id.
Изображение выше показывает, что таблица была успешно создана. Чтобы проверить детали таблицы, запустите запрос DESCRIBE TABLE для новой таблицы:
DESCRIBE TABLE suppliers_by_product;
Настройки по умолчанию для порядка кластеризации — по возрастанию (ASC). Вы можете перейти на нисходящий (DESC), добавив следующий оператор после первичного ключа:
WITH CLUSTERING ORDER BY (supp_id DESC);
Мы указали один столбец кластеризации после ключа раздела. Если вам нужно отсортировать данные с использованием двух столбцов, добавьте еще один столбец в скобки первичного ключа.
Создание таблиц с использованием составного ключа раздела
Создание таблицы с составным ключом раздела полезно, когда на одном узле хранится большой объем данных, и вы хотите разделить нагрузку на несколько узлов.
В этом случае определите первичный ключ с ключом секции, состоящим из нескольких столбцов. Вам нужно использовать двойные скобки. Затем добавьте столбцы кластеризации, как мы делали ранее, чтобы создать уникальный первичный ключ.
CREATE TABLE suppliers_by_product_type (
supp_product_consume text,
supp_product_stock text,
supp_id int,
supp_name text,
PRIMARY KEY((supp_product_consume, supp_product_stock), supp_id)
);
В приведенном выше примере мы разделили данные на две категории: расходные материалы поставщика и продукты, запасаемые на складе, и распределили данные с помощью составного ключа раздела.
Примечание. При таком разделении каждая категория продуктов хранится на отдельном узле, а не в одном разделе.
Если вместо этого вы используете составной первичный ключ с простым ключом раздела и несколькими столбцами кластеризации, то один узел будет обрабатывать все данные, отсортированные по нескольким столбцам.
Удалить таблицу в Cassandra
Чтобы удалить таблицу в Cassandra, используйте оператор DROP TABLE. Чтобы выбрать таблицу, которую вы хотите удалить, введите:
DESCRIBE TABLES;
Найдите таблицу, которую хотите удалить. Используйте имя таблицы, чтобы удалить ее:
DROP TABLE suppliers_by_product_type;
Запустите запрос DESCRIBE TABLES еще раз, чтобы убедиться, что вы успешно удалили таблицу.
Изменить таблицу в Cassandra
Cassandra CQL позволяет добавлять или удалять столбцы из таблицы. Используйте команду ALTER TABLE, чтобы внести изменения в таблицу.
Добавить столбец в таблицу
Перед добавлением столбца в таблицу рекомендуется просмотреть содержимое таблицы, чтобы убедиться, что имя столбца еще не существует.
После проверки используйте запрос ALTER TABLE в этом формате, чтобы добавить столбец:
ALTER TABLE suppliers_by_product
ADD supp_name text;
Снова используйте DESCRIBE TABLE, чтобы убедиться, что столбец появился в списке.
Удалить столбец из таблицы
Подобно добавлению столбца, вы можете удалить столбец из таблицы. Найдите столбец, который вы хотите удалить, с помощью запроса DESCRIBE TABLES.
Затем введите:
ALTER TABLE suppliers_by_product
DROP supp_product_quantity;
Примечание. Не указывайте тип данных для столбца, если вы хотите удалить его из таблицы. Вы получите ошибку “SyntaxException: line 1:48 mismatched input ‘text’ expecting EOF (ALTER TABLE suppliers_by_product DROP supp_name [text]…)”
Очистить таблицу в Cassandra
Если вы не хотите удалять всю таблицу, но вам нужно удалить все строки, используйте команду TRUNCATE.
Например, чтобы удалить все строки из таблицы поставщиков, введите:
TRUNCATE suppliers;
Чтобы убедиться, что в вашей таблице больше нет строк, используйте оператор SELECT.
После очистки таблицы изменения становятся постоянными, поэтому будьте осторожны при использовании этого запроса.
Итоги
В этом руководстве показано, как создавать таблицы в Cassandra для различных целей с использованием простых и составных первичных ключей. Примеры также включали использование составного ключа раздела для распределения данных по узлам.
Мы также рассмотрели, как вы можете удалять, изменять и очищать таблицы в Cassandra. Убедитесь, что вы удаляете или вносите изменения в правильные таблицы, чтобы избежать потенциальных проблем.
Сегодня в статье будет описан процесс установки и базовой настройки OpenVPN Access Server – полнофункциональное VPN SSL решение, которое включает в себя непосредственно OpenVPN сервер, веб-интерфейс для управления и клиенты для разных операционных систем – Windows, Mac, Android, IOS, Linux. Во встроенной бесплатной лицензии доступен функционал для одновременного подключения двух пользователей, и, при гибком использовании, этого хватит для реализации множества задач.
Пошаговое видео
Официальный сайт и процесс установки
У OpenVPN Access Server (далее – OVPN AS) есть официальный сайт - https://openvpn.net/ , на котором можно найти множество информации об установке OVPN AS на облачный сервер – вроде платформы Amazon Cloud (Amazon Web Services), на Linux-based операционную систему или на виртуальную машину. :
В нашем случае устанавливать будем на CentOS 6 версии, и, для этого необходимо перейти по ссылке Access Server Software Packages, там выбрать CentOS и разрядность ОС, в данном случае – CentOS 6 amd/x86 32-bit. Данная ссылка ведет на RPM-пакет, поэтому проще всего скопировать ссылку и далее скачать пакет с помощью команды wget (но об этом немного ниже). Как альтернативный путь установки – можно скачать на ваш ПК данный пакет и с помощью чего-то вроде WinSCP перенести файл на ваш сервер. Но, как мне кажется, с помощью wget это сделать на порядок быстрее и проще.
Далее подключаемся к серверу через терминал, например, Putty, и вводим команду, которая сохранит RPM пакет с OVPN AS в папку tmp в файл под названием ovpn.rpm:
wget -O /tmp/ovpn.rpm http://swupdate.openvpn.org/as/openvpn-as-2.1.4-CentOS6.i386.rpm
Осталось немного – далее необходимо установить данный пакет. Для начала переходим в нужную директорию с помощью команды cd /tmp и затем выполняем команду rpm -i ovpn.rpm. После чего возможна небольшая пауза, вы увидите, как происходит установка пакета, в конце вы должны увидеть подтверждение, что всё в порядке. Последний шаг, который необходимо сделать перед доступом к веб-интерфейсу – нужно поменять пароль на пользователе openvpn. Делается это следующей командой: passwd openvpn %ваш_пароль%. Если пароль будет простой, то ОС ругнётся – на это можно не обращать внимания.
Настройка OpenVPN Access Server с помощью веб-интерфейса
Сначала требуется зайти на веб-интерфейс: необходимо ввести адрес https://serveripaddress:943/admin – обратите внимание на обязательность https соединения и 943 порт – это очень важно. Если наберете без /admin попадете в пользовательский интерфейс. Вы, возможно, увидите предупреждение от браузера о небезопасности соединения – можете смело игнорировать. Попав на страницу аутентификации, вводите логин openvpn и пароль, который вы установили в предыдущем шаге. Вам должна открыться следующая картина:
Краткое описание каждого из разделов:
Status - общее состояние вашего VPN-сервера, пользователи, использующие сервис в данный момент, логи;
Configuration - конфигурация сервера – от лицензий до настроек веб-сервера и отказоустойчивости;
User Management - создание и управление пользователями и группами пользователей;
Authentication - настройка аутентификации и ее различных методов;
Tools - различные инструменты для проверки работоспособности, документация, тех. поддержка;
Первым делом идем по следующему пути Authentication → General и меняем метод аутентификации на Local:
Далее необходимо создать пользователя. Для этого нужно пройти по следующему пути: User Management → User Permissions → Add Extension → Choose IAX Extension и ввести имя нового пользователя(в нашем случае - Fedulya) и немного правее нажать Show . В поле Local Password ввести пароль, остальное все можно оставить по умолчанию.
Как заключительный шаг настройки, необходимо ввести ваш внешний IP-адрес во вкладке Server → Network → Settings, остальные настройки уже необходимо гибко выбирать в зависимости от ваших нужд – если у вас появятся вопросы, то оставляйте их в комментариях, с радостью ответим.
Важно – по умолчанию вам доступно только две лицензии для одновременного использования, поэтому создание множества юзеров без покупки дополнительных лицензий не имеет большого смысла
Заключение
Теперь можно зайти в пользовательский интерфейс по адресу https://serveripaddress:943/ ввести логин и пароль свежесозданного на предыдущем шаге пользователя и выбрать опцию «Connect». Далее произойдет установка клиента и автоматически загрузится ваш профиль. Как итог – в трее должно появиться диалоговое сообщение «Connected». Более подробно можете ознакомиться с процессом подключения в нашем видео про настройку OpenVPN Access Server
Привет! Сегодня в статье мы рассмотрим базовую настройку IP-АТС компании Cisco – CME – Call Manager Express, или как теперь он называемся Cisco Unified Communications Manager Express – CUCME. Также мы покажем как зарегистрировать телефоны, работающие по протоколам SCCP и SIP.
Чтобы понять, что необходимо настроить, рассмотрим, что происходит во время загрузки телефона. Процесс загрузки IP-телефона Cisco можно разделить на несколько этапов:
Телефон получает питание по Ethernet кабелю используя PoE (Power over Ethernet 802.3af), либо через блок питания;
Коммутатор присылает информацию о голосовом VLAN’e, используя протокол CDP (Cisco Discovery Protocol);
Телефон высылает DHCP запрос в голосовой VLAN, а в ответ DHCP сервер присылает информацию о IP адресации, включая DHCP Option 150, где указан адрес TFTP сервера;
Телефон связывается с TFTP сервером и скачивает конфигурационный файл и прошивку. В конфигурационном файле находятся данные об адресе и номере порта CME, а также название прошивки, которую он должен использовать. При первом подключении он отсутствует, и телефон скачивает файл по умолчанию XMLDefault.cnf.xml;
На основании IP адреса, указанного в конфигурационном файле телефон связывается с сервером обработки вызовов (в нашем случае это CME);
Теперь можем приступать к настройке оборудования.
Настройка voice VLAN
Чтобы разделить голосовой трафик и трафик с данными необходимо настроить голосовой VLAN на каждом порту коммутатора, который соединяется с IP телефонами.
switch#conf t – переход в режим конфигурации
switch(config)#interface fa0/1 – переход в режим конфигурации интерфейса
switch(config-if)#switchport mode access – настройка порта в качестве access
switch(config-if)#switchport voice vlan 100 – создание голосового VLAN с id 100
switch(config-if)#switchport access vlan 200 – создание VLAN данных с id 200
switch(config-if)#spanning-tree portfast – включение протокола STP
Настройка DHCP
Теперь необходимо настроить роутер Cisco как DHCP сервер для голосового VLAN. Команда Option 150 используется для указания адреса TFTP сервера, где хранятся конфигурационные файлы и прошивки.
router#ip dhcp pool VOICE – создание DHCP пула
router(dhcp-config)#network 192.168.1.0 255.255.255.0 – выделение подсети
router(dhcp-config)#default-router 192.168.1.1 – default gateway
router(dhcp-config)#option 150 192.168.1.1 – адрес TFTP сервера
router(dhcp-config)#dns-server 4.2.2.2 – адрес DNS сервера
Настройка NTP
Перейдем к настойке времени c использованием протокола NTP, при помощи которого мы сможем выставить корректные дату и время на всех телефонах.
router#conf t
router(config)#ntp server 64.209.210.20 – указываем адрес NTP сервера
router(config)#clock timezone MSK 3 – указываем временную зону
Настройка TFTP
Хотя маршрутизаторы Cisco можно использовать в качестве TFTP сервера, стоит заметить что для больших телефонных сетей лучше иметь отдельный TFTP сервер, поскольку файлы прошивки и конфигурации могут быстро заполнить всю доступную flash-память.
При использовании маршрутизатора в роли TFTP сервера необходимо вручную указать все файлы для скачивания, которые мы поместили во flash-памяти.
В нашем примере файлы находятся в папке phone/7940-7960/
router#conf t
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.bin alias P00308000500.bin
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.loads alias P00308000500.loads
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.sb2 alias P00308000500.sb2
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.sbn alias P00308000500.sbn
Здесь в команде tftp-server после alias указываем название файла прошивки, который будет запрашивать телефон, поскольку телефон не знает полный путь до файла, а запрашивает его только по названию.
Базовые настройки CME и регистрация телефонов
Теперь настроим необходимые параметры IP Source Address, Max-DN (Directory Number) и Max-Ephones для работы с протоколом SCCP.
router(config)#telephony-service – режим настройки телефонии
router(config-telepony)#ip source-address 192.168.1.1 – адрес, на который должны приходить запросы на регистрацию от телефонов
router(config-telepony)#max-ephones 24 – максимальное количество поддерживаемых телефонов
router(config-telepony)#max-dn 48 – максимальное количество поддерживаемых номеров
Параметры max-ephones и max-dn напрямую влияют на объем памяти, которую резервирует маршрутизатор для поддержки службы CME. При установке значения намного выше, чем необходимо, система может резервировать чрезмерные ресурсы и влиять на другие сетевые службы. Кроме того, параметр max-ephones не должен превышать количество приобретенных лицензий на функции.
После этого телефоны начнут процесс регистрации. Проверить статус регистрации можно командой show ephone summary
Настройка Ephone и Ephone-DN
Для начала попробуем разобраться, что это такое и в чем их отличие. Ephone можно представить в качестве физического телефона с MAC адресом, а Ephone-DN в качестве телефонного номера, который мы связываем с телефонным аппаратом.
Создадим номер Ephone-DN с номером 101:
router#conf t
router(config)#ephone-dn 1 – создание номера
router(config-ephone-dn)#number 101 – указываем номер
router(config-ephone-dn)#description Alexey Dobronravov – описание в CME
router(config-ephone-dn)#name Alexey Dobronravov – описание на телефоне
Теперь создадим Ephone и свяжем его с реальным телефоном по MAC-адресу:
router#conf t
router(config)#ephone 1 – создание образа телефона
router(config-ephone)#mac-address 0014.1c48.acb1 – указываем MAC-адрес
router(config-ephone)#button 1:1 – привязываем номер к аппарату
Мы привязываем номер к телефону на его физические кнопки, которые обычно находятся возле экрана. На них как раз можно привязывать линии, и телефон может одновременно несколько номеров. Синтаксис команды через которую идет привязка телефона выглядит как button [физическая кнопка] : [ephone-dn] . Таким образом, в примере мы привязали первой кнопке на телефоне созданный нами номер ephone-dn 1.
Теперь можем подключать наш телефон к сети, он пройдет все шаги загрузки и зарегистрируется на нашем CME. Таким же образом настраиваем другие телефоны и номера, после чего мы сможем совершать звонки между телефонами. Проверить статус телефона можно командой show ephone.
Регистрация SIP телефона
Теперь настроим CME для работы с телефонами по протоколу SIP. Первым делом разрешим звонки между SIP телефонами:
router#conf t
router(config)#voice service voip
router(config-voice)#allow-connections sip to sip
Настраиваем период регистрации телефонов (число – это время в секундах, по умолчанию 3600):
router#conf t
router(config)#voice service voip
router(config-voice)#registrar server expires max 3600 min 3600
Создаем класс кодеков, в котором указываем кодеки, которые будут использованы:
router#conf t
router(config)#voice class codec 1
router(config-voice)#codec preference 1 g711alaw - кодек первого приоритета
router(config-voice)#codec preference 1 g711ulaw - кодек второго приоритета
router(config-voice)#codec preference 1 g729br8 - кодек третьего приоритета
Создаем DN:
router#conf t
router(config)#voice register dn 1 – создаем DN
router(config-voice-register-dn)#number 201 – указываем номер
Настраиваем телефон:
router#conf t
router(config)#voice register pool 1
router(config-voice-register-pool)#id mac 0014.1c48.acb2 – указываем MAC телефона
router(config-voice-register-pool)#number 1 dn 1 – привязываем номер к первой линии
router(config-voice-register-pool)#voice-class codec 1 – используем созданный нами набор кодеков
router(config-voice-register-pool)#username admin password pass – создаем аутентификационные данные
После этого подключаем SIP телефон к сети и заходим по его веб-интерфейс черз бразуер по IP-адресу, находим настройки первой линии, где указываем адрес сервера 192.168.1.1 и логин с паролем admin/password, которые мы создали.
Теперь таким образом можно регистрировать SIP телефоны на CME.
