По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Давно прошли те времена, когда «база данных» представляла собой единую СУБД на основе реляционной модели данных, которую обычно устанавливали на самом мощном сервере в центре обработки данных. Такая база данных могла обслуживать все виду запросов – OLTP (On-Line Transaction Processing – обработка транзакций в режиме реального времени), OLAP (On-Line Analytical Processing – аналитическая обработка данных в режиме реального времени) – все, что нужно для бизнеса. В настоящее время базы данных работают на самом обычном оборудовании, они также стали более сложными с точки зрения высокой доступности и более специализированными для обработки определенного типа трафика. Специализация позволяет добиться гораздо большей производительности баз данных – все оптимизировано для работы с определенным типом данных: оптимизатор, механизм хранения, даже язык может быть не SQL, как это бывает обычно. Он может быть основан на SQL с некоторыми расширениями, которые позволяют более эффективно манипулировать данными, или может быть чем-то абсолютно новым, созданным с нуля. На сегодня мы имеем аналитические столбчатые базы данных, такие как ClickHouse или MariaDB AX, платформы обработки и анализа больших данных, такие как Hadoop, решения NoSQL, такие как MongoDB или Cassandra, хранилища данных типа «ключ-значение», такие как Redis. Мы также имеем базы данных временных рядов, такие как Prometheus или TimeScaleDB. Это именно то, на чем мы акцентируем внимание в данной статье. Базы данных временных рядов (Time Series Databases) – что это такое и зачем вам нужно еще одно хранилище данных в своей среде. Для чего нужны базы данных временных рядов? Как видно из названия, базы данных временных рядов предназначены для хранения данных, которые изменяются со временем. Это могут быть абсолютно любые данные, собранные с течением времени. Это могут быть метрические показатели, собранные из некоторых систем – все системы трендов являются примерами данных временных рядов. Каждый раз, когда вы смотрите на информационные панели в ClusterControl, на самом деле вы видите визуальное представление временных рядов, хранящихся в Prometheus – базе данных временных рядов. Временные ряды не ограничиваются метрическими показателями базы данных. Метриками может быть что угодно – изменение потока людей, входящих в торговый центр, с течением времени, изменение трафика в городе, использование общественного транспорта в течение дня, течение воды в реке или ручье, количество энергии, вырабатываемое водной установкой – все это и все остальное, что можно измерить во времени, является примером временных рядов. Такие данные можно запросить, построить, проанализировать, чтобы найти корреляционную зависимость между различными метриками. Структура данных в базе данных временных рядов Как вы понимаете, самая важная составляющая данных в базе данных временных рядов – это время. Существует два основных способа хранения данных. Первый способ чем-то похож на хранилище «ключ-значение» и выглядит так: Метка времени Метрика 1 2019-03-28 00:00:01 2356 2019-03-28 00:00:02 6874 2019-03-28 00:00:03 3245 2019-03-28 00:00:04 2340 Проще говоря, для каждой метки времени имеется некоторое значение метрики. Второй способ подразумевает хранения большего числа показателей. Вместо того, чтобы хранить каждую метрику в отдельной таблице или коллекции, их можно хранить вместе. Метка времени Метрика 1 Метрика 2 Метрика 3 Метрика 4 Метрика 5 2019-03-28 00:00:01 765 873 124 98 0 2019-03-28 00:00:02 5876 765 872 7864 634 2019-03-28 00:00:03 234 7679 98 65 34 2019-03-28 00:00:04 345 3 598 0 7345 Такая структура данных, когда все метрики связаны, позволяет более эффективно запрашивать данные. Вместо того, чтобы читать несколько таблиц и объединять их для получения всех метрик, достаточно прочитать лишь одну единственную таблицу, чтобы подготовить данные к обработке и представлению. У вас может возникнуть вопрос – что же здесь нового? Чем эта база данных отличается от обычной таблицы в MySQL или в любой другой реляционной базе данных? Да, действительно, конструкция таблиц очень похожа. Однако есть существенные различия в рабочей нагрузке, которые могут существенно повысить производительность, если хранилище данных предназначено для использования такого рода таблиц, Временные ряды, как правило, только растут. Маловероятно, что вы будете обновлять старые данные. Чаще всего строки в таблице не удаляются, однако вам может понадобиться какая-то агрегация данных с течением времени. Если принять это при проектировании внутреннего устройства базы данных, то этот факт будет иметь существенное расхождение в сравнении со «стандартными» реляционными (и не реляционными) базами данных, предназначенными для обработки транзакций в режиме реального времени. Что здесь является наиболее важным, так это способность последовательно хранить большие объемы данных, поступающих со временем. Можно, конечно, использовать РСУБД для хранения временных рядов, но она не оптимизирована для этого. Данные и индексы, сгенерированные на ее основе, могут стать слишком большими, и запросы будут проходить очень медленно. Механизмы хранения данных, используемые в СУБД, предназначены для хранения различных типов данных. Обычно они оптимизированы для рабочей нагрузки обработки транзакций в режиме реального времени, которая включает в себя частое изменение и удаление данных. В реляционных базах данных также часто отсутствуют специализированные функции и функции, предназначенные для обработки временных рядов. Мы уже упоминали, что вы вероятно столкнетесь с необходимостью агрегировать данные, полученные ранее какой-то временной метки. Вы также можете иметь возможность легко запускать некоторые статистические функции для ваших временных рядов, чтобы сглаживать их, определять и сравнивать тренды, интерполировать данные и многое другое. Здесь, например, вы можете найти некоторые функции, которые Prometheus предоставляет пользователям. Примеры баз данных временных рядов На рынке существует множество баз данных временных рядов, поэтому, естественно, что рассмотреть все мы не сможем. Но мы все же хотели привести несколько примеров баз данных временных рядов, которые, возможно, вам уже знакомы или которые вы уже, возможно, используете (сознательно или нет). InfluxDB InfluxDB была разработана компанией InfluxData. Это база данных временных рядов с открытым исходным кодом, написанная языке программирования Go. Хранилище данных позволяет вводить запросы данных на языке, подобном SQL, что позволяет разработчикам легко интегрировать эту базу данных в свои приложения. InfluxDB также может работать как часть коммерческого решения, которое охватывает весь стек, предназначенный для обеспечения процесса обработки данных временных рядов, полнофункциональной высоко доступной средой. Prometheus Prometheus – это еще один проект с отрытым исходным кодом, который также написан на языке программирования Go. Он обычно используется в качестве серверной части для различных инструментов и проектов с открытым исходным кодом, например, Percona Monitoring and Management. Prometheus также является наилучшим вариантом для ClusterControl. Prometheus можно развернуть из ClusterControl с целью хранения данных временных рядов, собранных на серверах баз данных, контролируемых и управляемых ClusterControl: Prometheus широко используется в мире Open Source, поэтому его довольно легко интегрировать в уже существующую среду с помощью нескольких экспортеров. RRDtool Это один из примеров базы данных временных рядов, которую многие используют, даже не подозревая об этом. RRDtool – это достаточно популярный проект с открытым исходным кодом для хранения и визуализации временных рядов. Если вы хоть раз использовали Cacti, то и RRDtool вы тоже использовали. Если вы разработали свое собственное решение, вполне вероятно, что и здесь вы тоже использовали RRDtool в качестве серверной части для хранения данных. Сейчас RRDtool, возможно, не так популярен, как это было в 2000-2010 годах. В те годы это был самый распространенный способ хранения временных рядов. Забавный факт – ранние версии ClusterControl использовали именно RRDtool. TimeScale TineScale – это база данных временных рядов, разработанная на основе PostgreSQL. Это расширение для PostgreSQL, которое использует основное хранилище данных для предоставления доступа к ним, что означает, что оно поддерживает все разновидности SQL, доступные для использования. Поскольку это расширение, то оно использует все функции и расширения PostgreSQL. Вы можете совмещать временные ряды с другими типами данных, например, объединять временные ряды с метаданными, пополняя информацией выходные данные. Вы также можете выполнить более сложную фильтрацию, используя JOIN и таблицы без временных рядов. Геоинформационное обеспечение в PostgreSQL TimeScale можно использовать для отслеживания географических местоположений с течением времени, а также использовать все возможности масштабирования, предлагаемые PostgreSQL, включая репликацию. Timestream Amazon Web Services также предлагает базы данных временных рядов. О Timestream было объявлено совсем недавно, в ноябре 2018 года. Она добавляет еще одно хранилище данных в портфель AWS, помогая пользователям обрабатывать временные ряды, поступающие из таких источников, как устройства Интернет вещей или отслеживаемые сервисы. Его также можно использовать для хранения метрических данных, полученных из журналов, созданных несколькими службами. Это позволяет пользователям выполнять аналитические запросы к ним, помогая понять закономерности и условия, в которых работают службы. Tiemstream, как и большинство сервисов AWS, обеспечивает простой способ масштабирования в случае, если с течением времени возрастает потребность в хранении и анализе данных. Как видите, вариантов баз данных временных рядов на рынке множество, и это не удивительно. В последнее время, все более популярным становится анализ временных рядов, поскольку он становится все более важных для различных бизнес-операций. К счастью, есть большое количество проектов как с открытым кодом, так и коммерческих. И с большой долей вероятности вы сможете найти инструмент, который полностью удовлетворит ваши потребности.
img
Модуль «Blacklist» (черный список) в FreePBX 13 предназначен для формирования списка номеров, звонки с которых будут запрещены на IP – АТС Asterisk. Если кто-либо из указанного списка, позвонит на вашу АТС, то он либо будет отправлен по заранее настроенному маршруту, либо по умолчанию, он услышит следующее сообщение: Создаем черный список В верхней части, в меню навигации, нажмите Admin, а затем в списке выберите Blacklist Далее, нажмите + Blacklist Number, после чего появится pop-up окно, в котором необходимо внести настройки номеров, которые мы хотим блокировать. Давайте посмотрим что можно тут настроить: Number Введите номер, который необходимо заблокировать. Чтобы точно ввести номер в правильном формате, найдите звонок с номера, который вы хотите внести в черный список. Для этого, в верхнем меню навигации FreePBX нажмите на вкладку Reports -> CDR Reports. Найдите указанный звонок и скопируйте номер из столбца CallerID. Description Укажите наглядное описание для указанного в предыдущем пункте номера – это поможет вам проще ориентироваться в настройках в будущем. По окончанию настроек нажмите Save Changes. Готово, данная настройка позволяет нам запретить звонки с номера 71234567890. Удаление номера из черного списка Чтобы удалить номер из черного листа, отметьте необходимую запись галочкой, а затем нажмите на красную кнопку Delete Selected. Так же вы можете нажать на соответствующий значок, который находится в столбце Actions. Просмотр статистики по заблокированным номерам Модуль Blacklist имеет встроенную статистику по заблокированным номерам. Для ее просмотра нажмите на соответствующий значок в поле Actions Импорт в формате .csv Если Вам необходимо внести сразу несколько номеров из .csv файла, нажмите на вкладку Import/Export При импорте номеров из .csv файла, формате должен быть следующим: number,description {NUMBER},{DESCRIPTION} Блокировка Unknown (неизвестных номеров) Если вы хотите заблокировать звонки с неизвестных номеров, с которых порой звонят мошенники, перейдите во вкладку Settings и отметьте Yes в поле Block Unknown/Blocked Caller ID. Так же, вы можете выбрать назначение для звонка, который находится в черном списке. Например, данный звонок можно отправлять на заранее записанное голосовое сообщение. По окончанию настроек нажмите Submit Блокировка с помощью телефона Помимо настроек в интерфейсе FreePBX, пользователь может внести номер в черный список с помощью специального телефонного кода. Данные телефонные коды можно найти перейдя в меню навигации во вкладку Admin -> Feature Codes Разберем каждый из кодов: *30 - ручной ввод номера, который необходимо заблокировать *32 - будет заблокирован последний звонок, который пришел на вашу АТС *31 - ручной ввод номера, который необходимо удалить из черного списка
img
Есть два типа алгоритмов шифрования, которые используются для шифрования данных. Это симметричные и асимметричные алгоритмы. В этой статье мы подробно изучим функции и операции алгоритмов симметричного шифрования. Чтобы зашифровать текстовое сообщение, требуются как шифр, так и ключ. При симметричном шифровании ключ используется для шифрования сообщения открытого текста в зашифрованный текст, и тот же ключ используется для дешифрования зашифрованного текста обратно в открытый текст. Хотя алгоритмы симметричного шифрования обычно используются во многих системах, основным недостатком является то, что в случае потери или кражи секретного ключа зашифрованный текст может быть взломан. Если злоумышленник сможет получить ключ, он сможет расшифровать сообщение и просмотреть его содержимое. Поэтому чрезвычайно важно, чтобы ключ всегда был в безопасности. Симметричные алгоритмы используют длину ключа в диапазоне от 40 до 256 бит. Эти длины ключей намного короче, чем те, которые используются в асимметричных алгоритмах. Однако симметричные алгоритмы способны обеспечить лучшую производительность, например, при более быстром шифровании данных, по сравнению с асимметричными алгоритмами. Чтобы лучше понять, как работают симметричные алгоритмы, давайте представим, что есть два пользователя, Алиса и Сергей Алексеевич, которые хотят обеспечить конфиденциальность сообщений, которыми они обмениваются. Оба пользователя знают о Pre-Shared Key (PSK) или секретном ключе до обмена сообщениями. На следующем рисунке демонстрируется, что Алиса использует секретный ключ для шифрования текстового сообщения перед его отправкой Сергею Алексеевичу: После того, как сообщение будет зашифровано, Алиса отправит его Сергею Алексеевичу, который будет использовать тот же PSK или секретный ключ, чтобы расшифровать сообщение и получить исходное текстовое сообщение, как показано ниже: Тот же процесс повторяется всякий раз, когда Сергей Алексеевич хочет отправить сообщение Алисе. Тот же ключ, который используется для шифрования данных, используется для дешифрования сообщения. Симметричные алгоритмы Симметричные алгоритмы могут шифровать данные, используя либо блочный шифр, либо потоковый шифр. Блочный шифр берет блок фиксированной длины открытого текстового сообщения и выполняет процесс шифрования. Эти блоки обычно являются 64-битными или 128-битными блоками. На следующем рисунке представлен блочный шифр: В свою очередь, потоковый шифр будет шифровать либо один бит, либо один байт за раз. Вместо того, чтобы шифровать весь блок открытого текста, представьте, что с помощью потокового шифра размер блока уменьшается до одного бита или одного байта. На следующем рисунке представлен потоковый шифр: Считается, что потоковые шифры выполняют шифрование данных быстрее, чем блочные шифры, поскольку они непрерывно шифруют данные по одному биту или одному байту за раз. Ниже приводится список симметричных алгоритмов и их характеристики: Data Encryption Standard (DES): это очень старый алгоритм симметричного шифрования, который шифрует данные с использованием блоков размером 64 бита и размером ключа 54 бита. Triple Data Encryption Standard (3DES): это более новая версия DES. 3DES выполняет процесс шифрования трижды. Это означает, что первый раунд берет данные открытого текста и выполняет шифрование для создания зашифрованного текста. Он будет использовать зашифрованный текст в качестве входных данных и снова выполнит его шифрование, что является вторым этапом. Он возьмет новый зашифрованный текст из второго раунда и выполнит его шифрование, чтобы создать окончательный результат, который завершает третий раунд шифрования, отсюда и название тройной DES. 3DES использует ключи размером 112 бит и 168 бит. Advanced Encryption Standard (AES): широко используется во многих современных системах передачи данных и протоколах. AES использует ключи размером 128, 192 и 256 бит. Он выполняет шифрование данных в блоках фиксированного размера: 128, 192 и 256 бит. AES считается намного более безопасным, чем алгоритмы шифрования DES и 3DES. Безопасный сетевой протокол Secure Shell (SSH) версии 2 использует алгоритм AES с режимом счетчика (AES-CRT) в качестве предпочтительного алгоритма шифрования данных. Software-Optimized Encryption Algorithm (SEAL): это еще один симметричный алгоритм. SEAL - это алгоритм потокового шифрования, который использует размер ключа 160 бит. Rivest Cipher (RC): это серия наборов шифров, созданных Роном Ривестом, таких как RC2, RC3, RC4, RC5 и RC6. Наиболее распространенным является RC4, потоковый шифр, использующий размер ключа до 256 бит. Асимметричные алгоритмы шифрования Асимметричные алгоритмы выполняют шифрование данных с использованием двух разных ключей в виде пары ключей. Это означает, что один ключ используется для шифрования данных, а другой-для расшифровки сообщения. Если какой-либо ключ потерян или украден, сообщение не будет взломано или прочитано. На следующем рисунке показан пользователь Алиса, использующий ключ для шифрования текстового сообщения: Когда целевой хост, Сергея Алексеевича, получает сообщение от отправителя, он будет использовать другой ключ для расшифровки сообщения, как показано на следующем рисунке: Асимметричные алгоритмы используют пару ключей, известную как открытый (public) и закрытый (private) ключи. Открытый ключ предоставляется любому, кто хочет связаться с вами, отсюда и название открытый ключ. Закрытый ключ хранится у вас. Только пользователи пары ключей могут шифровать и расшифровывать данные. Никакие другие ключи не могут быть использованы для расшифровки сообщения, зашифрованного вашим закрытым ключом. Важное примечание! Асимметричное шифрование использует размер ключа от 512 до 4096 бит. Однако рекомендуется размер ключа в 1024 бита или больше. Чтобы лучше понять принцип работы этих открытых и закрытых ключей, давайте представим, что есть два пользователя, Сергей Алексеевич и Алиса, которые хотят зашифровать данные между собой, используя асимметричное шифрование. Для начала предположим, что Алиса хочет отправить сообщение Сергею Алексеевичу. Для этого Сергей Алексеевич должен создать пару, открытого и закрытого ключей и поделиться открытым ключом с Алисой следующим образом: Закрытый ключ хранится у Сергея Алексеевича, а Алиса получает только открытый ключ Сергея Алексеевича. Алиса будет использовать открытый ключ Сергея Алексеевича для шифрования любого сообщения, которое она хочет отправить Сергею Алексеевичу. Когда Сергей Алексеевич получит сообщение, то он будет использовать свой закрытый ключ, чтобы расшифровать сообщение и прочитать его содержимое. На следующем рисунке показано, как Алиса отправляет Сергею Алексеевичу зашифрованное сообщение: Как показано на предыдущем рисунке, Алиса использовала открытый ключ Сергея Алексеевича для шифрования сообщения. Если злоумышленник перехватит зашифрованный текст во время передачи, сообщение будет в безопасности, поскольку злоумышленник не имеет закрытого ключа Сергея Алексеевича. Ниже приведены некоторые сетевые протоколы, использующие асимметричные алгоритмы: SSH Secure Sockets Layer (SSL) Internet Key Exchange (IKE) Pretty Good Privacy (PGP) Ниже приведен список асимметричных алгоритмов и их функции: Diffie-Hellman (DH): DH не является алгоритмом шифрования данных, а скорее используется для безопасной доставки пар ключей по незащищенной сети, такой как Интернет. Проще говоря, он позволяет Сергею Алексеевичу и Алисе согласовывать ключ, который может использоваться для шифрования сообщений, отправляемых между ними. DH использует ключи размером 512 бит, 1024 бит, 2048 бит, 3072 бит и 4096 бит. Ниже приведен список различных групп DH и их соответствующих размеров ключей: группа DH 1: 768 бит, группа 2 DH: 1024 бит, группа 5 DH: 1536 бит, группа 14 DH: 2048 бит, группа 15 DH: 3072 бит, и группа 16 DH: 4096 бит. Digital Signature Standard (DSS): DSS - это асимметричный алгоритм, который используется для цифровых подписей. Алгоритм цифровой подписи (DSA) - это алгоритм с открытым ключом, который использует схему подписи ElGamal. Размеры ключей варьируются от 512 до 1024 бит. Rivest-Shamir-Adleman (RSA): этот алгоритм шифрования был создан Ron Rivest, Adi Shamir, и Leonard Adleman. Он был разработан как алгоритм асимметричного шифрования, который использует пары открытого и закрытого ключей между устройствами. RSA использует ключи размером от 512 до 2048 бит. EIGamal: EIGamal - еще один алгоритм асимметричного шифрования, который использует пару открытого и закрытого ключей для шифрования данных. Этот алгоритм основан на процессе согласования ключей DH. Примечательной особенностью использования этого алгоритма является то, что он принимает открытый текст (input) и преобразует его в зашифрованный текст (output), который вдвое превышает размер входного сообщения. Elliptical Curve (EC): EC используется с асимметричным шифрованием. EC использует кривые вместо чисел. Поскольку мобильные устройства, такие как смартфоны, не имеют высокопроизводительного процессора и объема памяти, как компьютер, EC использует ключи меньшего размера.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59