Архив рубрики: Полезная информация

Настройка безопасности стека ELK с помощью Nginx

Стек ELK (стек Elastic) — это набор открытых программ, разработанных Elastic, которые позволяют выполнять поиск, анализ и визуализацию записей журналов.

Стек ELK состоит из четырех основных компонентов:

  • Elasticsearch. Распределенная поисковая система, доступная по RESTful протоколу, которая хранит все собранные данные.
  • Logstash. Компонент, осуществляющий предобработку, дополнение, фильтрацию и маршрутизацию загружаемых в Elasticsearch данных.
  • Kibana. Аналитическая и визуализационная система с web-интерфейсом, позволяющая выполнять комплексные запросы к Elasticsearch и отображать их результаты в виде таблиц и диаграмм.
  • Beats. Семейство легких специализированных отправителей данных, тесно интегрированных с Logstash и Elasticsearch.

Если вы следите за новостями об Elasticsearch, то могли слышать о ряде случаев раскрытия конфиденциальных данных, хранящихся в кластерах Elasticsearch. Вот только некоторые ссылки на статьи: Equifax, CITI, AIESEC.

Поскольку Elasticsearch и Kibana поставляются без встроенного механизма аутентификации, данные могут легко подвергнуться атаке, если не предпринять простые меры по их защите.

В этой статье мы рассмотрим, как реализовать один из наиболее распространенных и простых методов защиты стека ELK — установку Nginx в качестве обратного прокси-сервера перед Elasticsearch и Kibana.

Читать далее

Развертывание отказоустойчивого кластера Elasticsearch в Linux

Elasticsearch — это масштабируемый полнотекстовый поисковый и аналитический поисковый движок с открытым исходным кодом, позволяющий хранить большие объемы данных, проводить среди них быстрый поиск и аналитику. Он является чрезвычайно мощным инструментом для поиска и анализа данных, благодаря его способности к масштабированию. Описание всех преимуществ этого движка доступно на официальном сайте.

Читать далее

Улучшение в Cloud2: уведомление по SMS при остановке, отключении VM и активации услуги

Специально для вашего удобства мы реализовали функцию регистрации мобильного номера, на который будут отправляться SMS-уведомления, для каждой услуги Cloud2. С помощью этой функции вы можете задать номер мобильного телефона, куда будет приходить уведомление при изменении состояния услуги. В настоящий момент мы поддерживает уведомления при остановке, отключении виртуальных машин, и запуске услуги.

Виртуальные машины в Cloud2 не отключаются автоматически при возникновении отрицательного баланса. Это позволяет вам продолжать пользоваться услугой даже тогда, когда в биллинге у нее сменяется статус с активной на отключенную.

Теперь, вы можете задать номер телефона, куда будут приходить уведомления о смене состояния услуги, что позволит вам своевременно внести средства для безостановочного использования.

Пример такой настройки вы можете видеть на снимке экрана, приведенном ниже:

Номер телефона для уведомлений можно задать в формате +79998887777 или 79998887777.

Для задания номера телефона для SMS-уведомлений для услуги необходимо дважды кликнуть на услугу в биллинге, заполнить указанное поле и сохранить изменения.

Предотвращение взаимных блокировок в Galera с помощью HAProxy

В данном руководстве рассматривается настройка балансировщика HAProxy для распределения операций записи на выделенный сервер и операций чтения между всеми узлами кластера Galera с целью предотвращения ситуацией блокировки (deadlock).

Кластер Galera имеет известные ограничения, одним из которых является то, что он использует оптимистическую блокировку всего кластера. Это может вызвать откат некоторых транзакций. С увеличением числа доступных для записи узлов Master вероятность отката транзакций может увеличиться, особенно если клиенты изменяют сравнительно малый набор данных. Всегда можно повторить транзакцию, и, вероятно, она будет выполнена при повторных попытках, но это увеличит задержку транзакции. Существует ряд архитектурных решений, применяемых в приложениях, которые особенно подвержены частому возникновению ситуации взаимной блокировки (deadlock), например, таблицы последовательностей.

Читать далее

Механизмы кэширования ARC и L2ARC в ZFS

У ZFS есть две интересные функции, которые значительно повышают производительность операций чтения. Речь идет о механизмах кэширования ARC и L2ARC. В этой статье рассмотрим их подробнее.

Читать далее

Шифрование и расшифровка файлов с помощью асимметричного шифрования ключами GPG

Данная статья поможет вам научиться зашифровывать и расшифровывать файлы с помощью GPG. Инструкции, приведенные в этой статье, подходят для любой операционной системы с установленным программным обеспечением GPG.

Шифрование — важный и абсолютно необходимый способ защиты конфиденциальной информации. Личные файлы, представляющую угрозу при случайном распространении, должны быть зашифрованы, и GPG является идеальным решением.

GPG (также известный как GnuPG) является свободной реализацией стандарта OpenPGP и используется для шифрования информации с помощью различных алгоритмов (RSA, DSA, AES и других).

Читать далее

Балансировка нагрузки на кластер MySQL с помощью HAProxy

Введение

Как правило, приложение взаимодействует с кластером, устанавливая соединение с одним из доступных узлов. Если узел базы данных становится недоступен, приложение должно переподключиться к другому узлу базы данных, чтобы продолжать обрабатывать запросы.

Существуют различные способы обеспечения отказоустойчивого соединения с одним или несколькими серверами базы данных MySQL. Один из них заключается в использовании драйвера базы данных, поддерживающего пул соединений, балансировку нагрузки и отработку отказа, например:

  • драйвер JDBC для MySQL (MySQL Connector/J);
  • драйвер, используемый по умолчанию в PHP MySQL для master-slave (mysqlnd-ms).

Эти драйверы позволяют обеспечить прозрачность подключения клиентов к автономному серверу MySQL, решению MySQL Cluster (NDB) или топологии, использующим репликацию MySQL.

Однако при использовании этих драйверов с кластером Galera для MySQL или MariaDB есть ряд проблем, так как они не обладают расширенной информацией о состоянии Galera. Например, узел-донор Galera может находиться в режиме «только для чтения» , когда помогает другому узлу повторно синхронизироваться (если для передачи снимка состояния (SST) используется mysqldump или rsync), или в случае split brain он может быть в состоянии Non-Primary. То есть, существуют случаи, когда даже драйверы с поддержкой пуллинга и балансировки не предоставляют необходимый уровень поддержки кластера.

Часто используемое альтернативное решение заключается в применении балансировщика нагрузки между клиентами и кластером базы данных. Из этой статьи вы узнаете, как с помощью ClusterControl развернуть, настроить и управлять балансировкой нагрузки MySQL с использованием HAProxy.

Читать далее

Установка и настройка среды разработки Python 3 в Ubuntu 18.04

Python — это гибкий и универсальный язык программирования, который является отличным решением для реализации сценариев, автоматизации, анализа данных, машинного обучения и общей разработки.

Из этой статьи вы узнаете, как установить Python и настроить среду разработки на Ubuntu 18.04.

Читать далее

Принципы работы кластера Galera для MySQL и управление кластером с помощью ClusterControl

В данном руководстве предоставляется основная информация о высокодоступном кластере Galera для MySQL/MariaDB. Прочитав статью до конца, вы узнаете ответы на вопросы:

  • как работает Galera Cluster;
  • чем репликация Galera Cluster отличается от репликации MySQL;
  • какие настройки рекомендованы для кластера Galera;
  • какими преимуществами и недостатками обладает Galera Cluster;
  • какие преимущества есть в объединении обоих способов репликации в рамках одного развертывания;
  • какие существуют различия в реализациях Galera у различных поставщиков;
  • как управлять кластером Galera;
  • какие стратегии резервного копирования необходимо использовать при использовании Galera.

Также, в статье вы найдете практический раздел о том, как быстро развернуть и управлять кластером с помощью ClusterControl. Для выполнения практической части статьи вам понадобится 4 сервера под управлением Ubuntu Linux 16.04 и новее, или CentOS 7.

Читать далее

Настройка сервера Linux для Tornado в CentOS 7, Debian 9 Stretch, Ubuntu 18.04 Bionic

Tornado — популярный минималистичный фреймворк для разработки web-сервисов с помощью Python. Он часто применяется как для создания обычных сервисов с RESTful-интерфейсом, так и для реализации приложений, использующих Websocket, что идеально реализуется с помощью асинхронных функций языка.

Разработка фреймворка ведется на GitHub. На следующем изображении вы можете видеть, что Tornado активно разрабатывается сообществом:

Настройка сервера для продуктового использования Tornado сопряжена с рядом дополнительных действий, которые требуется выполнить для преодоления ограничений однопоточной природы сервера Tornado — для утилизации всех ядер сервера на многоядерных CPU необходимо запустить несколько экземпляров сервера Tornado и распределить нагрузку между исполняющимися экземплярами с помощью балансировщика нагрузки.

Закончив чтение данного руководства, вы научитесь самостоятельно настраивать минималистичный сервер для для Tornado без лишних компонентов. Ваше приложение будет доступно по защищенному протоколу HTTPS с поддержкой бесплатного сертификата Let’s Encrypt, балансировка трафика между выполняющимися экземплярами приложения Tornado будет осуществляться с помощью Nginx.

Читать далее