Практически любое современное клиент-серверное приложение не обходится без СУБД и в большинстве организаций обслуживание серверов баз данных лежит исключительно на плечах сисадмина. Штатные инструменты позволяют решить только базовые задачи и их функций не всегда достаточно. Утилиты сторонних разработчиков сделают администрирование MySQL и клонов, очень простым.

Интерфейс администрирования

MySQL и клоны по умолчанию распространяются без графического интерфейса. В самых простых случаях с несколькими базами для управления достаточно командной строки, когда же количество серверов, баз и админов их обслуживающих переваливает за десяток необходимость в GUI становится более очевидной. Oracle предлагает свою разработку — единый инструмент для разработчиков баз данных и администраторов MySQL Workbench(mysql.com/products/workbench) для Windows, Linux, Mac OS X. Это мощная среда с большими возможностями позволяющая визуально проектировать, создавать и управлять базами данных. Доступны все инструменты для настройки серверов, администрирования учетных записей, бэкапа и восстановления, аудита и простого мониторинга состояния. Также с его помощью можно легко выполнить миграцию с других СУБД — MS SQL Server, Sybase ASE, PostreSQL и другие. Возможности к тому же можно расширить при помощи плагинов. Интерфейс не локализован. Функций очень много поэтому некоторое время придется потратить чтобы освоиться, хотя вообщем среда удобная и все понятно. Версия Community (OSS) Edition распространяется по лицензии GNU GPL. Установка проблем не вызывает, доступны пакеты под разные дистрибутивы Linux, Windows и Mac OS X. Для пользователей RedHat/CentOS лучше воспользоваться в EPEL, в Ubuntu APT репозитарием разработчика(dev.mysql.com/downloads/repo/apt).

	$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb
	$ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb
	$ sudo apt-get install mysql-workbench

У MySQL Workbench очень богатые возможности по администрированию MySQL

Очень популярен среди хостеров phpMyAdmin(phpmyadmin.net) позволяющий выполнить в интуитивной среде большинство операций по управлению базами данных, работе с таблицами, индексами, правами доступа, настройка репликации, экспорт информации, бэкап/восстановление, просматривать статистику и так далее. При этом остается возможность непосредственного ввода любых SQL запросов. Поддерживается управление несколькими серверами. Все достаточно интуитивно, и с администрированием может справиться пользователь без особой подготовки, с любого устройства где есть браузер. В Сети множество инструкций и примеров по использованию phpMyAdmin. Установка из репозитария пакетов проблем не вызывает, в качестве веб-сервера можно использовать не только Apache, но и более легкие nginx или lighttpd. Некоторые панели управления хостингом вроде cPanel и Plesk имеют поддержку phpMyAdmin.
phpMyAdmin стандарт среди интерфейсов управления MySQL

Пользователи Windows наверняка оценят HeidiSQL(heidisql.com) поддерживающий управление MySQL, MS SQL и PostgreSQL (пока экспериментально) и распространяемый под OpenSource лицензией. Программа имеет очень удобный интерфейс, поддерживает подключение сразу к нескольким серверам, которые доступны в одном окне, это упрощает операции по экспорту/импорту данных. Доступно создание и редактирование баз, таблиц (и т.д.), управление привилегиями, экспорт таблиц (CSV, HTML, XML, SQL …), поиск, оптимизация, мониторинг. При написании запросов помогает автодополнение. Поддерживается командная строка, возможно подключение по SSH тоннелю. Есть Portable версия, используя Wine его можно запустить и в *nix/Mac OS X.
Для тех кому не подошли описанные продукты в интернет можно найти большое количество аналогов — SQLyog(code.google.com/p/sqlyog), dbForge Studio for MySQL(devart.com/ru/dbforge/mysql/studio), TOra(torasql.com), SQL Buddy(sqlbuddy.com) и другие.

Утилиты мониторинга

Как и любое приложение СУБД требует постоянного наблюдения за своей работой, чтобы в случае проблем легко можно было найти узкое место. Общую информацию о работу MySQL можно получить при помощи стандартного клиента mysqladmin, запросы вроде SLOW QUERY LOG, SHOW PROCCESSLIST, SHOW VARIABLES, SHOW GLOBAL STATUS, и другие редко дают четкую картину информацию, так как медленные запросы есть всегда, но они не обязательно влияют на работу сервиса. Есть еще утилита mysqldumpslow которая анализует данные slow.log и выводит самые частые медленные запросы.
Версия Enterprise предлагает специальный инструмент MySQL Enterprise Monitor, который предоставляет в реальном времени информацию о производительности и доступности всех баз данных MySQL. Кроме того для большинства систем мониторинга, включая OpenSource Nagios, Cacti, Zabbix, Ganglia доступны специальные плагины. Например, Nagios(nagios.com/solutions/mysql-monitoring). Каждый из плагинов должен быть правильно настроен, чтобы представить подробную информацию о том, что происходит в MySQL, а это не редко требует опыта. Разворачивать полноценную систему мониторинга в том случае когда задача только контроль СУБД, не всегда рационально. В этом случае на помощь приходят специализированные инструменты.
К сожалению весьма популярный MyTOP(github.com/jzawodn/mytop) уже более двух лет не развивается (хотя это не значит что его нельзя использовать), но у него есть прекрасная и более функциональная замена. Начиная с версии MySQL 3.23.41 в состав InnoDB входит InnoDB Monitor innotop(code.google.com/p/innotop), некий аналог юниксовского top для этой СУБД выводящая в удобном виде информацию по внутреннему состоянию InnoDB, которая может пригодиться при настройке производительности. Вариантов запуска утилиты много. Самый простой выполнить от имени определенного пользователя без параметров:

	$ innotop -u root -p password

По умолчанию подключение производится к локлаьному серверу, но можно указать любой узел или мониторить сразу несколько серверов. Список всех команд (Shift+клавиша) можно получить нажав клавишу вопроса. Например, Shift+Q выведет список всех текущих запросов. Параметр — write позволяет сохранить данные соединения в файл .innotop/innotop.conf:

	$ innotop --write

Единственное неудобство по указанным утилитам, они показывают информацию в реальном времени, а о сохранении и последующем анализе статистических данных следует позаботиться самому.
Ключи innotop

Появившийся в 2009 году проект mycheckpoint(code.openark.org/forge/mycheckpoint) за несколько лет стал фактически стандартным инструментом решение для мониторинга MySQL. Причина популярности уникальный подход — для хранения и запроса используется база данных, в которую (одна операция INSERT) собираются данные о метриках мониторинга, статистики и переменных MySQL, информации об ОС Linux (состояние ОЗУ и swap, нагрузка и т.п.). Также в базу попадают результаты пользовательских запросов. Собранную информацию легко просмотреть при помощи простых SELECT запросов. При этом администратор получает наглядные графики (на основе Google Chart API), отчеты и метрики, которые генерируются на лету. Для вывода HTML отчетов может использоваться собственный веб-сервер. Также могут быть настроены предупреждения отсылаемые по email. Возможен мониторинг удаленной системы и нескольких серверов.
Написан на Python, поэтому установка сложностей не вызывает. Разработчики предлагают deb, rpm и tar.gz пакет и сырцы.
В Ubuntu следует ввести следующие команды:

	$ sudo apt-get install python-mysqldb
	$ wget -с https://mycheckpoint.googlecode.com/files/mycheckpoint-231-1.deb
	$ sudo dpkg -i mycheckpoint-231-1.deb

После чего потребуется создать базу данных для хранения информации:

	$ mysql -uroot -ppassword
	mysql> CREATE DATABASE mycheckpoint;
	mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Для сбора и вывода данных используется утилита mycheckpoint, которую можно запускать вручную или через cron. Параметры подключения к MySQL и SMTP серверу указываются также в командной строке:

	$ mycheckpoint --user=user --password=password --host=server --port=3306

Или записываются в конфигурационный файл (по умолчанию /etc/mycheckpoint.cnf)

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

Теперь можем просматривать собранную информацию и генерировать отчеты при помощи SQL запросов.

	$ mysql mycheckpoint -e "SELECT html FROM sv_report_html_brief" --silent --raw > ./checkpoint_report.html

Еще один полезный инструмент позволяющий контролировать, анализировать и при необходимости изменять обмен данными между MySQL сервером и клиентским приложением, называется MySQL Proxy(dev.mysql.com/downloads/mysql-proxy). Возможности у программы очень большие. Работает как под Windows, так и под *nix системами. Установка проблем не вызывает, в настройках необходимо указать порт MySQL (по умолчанию 3306) и PHP (строка mysql.default_port в php.ini). Все запросы формируются на языке Lua, документация здесь хорошо помогает.

Аудит MySQL

Одной из проблем связанных с эксплуатацией любого программного продукта является его неправильная настройка. После установки присутствуют лишние демонстрационные учетные записи, тестовые базы, сами пользователи могут использовать простые пароли, которые легко подобрать. Решить эти проблемы можно лишь при помощи постоянного аудита, который к тому же будет обязателен если производится обработка конфиденциальных/персональных данных (кредитные карты, медицинские записи, и т.д.), требуется создать среду соответствующую стандартам безопасности (SOX, HIPAA и т.д.), при расследовании инцидентов, устранении неполадок и т.д. После установки следует обязательно использовать mysql_secure_installation который обеспечивает минимальный набор позволяющих произвести коррекцию общих настроек безопасности.
Далее уже следует использовать инструменты и скрипты о которых ниже.
Задача аудита упрощается тем, что разработчики MySQL предлагают соответствующий API. Правда в MySQL плагин audit_log доступен только для версии Enterprise(dev.mysql.com/doc/refman/5.5/en/audit-log-plugin.html). Разработчики Percona Server предлагают GPL альтернативу(percona.com/doc/percona-server/5.5/management/audit_log_plugin.html) данному модулю, которую подходит для аудита MySQL и клонов. Две других альтернативы McAfee MySQL Audit Plugin(github.com/mcafee/mysql-audit) и MariaDB Audit Plugin for MySQL(mariadb.com/kb/en/mariadb-audit-plugin-117-release-notes) также справляются со своей задачей и позволяют производить аудит MariaDB, MySQL и Percona Server, но используют свой собственный формат журнала аудита, отличающийся от стандартного MySQL. Это потребует чуть больших первоначальных настроек. Применение плагинов простым назвать нельзя и подробно освещено в документации, которую все равно требуется прочитать, поэтому останавливаться не будем.
Кроме того Патриком Карлссоном (Patrik Karlsson) представлен(seclists.org/nmap-dev/2011/q2/att-814/mysql-audit.nse) набор тестов для сетевого сканера nmap, позволяющий протестировать сервер на наличие основных проблем безопасности. В Ubuntu после установки настройки хранятся в каталоге /usr/share/nmap/nselib/data и nmap/script, для проверки сервера необходимо указать параметры подключения и учетную запись.

	$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args 	"mysql-audit.filename='/usr/share/nmap/nselib/data/mysql- 	cis.audit' ,mysql-audit.username='root',mysql- 	audit.password='password'"

Хакер им воспользуется в любом случае, поэтому админ просто обязан периодически проверять сервера таким способом. Два пакета о которых следует рассказать отдельно также содержат инструменты аудита.

Percona Toolkit for MySQL

Штатные инструменты поставляемые с MySQL предоставляют лишь базовые возможности по администрированию, в результате многие операции приходится выполнять вручную. Это может быть проблемой, ведь уследить за всем очень сложно и часто потребуется определенный опыт, да и легко допустить ошибку. Пакет Percona Toolkit for MySQL(percona.com/software/percona-toolkit) собрал наработки двух проектов Maatkit и Aspersa и предоставляет скрипты позволяющие производить многие рутинные операции администрирования: проверить состояние репликации, аудит, собирать информацию, оптимизировать запросы, произвести тюнинг сервера, архивировать/восстанавливать данные и многое другое. Всего более 4000 тестов и настроек. Пакет доступен для основных дистрибутивов Linux (в Ubuntu пакет percona-toolkit). После установки получим 32 утилиты, имя которых начинается с pt-*, назначение часто понятно из названия. При запуске можно задавать различные фильтры и форматировать вывод. Поэтому документацию почитать все равно придется так как каждая утилита имеет большое количество параметров. Например, скрипт pt-summary выведет всю информацию по серверу собранную /proc/cpuinfo, /proc/meminfo, mount, df и другими утилитами, pt-show-grants — покажет все права пользователей СУБД, pt-query-digest позволяет строить отчеты основанные на анализе логов, обработанных сервером запросов, а также информации собранной processlist и tcpdump. Например, просмотр медленных запросов двумя способами:

	$ pt-query-digest slow.log
	$ pt-query-digest --user=user --password=password --processlist --host=example.org

Получаем данные о привилегиях с pt-show-grants

Еще один популярный пакет Openark Kit(code.openark.org/forge/openark-kit) предлагает 14 утилит позволяющих провести тестирование СУБД: проверка установок, проверять пароли (пустые, одинаковые, слабые), блокировать аккаунты, прерывать запросы, фильтровать записи в журнале, выводить статус репликации, исправлять кодировки, и многое другое. Распространяется по лицензии BSD. Написан на Python и требует python-mysqldb. Для установки предлагается deb и rpm пакеты и сырцы, процесс стандартный и проблем не вызывает.
Самый популярный скрипт комплекта oak-security-audit предназначенный для периодического аудита аккаунтов, паролей, привилегий и прочих настроек сервера.
В общем случае его можно запустить без параметров. По умолчанию используется режим наибольшего уровня контроля системы (соотвествует —audit-level=strict):

	$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=password

В результате получим отчет, все что не помечено как Passed, требует пристального внимания.
По умолчанию утилиты из Openark Kit (включая и mycheckpoint о котором выше, того же разработчика) используют по умолчанию для подключения к СУБД сокет /var/run/mysqld/mysql.sock (в это вшито в сам скрипт) в Ubuntu файл называется mysqld.sock. Чтобы не задавать каждый раз путь можно использовать заранее подкготовленный файл с настройками подключения и указывать при помощи —defaults-file. Как вариант изменить настройки MySQL в my.cnf. Править скрипты неудобно, так как при обновлении они работать не будут.
Следующий скрипт oak-block-account очень популярен у разного рода хостеров, для временного отключения доступа к СУБД. Дело в том что стандартный механизм СУБД не позволяет отключать временно аккаунт (что-то вроде REVOKE login ON *.*) т.е. если учетная запись есть, пользователь всегда может подключаться к базе данных. Можно конечно использовать что-то вроде:

	mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USER'@'%';

Но в случае восстановления прав, придется помнить все настройки. И главное если посмотреть права при помощи:

	mysql> SHOW GRANTS FOR 'USER';
	GRANT USAGE ON *.* TO 'USER'@'%' IDENTIFIED BY PASSWORD .....

Мы убедимся, что такая команда не сбрасывает USAGE. Использование REVOKE USAGE фактически означает DROP USER. Проще изменить логин и пароль, но восстановление может быть проблемой. Вообщем возни и рисков много. В случае использования oak-block-account, учетная запись остается неизменной, ей просто задается временный пароль, поэтому подключиться с этой учетной записью нельзя.

	$ oak-block-account --block --account-user=USER --account-host=example.org

Дополнительный параметр —kill, позволить сразу сбросить все активные подключения. Восстановить работоспособность учетки также просто. Смотрим список аккаунтов и их статус:

	$ oak-block-account --list

И включаем учетную запись:

	$ oak-block-account --release --account-user=USER --account-host=example.org

Другие скрипты из Openark Kit позволяют упростить некоторые операции. Например oak-chunk-update дает возможность выполнить большие операции UPDATE/DELETE без длительных блокировок, разбив задачу на небольшие куски. Скрипт oak-show-replication-status выводит состояние репликации, oak-kill-slow-queries — удалить выполняющиеся запросы выполняющиеся уже долго время, oak-repeat-query — выполняет запрос пока не выполняется определенное условие (количество итераций, время).

Вывод oak-security-audit

Тюнинг MySQL

Оптимизация настроек очень тонкий процесс, ведь нужно на основании собранной статистики изменить только то что действительно повлияет на производительность. Самым известным инструментом для MySQL является Perl скрипт [mysqltuner](mysqltuner.com), который доступен в репозитариях большинства дистрибутивов Linux. Он читает текущие настройки сервера и установки MySQL, после чего выдает рекомендации (только рекомендации) по их изменению. Если установка производилась при помощи пакетов то достаточно ввести имя скрипта, иначе следует вызывать указывая интерпретатор:

	$ perl mysqltuner.pl

Далее будут запрошены логин и пароль администратора, после чего мы получим метрики системы и рекомендации. Кроме этого mysqltuner показывает информацию о индексах в таблицах и фрагментации, которые также влияют на скорость работы сервера. В случае необходимости получим рекомендации произвести перестановку индексов и дефрагментацию. Для более точно работы рекомендуется запускать скрипт после как минимум 24 часа аптайма.
Оригинальный скрипт написан под *nix, но на Codeplex(mysqltuner.codeplex.com) доступна адаптирована для Win.
Альтернативой можно назвать MySQL Performance Tuning Primer Script(day32.com/MySQL/tuning-primer.sh), который выдает не сколько наглядную информацию, но зато больше «разговорчивый» о проблемах.

Запускаем mysqltuner

Вывод

Это конечно далеко не все must have инструменты, которые должны быть под рукой у администратора баз данных. Но это наверное тот необходимый минимум которые следует изучить, кроме того в процессе знакомства начинаешь больше понимать в механизмах заложенных в MySQL.

Журнал системный администратор Украина купить

В номере:

  • Клонирование системы с помощью FOG. Открытый инструмент для клонирования проприетарных ОС
    Необходимость развертывания на множестве машин ОС с одинаковыми настройками и набором приложений – явление нередкое. Для автоматизации этой задачи существуют полнофункциональные свободные решения, подходящие и для клонирования проприетарных систем.
  • Телефон как тонкий клиент – возможно ли это?
    Тонкие клиенты давно используются в инфраструктурах многих компаний и все больше набирают популярность. А можно ли использовать IP-телефон на базе Android в качестве тонкого клиента?
  • Облачная операционная система OpenStack. Часть 3. Сервис хранения образов OpenStack Image Service
    Сервис Glance отвечает за ведение каталога, регистрацию и доставку образов виртуальных машин. Как правило, эти образы выполняют функции шаблонов и требуют дополнительной настройки после запуска виртуальной машины.
  • Проектирование отказоустойчивых систем. Часть 3. До и после внедрения
    Завершающая публикация из цикла статей, в которых шла речь о внедрении и передаче в эксплуатацию отказоустойчивых ИТ-систем.
  • Проект FOSSIL. Инструмент коллективной работы над проектами
    Если нужно быстро развернуть системы контроля версий, отслеживания ошибок и Wiki, можно воспользоваться FOSSIL.
  • Аутентификация в системах VDI
    Инфраструктура виртуальных рабочих столов (Virtual Desktop Infrastructure, VDI) сегодня является мощным инструментом для снижения эксплуатационных расходов и экономии на лицензиях для необходимого программного обеспечения.
  • Если к вам пришел…
    Предположим, вы (или сотрудник вашей компании) увидели на экране требование выкупа за возврат в целости и сохранности данных, зашифрованных троянцем-шифровальщиком (энкодером). Что делать?
  • Боремся с вирусами в ручном режиме
    Что делать, если даже самый лучший антивирус не смог защитить и вирус активно орудует на компьютере?
  • Active Directory и безопасности. Часть 9. Аудит службы каталога Active Directory
    Обеспечение безопасности службы каталога Active Directory требует решения целого комплекса задач. В этой статье продолжим разговор и рассмотрим задачу, связанную с аудитом службы каталога Active Directory.
  • «Помогите, зашифровались файлы». Как противостоять троянцам-вымогателям
    Учитывая актуальность угрозы, думаем, читателям «Системного администратора» будет интересно узнать больше о проблемах шифровальщиков, о том, как с ними можно бороться и что делать, если файлы уже зашифрованы.
  • Перспективные протоколы маршрутизации
    Как будут развиваться протоколы динамической маршрутизации? Что нас ждет в этом направлении через несколько лет?
  • Причины неэффективности SQL-запросов в Oracle. Оптимизация производительности SQL-запросов
    Перед разработчиками SQL-запросов нередко встает вопрос выявления причин длительной работы запросов. В статье предлагается определенная систематизация причин таких запросов, рекомендации по их предупреждению и устранению.
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 8. Типовые проблемы и методы их решения
    Проект интеграции подразумевает решение вопросов «на границе» между системами, поэтому к таким проблемам надо быть готовым.

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

По умолчанию все почтовые сервера передают аутентификационные данные и текст в открытом виде, то есть любой их может перехватить и прочитать.

Использование вместо пароля — хэша ситуацию не меняет, так как мощности современных компьютеров позволяют быстро вычислить пароль на основе хэша. Поэтому нужно защищаться. Вариантов несколько. Самый простой — использовать стандартные механизмы позволяющие шифровать SMTP/POP3/IMAP трафик. Такая функция сегодня поддерживается всеми серверами — Postfix, Sendmail, Dovecot, Courier, Cyrus и другими. Альтернативный или дополнительный шаг —шифрование писем на стороне клиента — при помощи PGP/GPG или S/MIME. Хотя он и не так прозрачен для пользователя и требует определенного обучения и дисциплины. Еще один способ VPN. Но все эти способы в той или иной мере требуют внесения изменений в текущую конфигурацию сети или почтовых программ.

Есть перестройки невозможны или не желательны на помощь приходят специальные шлюзы автоматически шифрующие исходящий почтовый трафик. Среди OpenSource проектов популярен CipherMail Email Encryption Gateway (до июня 2014 — Djigzo Email Encryption Gateway) обеспечивающий шифрование при помощи S/MIME, OpenPGP, защиту PDF и управление при помощи веб-интерфейса. Дополнительный модуль DLP (Data Leak Prevention) позволяет предотвратить выход за пределы организации конфиденциальной информации: номера кредитных карт, банковских счетов, больших списков адресов электронной почты и многое другое. Шлюз можно установить на большинстве Unix систем поддерживающих Java 6/7 и Postfix. В качестве клиента выступает аналогичный сервер или любая программа поддерживающая S/MIME. Проектом предлагаются клиентские приложения для BlackBerry и Android используемые для отправки и получения шифрованных сообщений через CipherMail и проверки S/MIME подписи. Вложения в виде PDF файлов автоматически закрываются паролем. Отправитель сообщает пароль получателю любым другим способом (есть функция автоматической отправки SMS). Поддерживается совместная работа с практически любыми центрами сертификации (EJBCA, Microsoft CA) или внешними вроде Verisign или Comodo. Процессом шифрования управляют политики, настраиваемые для доменов и отдельных учетных записей. Также Djigzo может автоматически добавлять к сообщениям электронную подпись, позволяющую получателю удостовериться, что письмо отправлено именно этим корреспондентом. Поддерживается и технология DKIM (DomainKeys Identified Mail).
Для установки предлагаются пакеты для Ubuntu/Debian, RedHat/CentOS, openSUSE, а также исходные тексты и образы на базе Ubuntu Linux 14.04 LTS готовые для с предустановленным CipherMail для виртуальных машин VMware, Hyper-V (логин/пароль — sa/sa). Весь процесс развертывания и настройки подробно расписан в документации. В Ubuntu 14.04 LTS процесс выглядит так:

$ sudo apt-get install postgresql postfix openjdk-7-jre openjdk-7-jre-headless tzdata-java ant ant-optional mktemp wget libsasl2-modules symlinks tomcat6

При настройке Postfix выбираем «No Configuration».

Скачиваем deb пакеты с сайта проекта и устанавливаем:

$ sudo dpkg -i ./djigzo_2.8.6-2_all.deb ./djigzo-web_2.8.6-2_all.deb 
$ sudo apt-get -f install

По ходу будут созданы все необходимые каталоги, учетные данные и БД, подправлен /etc/sudoers. В каталоге /etc/postfix появится два шаблона конфигурационных файла, которыми следует оригинальные:

$ cd /etc/postfix
$ sudo mv djigzo-main.cf main.cf
$ sudo mv djigzo-master.cf master.cf

Для отсылки и приема сообщений используется Postfix, который должен переправлять все что проходит через него на 10025 порт, где данные обрабатываются CipherMail. В поставке уже есть готовые файлы, которыми подменяем оригинальные:

$ sudo cp /etc/postfix/djigzo-main.cf /etc/postfix/main.cf
$ sudo cp /etc/postfix/djigzo-master.cf /etc/postfix/ master.cf
$ sudo newaliases
$ sudo service postfix restart

Осталось настроить веб-интерфейс, для этого нужно просто указать Tomcat где искать файлы:

$ sudo nano /etc/default/tomcat6
 
JAVA_OPTS="$JAVA_OPTS -Ddjigzo-web.home=/usr/share/djigzo-web"
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Xmx128M"
TOMCAT6_SECURITY=no

Во время установки генерируется сертификат, необходимо изменить владельца:

$ sudo chown tomcat6:djigzo /usr/share/djigzo-web/ssl/sslCertificate.p12

Используя заготовки, добавляем HTTPS коннектор к Tomcat:

$ sudo cp /usr/share/djigzo-web/conf/tomcat/server-T6.xml \
/etc/tomcat6/server.xml

И прописываем путь к файлу для запуска CipherMail :

 
$ sudo nano /etc/tomcat6/Catalina/localhost/djigzo.xml
 
<context docBase="/usr/share/djigzo-web/djigzo.war" unpackWAR="false"></context>

Перезапускаем сервер:

$ sudo service tomcat6 restart

Набираем в браузере https://localhost:8443/djigzo, принимаем сертификат, для регистрации вводим логин — admin, пароль — admin.
Веб-интерфейс CipherMail сложным назвать нельзя. Пункты меню позволяют добавить домен, пользователя (в терминах CipherMail , на самом деле здесь вводится почтовый адрес), управлять сертификатами, загружать списки отзыва сертификатов (CRL), просматривать очереди и прочие параметры.

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

Из чего выбирать?

Решения для балансировки сетевой нагрузки, только на первый взгляд выглядят одинаково. На самом деле в процессе участвуют множество технологий и алгоритмов, поэтому найти два одинаковых можно даже и не пробовать. Кроме очевидного — поддержка определенных протоколов (например, только HTTP или любые), есть и множество других параметров.
Так системы балансировки нагрузки могут перенаправлять трафик клиентов на избранный сервер несколькими способами. Самые популярные: трансляция сетевых адресов (Network Address Translation) и шлюз TCP (TCP gateway). В первом случае балансировщик на лету подменяет в пакете IP адреса, чем скрывает IP сервера от клиента и наоборот. Если же IP-клиента нужно конечному приложению для статистики или любых других операций, его обычно сохраняют в HTTP заголовке X-Forwarded-for. При использовании другого протокола следует убедиться что подобная возможность реализована. В случае TCP gateway балансировщик умеет управлять трафиком на L4 (транспортом) уровне и даже на уровне приложения (L7). Для этого он устанавливает соединение и смотрит внутрь пакета. Обычно клиент и приложение обмениваются информацией через балансировщик. Но в последнее время становится все более популярной конфигурация сервера с прямым возвратом (Direct Server Return, DSR) когда ответ от сервера идет к клиенту напрямую, а не через устройство балансировки. Использование DSR уменьшает нагрузку на балансировщик, но не позволяет использовать куки, и расшифровывать SSL. Данный способ на порядок быстрее чем использование NAT балансировки и позволяет сервисам видеть реальные IP адреса клиентов.
Также в системах можно встретить разные методы балансировки. Разберемся с назначениям некоторых из них. В настройках продуктов они могут иметь отличные названия или свои особенности в реализации, но часто их суть одна.
Самый простой Round Robin DNS — это специальный DNS сервер содержащий несколько «А» записей и опционально их вес, и выдающий при запросе клиентов различные IP адреса. Минусы очевидны. Он абсолютно не владеет информацией о текущей загрузке и состоянии бэкэндов, не учитывает предыдущие подключения клиентов (немного сглаживает ситуацию DNS кэш).
Есть аналогичный по названию алгоритм но реализован средствами самого балансировщика — Round Robin. Все клиенты равномерно распределяются по бэкэндам, и обычно какие либо другие параметры не учитываются. Алгоритм распределения по весу (Round Robin Weighted) учитывает значение параметра Weight указанного для каждого сервера. Проставив больший вес для более мощного сервера мы сможем направить к нему больше клиентов. Несколько иначе работает распределение по приоритету. В этом алгоритме работает только сервер с большим приоритетом, остальные подключаются, как правило, только в случае его отказа. Этот вариант позволяет строить кластер с одним активным узлом (активный — пассивный), например когда второй сервер выполняет другую роль и только подстраховывает первый. Least Connection (Least Session) — соединение принимает сервер обслуживающий наименьшее количество соединений (сессий), но соединения могут быть разные (пользователь активен или пассивен) и соответственно давать разную нагрузку на сервер. А вот алгоритм Least Bandwidth учитывает действительную загрузку на сеть.
Hash: sticky client – клиент привязывается к одному серверу, для этого в специальную таблицу помещается хеш-строка указывающая на его IP. Возможны варианты. Клиент всегда идет к одному серверу, а в случае его выхода подключение невозможно. Или когда не отвечает «родной» он соединяется с другими системами.
Доступность бэкэндов определяется двумя: активный (keepalives, балансировщик сам опрашивает сервера) и пассивный (In-Band, контролируются текущие соединения, ответы сервиса).

BalanceNG

Проект номер один в списке — BalanceNG (inlab.de/balanceng), представляет дальнейшее развитие идей заложенных в OpenSource решении [Balance] (inlab.de/balance.html), но распространяемое уже под двойной лицензией (коммерческой и бесплатной Free Basic License). По условиям последней можно подключать один виртуальный сервер и два узла, чего с учетом возможностей достаточно чтобы без проблем справиться со средней, а иногда и большой нагрузкой. Представляет собой решение для балансировки IP нагрузки поддерживающее IPv6, предлагает несколько методов управления выбора бэкэнда (Round Robin, Random, Weighted Random, Least Session, Least Bandwidth, Hash, Agent и Randomized Agent).
В продукте использован оригинальный движок работающий на Layer 2 (Ethernet), балансировка ведется на основе IP-адреса клиента, без учета привязки к портам т. е. Это может быть любой сервис. Поддерживает DNS GSLB (Global Server Load-Balancing) и конфигурацию сервера с прямым возвратом Direct Server Return (DSR). Содержит настраиваемый агент проверки UDP, поддерживает VRRP для установки высоко доступных конфигураций на многих узлах. Встроенные механизмы позволяют произвести захват и сохранение пакетов при помощи pcap для дальнейшего исследования. Предусмотрено несколько вариантов проверки работоспособности конечных систем: агент, ping, TCP Open, скрипт и другие инструменты вроде wget.
Возможно резервирование балансировщика с репликацией NAT состояний между основным и резервным узлам, Клиент при переподключении подключается к тому же серверу. Для сохранения сессии используется IP-адрес клиента и порт назначения. Поддерживается Linux bonding. Все таблицы хранятся в ОЗУ, но требования невелики, для 4 миллионов сессий достаточно 512 Мб памяти.
Может работать в Linux (с использованием сокета API PF_PACKET) и SPARC/Intel Solaris (STREAMS/DLPI API). Для установки предлагается rpm (Red Hat RHEL6/CentOS) и deb (Debian/Ubuntu) пакеты и тарбал для остальных дистрибутивов. Также доступен готовый образ для виртуальной машины (на базе Ubuntu 8.04), что позволяет быстро развернуть нужную функциональность. Во время закачки будут показаны все пароли для входа. Агент (bngagent) поставляется с открытым исходным кодом и поддерживает Linux, Solaris, Mac OS-X, HP-UX и другие.
Какой либо интерфейс для настройки не предусмотрен, все установки производятся при помощи конфигурационного файла /etc/bng.conf. В принципе сложным его назвать нельзя, особенно учитывая что на сайте проекта доступно более десятка готовых примеров, часто нужно лишь выбрать наиболее подходящий и отредактировать под себя.

Конфигурационный файл BalanceNG

Конфигурационный файл BalanceNG

HAProxy

[HAProxy] (haproxy.1wt.eu) балансировщик нагрузки и прокси-сервер уровня приложений Layer7 для TCP и HTTP. Собственно проект начинался, как очень простой HTTP-прокси Webroute, но постепенно оброс новыми возможностями. Особенностью HAProxy является использование для регулирования соединений cookie и контента, для встраивает cookie и проверяет содержимое пакета при подключении. Анализ пакетов на Layer7 позволяет фильтровать несанкционированный трафик и протоколы. Проверяя HTTP запрос при помощи регулярных выражений можно задать любые правила для выбора сервера, например реализуя ACL и геолокацию. В случае необходимости обработки IP клиента на конечном сервер можем сохранить его в “X-Forwarded-for”. Движок стабилен, безопасен оптимизирован, в результате HAProxy способен одновременно обрабатывать большое количество подключений (20 000 в сек и более).
Обработкой всех подключений занимается один процесс, за счет оптимизации и планировщика обеспечивающий большое количество одновременных соединений на очень высоких скоростях. Такие системы не очень хорошо масштабируются на многопроцессорных системах, но не болеют блокировками и ограничениями памяти. Но здесь мы не увидим продвинутых функций вроде поддержки SSL и Keep-Alive, по утверждению разработчиков они усложняют и «утяжеляют» процесс. Отказоустойчивость HAProxy сервера обеспечивается через использование демона keepalived проверяющего его работоспособность, синхронизация с резервным сервером (протокол VRRP) обеспечивает дублирование.
Обеспечивается логирование соединений и предоставление разнообразных отчетов (статистика выводится на отдельном порту). Ориентирован в первую очередь для веб-сайтов, но используется и в других сценариях, например в качестве балансировщика для multi-master серверов MySQL.

Статистика HAProxy

Статистика HAProxy

Поддерживается фильтрация пользователей и подключение к тому же серверу (для RDP и HTTP), аутентификация HTTP.
HAProxy в качестве балансировшика используется в нескольких компаниях из списка Fortune 500: Amazon RDS, Github, Stackoverflow, Serverfault, Twitter…
Возможности расширяются при помощи аддонов, их полный список есть на сайте. Все настройки производятся при помощи конфигурационного файла (на сайте есть примеры). Кроме того известны два интерфейса сторонних разработчиков: коммерческий веб [Snapt](snapt.net) и свободный [HATop] (feurix.org/projects/hatop).
Работает на нескольких архитектурах x86, x86_64, Alpha, SPARC, MIPS, PARISC. Официально поддерживает Linux 2.6.32+ (рекомендуется для максимальной производительности) и 2.4, Solaris 8-10, FreeBSD, OpenBSD. Установка и настройка тривиальны, хотя пакеты в репозиториях не присутствует. Проект предлагает исходный код под лицензией GPL v2 и готовые бинарники под Linux/x86 Glibc 2.2 и Solaris8/Sparc.

Веб-интерфейс Snapt для настройки HAProxy

Веб-интерфейс Snapt для настройки HAProxy

Pound — прокси и балансировка HTTP и HTTPS

Первоначальная цель проекта [Pound] (apsis.ch/pound) являлось распределение нагрузки между несколькими серверами Zope, в итоге получился узконаправленный инструмент, представляющий собой обратный прокси и балансировщик нагрузки для HTTP и HTTPS.
Балансировка производится по состоянию сессии и другим параметрам (URL, аутентификации, cookies, HTTP headers). Полная поддержка WebDAV. В отличие от HAProxy обрабатывает SSL. Разработан в IT компании, занимающейся безопасностью, что также сказалось на возможностях продукта. Особенностью является наличие базовых функций Web Application Firewall, Pound умеет контролировать корректность заголовков HTTP и HTTPS, отбрасывая неправильные. По умолчанию пропускаются все запросы, но можно создать шаблоны URL, и тип запросов (стандартные, расширенные, RPC и WebDAV) которые будут проверяться на соответствие. По результатам выбирается конечный сервер или соединение блокируется. Дизайн изначально предусматривает минимальное вмешательство в трафик (например встраивание cookie), но может прописывать “X-Forwarded-for” для передачи на бэкенд сервера IP адрес пользователя.
Поддерживает IPv6, может перебрасывать IPv6 клиентов к серверам IPv4. Информация о сеансе сохраняется и клиент в последующем подключается к своему серверу.
Из специфики — возможна не только отправка соединения к бэкенду, но и редирект на другой URL.
Pound не требует много ресурсов, примечательно что кроме считывания SSL сертификатов демон не обращается к харду. Может быть запущен в chroot и использовать setuid/setgid. Каких-либо встроенных механизмов отказоустойчивости нет. Проверка работоспособности бэкендов производится всегда по HTTP.
На процессоре уровня Pentium D позволяет достичь примерно 600-800 HTTP и 200-300 HTTPS соединений в секунду. Поэтому конек Pound небольшие проекты с упором на доступность, безопасность и больший контроль над трафиком. Для большей нагрузки сами разработчики Pound рекомендуют воспользоваться другими решениями.
Установка и настройка не представляют больших сложностей, хотя и производятся при помощи конфигурационных файлов (документация очень подробная). Официально был протестирован на Linux, Solaris и OpenBSD. Проект предлагает только исходные тексты, в репозитариях SuSE, Debian и Ubuntu, можно найти готовые пакеты, кроме этого на сайте есть ссылки для RedHat и готового дистрибутива собранного на базе FreeBSD.

В конфигурационном файле Pound разобраться легко

В конфигурационном файле Pound разобраться легко

Crossroads

Crossroads или [XR](crossroads.e-tunity.com) обеспечивает балансировку нагрузки к любым TCP сервисам, поэтому подходит не только для HTTP(S), но и для SMTP, SSH, баз данных и других. В обычном варианте он просто гарантирует подключение к бэкенду, не вникая во внутренности, обеспечивая в этом режиме максимальную производительность. Один сервер может обслуживать несколько сайтов с разными бэкэндами и протоколами. Но есть специальный режим “HTTP mode” при котором обрабатываются и при необходимости меняются заголовки сеанса. Это обеспечивает возможность перенаправления пользователя на тот же сервер (session stickiness) и сохранение IP клиента в X-Forwarded-For. Сам по себе “HTTP mode” и особенно модификация пакета влияет на производительность (потери до 30%).
По умолчанию клиент перенаправляется на сервер принимающий меньше подключений, но при необходимости алгоритм легко изменить на Round-Robin, Least-Connections и First-Available или определяться внешней программой или скриптом. Клиентов можно закреплять за определенным сервером (Hash sticky client), жестко или с возможностью подключения к другому серверу если «свой» не отвечает. При возобновлении работы бэкэнда, он автоматически включается в работу. Возможно управление доступом к Crossroads на основе IP адреса (“allow” и “deny”).
В версии 2.х все подключения обслуживает один процесс работающий в пространстве пользователя, это положительно сказалось на скорости работы и на управлении. Может работать как stand-alone демон или запускаться через inetd. Удобно, что все настройки и команды можно отдавать на лету (при помощи утилиты xr), изменение параметров не требует перезапуска Crossroads. Например, настроим балансировку для двух веб-сайтов и серверов MySQL.

	# /usr/sbin/xr --verbose -S --server http:0:80 --host-match www.host1.com --backend 192.168.1.10:80 --backend 192.168.1.20:80 \ --host-match www.host2.com --backend 192.168.2.10:80 --backend 192.168.2.20:80 2>&1 >> /var/log/xr.log
	# /usr/sbin/xr --verbose --server tcp:0:3306 --backend 192.168.1.1:3306 --backend 192.168.1.2:3306 2>&1 >> /var/log/xr.log &

Статистика выводится при помощи веб-интерфейса, порт которого задается вместе с ключом -W (—web-interface). Также с его помощью можно изменить три параметра: максимальное количество соединений для Crossroads и бэкэндов, вес бэкэндов.
Для удобства все их записывают в отдельный файл который и указывают при загрузке или используют специальный конфигурационный файл в формате xml (/etc/xrctl.xml, в поставке несколько готовых примеров).
Может быть запущен на любой POSIX системе — Linux, Mac OS X, Solaris. Проект предлагает исходные текст (сборка проблем не вызывает), готовые пакеты доступны в репозитариях основных дистрибутивов.

В поставке Crossroads несколько готовых конфигурационных файлов

В поставке Crossroads несколько готовых конфигурационных файлов

ZEN Load balancer

Решение несколько отличающееся от остальных участников обзора. Разработчики справедливо решили, что под балансировку выделяется отдельный сервер, а поэтому лучше сразу предоставить готовый дистрибутив, чтобы упростить развертывание, повысить производительность и безопасность. Основой [ZEN Load balancer] (zenloadbalancer.org) является оптимизированная и урезанная версия Debian 6. Поддерживается балансировка на Layer 4 для протоколов TCP, UDP и на Layer 7 для HTTP/HTTPS. Специальный режим L4xNAT позволяет настроить балансировку на транспортном уровне без учета номеров портов (фактически без привязки к сервису), в этом случае ZEN просто пропускает через себя весь трафик, распределяя его по серверам. Если у Zen и фишка — режим DATALINK. В этом случае Zen выступает в качестве шлюза по умолчанию обеспечивая равномерную нагрузку на канал и резервирование при подключении к нескольким провайдерам (балансировка на Layer 3).
Реализовано несколько алгоритмов выбора бэкэнда Round Robin, по весу (Weight), по приоритету (Priority) или подключение к определенному серверу (Hash sticky client). Возможен возврат пользователя в открытую сессию, он определяется несколькими способами (по IP-адресу, сookie, запрашиваемому URL, по заголовку HTTP). Предусмотрено сохранение IP в X-Forwarded-For.
Технология FarmGuardian позволяет определять доступность сервисов при помощи специального скрипта, и распределять по ним подключения. Zen может выполнять роль SSL-прокси, шифруя поток к клиенту, на участке Zen — бэкэнд данные идут в открытом виде. Поддерживается VLAN.
Из других особенностей можно назвать простую систему резервирования и восстановления конфигурации, работа нескольких балансировщиков в кластере, система мониторинга и вывода различной статистики в том числе и в виде наглядных графиков.
И главное все настройки производятся при помощи веб-интерфейса (по умолчанию на HTTPS/444, логин/пароль — admin/admin). Предлагается две версии. Бесплатная только в x86 варианте и без технической поддержки. Ее возможностей вполне хватает для большинства сетей среднего размера. Платная версия предоставляется уже в x64 сборке. Развернуть готовую систему очень просто, на сайте доступна вся необходимая информация по настройкам (на английском).

Все настройки ZEN Load balancer производятся через веб-интерфейс

Все настройки ZEN Load balancer производятся через веб-интерфейс

Облачные сервисы для балансировки нагрузки

С ростом популярности облачных сервисов, все больше систем размещаются на внешних площадках образуя гибридные облака. Большинство разработчиков предлагает ко всему прочему и возможность балансировки нагрузки, это очень удобно так как не требует от клиента установки дополнительного оборудования и готово к применению почти сразу. Хотя возможностей по управлению такой способ дает как правило меньше. Все основные игроки уже предложили свои решения. Например, [Amazon Route 53] (aws.amazon.com/route53/) являющийся частью Amazon Web Services и предоставляющий балансировку при помощи Round Robin DNS. Стоимость услуги небольшая и составляет 1$ в месяц, плюс 0.50$ за первый миллион запросов и 0.25$ за каждый следующий. Предусмотрен удобный API для редактирования, добавления и удаления записей.
Также нужная функциональность доступна в специализированных облачных продуктах — WAF или решениях для защиты от DDOS. Например, сервис [Akamai Global Traffic Management] (akamai.com/html/solutions/gtm.html).

Заключение

Выбирать есть из чего. Каждый продукт имеет свои сильные и слабые стороны, зная которые легко определиться который из них подходит для определенной ситуации. Так HAProxy подкупает производительностью, BalanceNG возможностью, простой в настройках Pound обеспечивает разборку HTTP, а Crossroads гибкостью. Если все же нужен веб-интерфейс то альтернативы ZEN Load balancer нет, ну если только не хочется платить за Snapt для HAProxy.

Вышел майский номер № 5 (150) журнала Системный Администратор за 2015 год.
cover05(150)

В номере:

  • OpenStack Keystone. Знакомство с сервисом идентификации
    Продолжаем знакомство с OpenStack [1]. Теперь приступим к практическому общению с сервисами облачной операционной системы. Почти для всех служб OpenStack требуется работающий сервис Keystone. С него и начнем.
  • Инструменты управления множеством контейнеров Docker
    Docker предоставляет удобные средства для манипуляции виртуальными окружениями, но, когда счет контейнеров идет на тысячи, этих средств, к сожалению, может оказаться недостаточно.
  • Уборка файлового мусора
    Поиск решения проблемы захламления файлового сервера с примером сценария VBScript для очистки хранилища от устаревших файлов.
  • На пути к новым технологиям: миграция с Windows Server 2003
    В момент выхода новой операционной системы у пользователей появляется интерес к ее новым возможностям и технологиям.
  • Проектирование отказоустойчивых систем. Часть 2. Этапы проектирования
    Продолжаем рассказ о нюансах, встречающихся на этапе проектирования [1]. В этой части затронем вопросы аудита, составления техзадания и проекта.
  • Средства безопасности в облачных офисах
    Облачные офисные пакеты получают все большее распространение. Каким функционалом по обеспечению информационной безопасности они обладают?
  • Демон BSD на острове пингвинов: перестроение огненных стен
    Преобразование набора правил ipfw из брандмауэра FreeBSD в набор правил iptables брандмауэра Linux – дело весьма непростое, практически не автоматизируемое и даже вручную скрывающее немало сюрпризов.
  • Active Directory и безопасность. Часть 8. Защита станций привилегированных пользователей
    Безопасность службы каталога Active Directory требует решения целого комплекса задач. Обеспечение безопасности рабочих станций привилегированных пользователей является одной из них.
  • Как унифицированные коммуникации могут повысить эффективность вашего бизнеса
    Унифицированные коммуникации играют важную роль в росте производительности через повышение мобильности, обеспечение взаимодействия и экономию времени сотрудников. С помощью таких функций, как статус присутствия, программные телефоны и видеоконференции, сотрудники могут более продуктивно использовать свое время, а также взаимодействовать с коллегами и заказчиками.
  • Делаем Call-центр на 1С
    В статье рассматриваются возможности и проблемы интеграции решений на платформе 1С с АТС Asterisk.
  • Эффективность индексов. Опыт использования индексов в Oracle
    Статья основана на практике разработки, сопровождения и использования в запросах эффективных индексов.
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 7. Оптимизация скорости работы
    Давайте узнаем, почему обмен с сайтом может «тормозить», и как с этим бороться.
  • Антон Русаков: «Мой выбор был связан с конъюнктурой рынка – что рынок хотел, то я ему и давал»
    На вопросы «Системного администратора» отвечает Senior Software Engineer в Badoo Антон Русаков.
  • Rack – основа веб-фреймворков в Ruby
    Библиотека Rack – простой объектный интерфейс для написания веб-приложений.
  • Валерий Лунин: «Нашим выпускникам доступно многое»
    В гостях у «Системного администратора» Валерий Лунин, директор Института автоматики и вычислительной техники Национального исследовательского университета «МЭИ», и Андрей Кондрат, помощник проректора по учебной работе.
  • Вакансия: программист под ОС Linux
    Операционная система Linux становится все популярнее среди компаний, которые занимаются разработкой ПО в России. Но вот подготовка таких специалистов для рынка информационных технологий пока оставляет желать лучшего. Чтобы выяснить, какие знания и навыки программистов под ОС Linux востребованы, мы обратились к представителям компаний.
  • Реализация решения головоломки судоку: подход на основе полного перебора
    Головоломки и игры – логические задачи – удобны для обучения нахождению связей и структур, используемых при таких построениях. В статье приводятся анализ, алгоритм и итоговые программы для решения головоломки судоку.
  • Многообразие решений задачи построения ряда Фибоначчи на примере особенностей PHP 5.6
    В статье приводится разбор одной из популярных задач на собеседованиях. Тот самый случай, когда рекурсия оказывается худшим вариантом. Даются примеры решения задачи разными способами, с использованием генераторов и ООП-подхода.
  • Хиты от Hitachi
    У большинства потребителей на всех континентах имя-бренд Hitachi ассоциируется прежде всего с бытовой электроникой. На самом деле японский, а фактически давно уже транснациональный многопрофильный гигант чем только не занимается!
  • Гадкий утенок на Рождество
    Очередной экспонат нашего виртуального музея ИТ и компьютерных технологий на первый взгляд напоминает неряшливый эскиз будущего шедевра скульптора-авангардиста. Какое-то странное стилизованное «сердечко» из непонятного материала (оргстекла?) с металлическим цилиндриком размером чуть больше 10 миллиметров и торчащими во все стороны закрученными проволочными «усиками»… На самом деле перед нами – первый в истории полупроводниковый усилитель, или транзистор. Открывший новую страницу уже компьютерной истории. С этого неэстетичного кристалла германия с торчащими проводами началась Великая кремниевая революция, главным результатом которой стали знакомые сегодня каждому персональные компьютеры.

samag_cover4(149)

В номере:

  • За пределами nss_ldap, или Еще о методах авторизации
    О методах авторизации в Active Directory, которые возможны без использования nss_ldap и при этом нисколько не теряют его функциональности, а, наоборот, более безопасны, потому как могут и не требовать задания пароля открытым текстом.
  • Управление Windows Defender с помощью PowerShell
    Начиная с Windows 8 продукт Windows Defender (Защитник Windows) получил функционал Microsoft Security Essentials и из простейшего сканера шпионских программ теперь стал полнофункциональным антивирусным решением, способным обнаруживать широкий спектр потенциально вредоносного ПО.
  • Проектирование отказоустойчивых систем Часть 1. Термины и определения
    Статья посвящена терминологии построения отказоустойчивых ИТ-систем. Помимо описания самих терминов, рассказывается о принципах создания надежной инфраструктуры.
  • Облачная операционная система OpenStack. Часть 1. Введение
    Статья открывает цикл, в котором автор планирует рассказать о проекте по созданию платформы облачных вычислений «инфраструктура как сервис» OpenStack. Сейчас рассмотрим, что такое OpenStack, его историю иосновные компоненты.
  • Обзор сборок QEMU для Windows
    Эмулятор QEMU является популярным средством виртуализации в мире Linux. В статье сравниваются различные сборки QEMU для Windows.
  • Стеганография: реализация и предотвращение
    Возможность прятать одни данные внутри других может позволить злоумышленнику незаметно похищать массу информации. Поговорим о том, как это реализуется и как с этим бороться.
  • Active Directory и безопасность. Часть 7. Виртуализация и защита контроллеров домена
    Безопасность службы каталога Active Directory требует решения многих задач [1-7]. Нетрудно заметить, что обеспечение безопасности контроллеров доменов (DC) оказывает серьезное влияние на всю систему в целом.
  • Мониторинг блокировок в Oracle. Методы предупреждения и автоматического устранения
    Многолетний опыт эксплуатации баз данных в Oracle в нашей организации показал, что среди проблем, возникающих в базах данных (БД), особое место занимают блокировки, которые могут привести к невозможности дальнейшей работы БД, в связи с чем потребуются срочные меры по их устранению.
  • Конвертация: правильная миграция данных в 1С
    Миграция данных между различными конфигурациями – задача не из тривиальных. Путей решения, как всегда, несколько, но не все они оптимальны. Попробуем разобраться в нюансах переноса данных и выбрать универсальную стратегию решения подобных вопросов.
  • Все, что вы хотели знать об итогах в 1С
    В статье речь пойдет о механизме итогов, существующем в платформе «1С:Предприятие» для ускорения чтения данных.
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 6. Пример настройки интеграции в картинках
    На основе информации, представленной в предыдущих статьях цикла, будет пошагово разобран пример настройки интеграции. Не обойдется, как обычно, и без подводных камней.
  • Практика использования WebKit
    WebKit – разработанная компанией Apple библиотека, на базе которой строятся браузеры. В статье будут рассмотрены варианты ее использования.
  • Язык программирования Go. Подготовка среды для разработки под Windows
    В статье рассматриваются особенности языка программирования Go и описывается способ подготовки среды для разработки программ на этом языке под операционной системой Windows.
  • Создание контейнера IoC под себя
    С темой IoC-контейнеров связано достаточно много «черной магии». На самом деле все очень просто; мы покажем это на примере создания своего IoC-контейнера.
  • Андрей Крюковский: «Фирменный стиль нашего факультета – участие студентов в серьезной научно-исследовательской работе»
    Российский новый университет (РосНОУ) – один из признанных флагманов системы негосударственного высшего образования России. В гостях у «Системного администратора» – Андрей Крюковский, декан и научный руководитель факультета информационных систем и компьютерных технологий РосНОУ, а также член редакционной коллегии нашего журнала.
  • Вакансия: программист PHP
    Веб-разработчики пользуются на рынке труда большим спросом, даже в кризис. Среди языков программирования одним из неизменных лидеров является PHP, который согласно рейтингу TIOBE за март 2015 года продемонстрировал рост популярности. Мы решили выяснить у представителей компаний, какие они предъявляют требования к потенциальным сотрудникам.
  • Секреты механизмов подпрограмм
    В статье мы обсудим основные механизмы функционирования подпрограмм: вызовы и особенно способы их завершения. Для этого мы заглянем вглубь – туда, куда обычно программисты не смотрят (а многие, увы, даже иглубин не знают). Придется немножко повозиться с адресами памяти и переходами, но это необходимо.
  • Шведское телефонное право
    Компания Еricsson в следующем году торжественно отпразднует свое 140-летие. За без малого полтора века скромная шведская фирма по ремонту импортных телефонов выросла в транснациональный гигант на рынке коммуникаций.
  • Применение Scilab для расчета параметров макромоделей операционного усилителя
    В настоящей работе представлены результаты разработки программ расчета параметров макромоделей операционного усилителя первого и второго уровней с применением математического пакета Scilab. Проведена верификация рассчитанных параметров макромоделей на наборе тестовых схем включения ОУ с применением подсистемы схемотехнического моделирования LTSpice.
  • Компьютерное моделирование радиационного заряжения слабопроводящих диэлектриков
    Проведено компьютерное моделирование радиационного заряжения диэлектриков с удельной объемной проводимостью 10-9–10-14 Ом-1∙м-1. Показано, что чем выше проводимость, тем лучше обеспечивается сток заряда, вносимого в диэлектрик при электронном облучении, и уменьшается вероятность возникновения электростатических разрядов. Результаты моделирования находятся в хорошем согласии с экспериментальными данными, полученными для ряда специально изготовленных образцов композитного модельного диэлектрика с задаваемыми значениями удельной объемной проводимости.
  • Первый звонок
    Впервые он, как известно, прозвучал по телефону – прототипу современного телефона – вечером 10 марта 1876 года в Бостоне. Первые в истории слова «в трубку» произнес изобретатель телефона американец шотландского происхождения Александр Грэм Белл, а услышал их его помощник Томас Уотсон. Первый запатентованный телефонный аппарат – сегодняшний экспонат нашего виртуального музея компьютерной и коммуникационной техники.

Анонсирован мартовский номер № 3 (148) журнала Системный Администратор за 2015 год.

cover03(148)

В номере:

  • Проект Ansible. «Дирижируем» ИТ-инфраструктурой
    Знакомим читателей с системой удаленного управления конфигурацией Ansible и ее дополнением Ansible Tower. В статье раскрываются возможности и освещаются вопросы установки, настройки, использования Ansible для управления удаленными ПК на базе ОС Linux и Windows.
  • Проект Docker. Управляем виртуальными окружениями
    В Linux все большую популярность приобретает виртуализация с использованием контейнеров, основанная на механизмах, встроенных в ядро ОС. А на роль высокоуровневого средства управления такими контейнерами не без оснований претендует Docker.
  • Простой менеджмент конфигураций сетевого оборудования
    С ростом количества рабочих мест увеличивается и численность сетевых устройств, соответственно возникает необходимость в менеджменте конфигураций маршрутизаторов, коммутаторов и прочего оборудования подобного класса.
  • Архивариус SCDPM 2012 R2. Часть 2. Защита данных сервера, баз данных, виртуальных машин
    В статье описываются принципы и понятия, возможности и процессы по резервному копированию и восстановлению сервера с нуля, баз данных MS SQL Server, виртуальных машин в среде Hyper-V.
  • Диски против лент. Выбор средств резервного копирования
    Рассмотрим достоинства и недостатки различных инструментов резервного копирования, познакомимся с эффективными технологиями сохранения данных.
  • Управление Google Chrome в корпоративной среде
    Сегодня многие компании переходят на альтернативные Internet Explorer браузеры, одним из основных при этом является Google Chrome.
  • Приключения демона BSD на острове пингвинов
    Необыкновенные и удивительные приключения демона BSD на острове пингвинов, написанные им самим. Или о всем том необычном, странном, непривычном и удивительном, с чем придется столкнуться, если вдруг возникнет необходимость после длительной работы с FreeBSD перейти на использование Linux.
  • Евгений Питолин: «91% компаний малого и среднего бизнеса существенно недооценивают современные киберугрозы»
    На вопросы «СА» отвечает Евгений Питолин, руководитель отдела по развитию СМБ‑сегмента «Лаборатории Касперского».
  • Устройства Arduino для ИТ и ИБ
    С помощью недорогих макетных плат семейства Arduino можно самому разработать множество устройств. В этой статье речь пойдет о наиболее интересных решениях.
  • Защита SSH от перебора пароля
    Стоит «засветиться» сервису в общедоступной сети, как он сразу становится объектом для атаки. Одна из проблем – попытка получения доступа посредством перебора паролей. И SSH не исключение.
  • Детект уязвимости CVE-2014-8609. Sine ira et studio
    В предыдущей статье мы рассмотрели уязвимость CVE-2014-8609 (напомним, что для большинства устройств закрывающее ее обновление недоступно), которая позволяет полностью удалить все данные с устройства, а также создавать фейковые СМС.
  • Сергей Грушко: «Внедрение IP-телефонии на базе Asterisk – это полноценная бизнес-ниша»
    Asterisk – свободное решение компьютерной телефонии. Приложение работает на операционных системах Linux, FreeBSD, OpenBSD и Solaris и др. Asterisk дает уникальный телефонный функционал для своих пользователей. Не использовать его преимущества в бизнесе – значит, давать конкурентам возможность опередить себя, считает Сергей Грушко.
  • Топ-10 преимуществ системы 3CX Phone System
    Почему вашей следующей телефонной системой должна быть программная АТС от компании 3CX.
  • PGCONF.RUSSIA 2015
    В феврале в Москве, в бизнес-центре Digital October, прошла конференция PGCONF.RUSSIA 2015 для пользователей и разработчиков свободно распространяемой объектно-реляционной системы управления базами данных PostgreSQL.
  • Олег Бартунов: «Нам нужны люди, которые хотят делать карьеру в Open Source!»
    О том, как ему удается вести множество проектов, что ждет Postgres-сообщество в ближайшем будущем, зачем он ходит в горы, и еще о многом другом Олег Бартунов рассказал нашему журналу.
  • WMS на 1С: миф или реальность?
    Обладает ли платформа 1С возможностями, которые подходят под специфичные требования, предъявляемые к WMS-системам относительно традиционных учетных систем?
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 5. Тонкости настройки интеграции
    Изучаем особенности интеграции «1С:Предприятия» и «1С-Битрикс». Знакомимся с гибкой системой настроек, позволяющей делать интересные вещи.
  • Handler Socket в кластере
    Информация о MySQL-плагине Handler Socket, разработанном японцем Akira Higuchi в 2010 году, не является новинкой. Однако на практике при работе с большим потоком данных выявляется много разных интересных нюансов.
  • Внедряем «Луну»
    Ищете возможность реализовать конфигурацию, с помощью которой можно сформулировать сложную логику работы приложения, критичного к производительности? Перед тем, как создавать свою систему конфигурирования, давайте сначала посмотрим на Lua.
  • Артем Воронов: «Магистратура Физтеха – большой карьерный шанс для выпускников региональных вузов»
    Московский физико-технический институт в 2016 году будет отмечать двойной юбилей: 70 лет с момента основания физико-технического факультета МГУ и 65 лет со дня основания собственно МФТИ. Институт давно и прочно занимает ведущие позиции в подготовке научных и управленческих кадров для высокотехнологичного сектора. В гостях у «Системного администратора» – Артем Воронов, проректор по учебной работе и довузовской подготовке МФТИ
  • Вакансия: бэкенд-веб-разработчик
    Одна из востребованных специальностей в области веб-разработки – это создание бэкенда, то есть серверной части веб-приложения. Для успешного трудоустройства профессионалов необходим определенный багаж знаний и умений. Представители компаний рассказывают, каких специалистов они хотели бы видеть в своей команде.
  • Братская помощь дому и офису
    На перефразированный вопрос из культового фильма: «В чем сила, Brother?» – ведущая японская корпорация могла бы ответить своим нынешним рекламным слоганом: в том, что за век с небольшим всегда оставалась «на вашей стороне» (At Your Side). На «вашей» – в смысле на стороне клиента.
  • Процедурно-генерируемые логотипы в дизайне интерфейсов: технологии создания, возможности и ограничения использования
    Компьютерные интерфейсы – одни из самых динамично развивающихся компонентов виртуальной среды. В своем развитии они прошли несколько последовательных этапов, и сегодня мы вступаем в новую эру самонастраивающихся интерфейсов. Процедурная генерация становится ведущей технологией проектирования контента сайтов и их визуального наполнения. В статье на конкретных примерах рассмотрены преимущества и недостатки использования данной технологии и методов визуализации динамически создаваемых логотипов, описаны основные приемы, с помощью которых можно создать генеративный логотип и сохранить его узнаваемость
  • Семнадцать знаков, которые изменили мир
    Именно 17, если точно посчитать буквы, цифры и знаки препинания (в данном случае – дефисы и точки) в странной фразе, напоминающей сокращенный адрес. Или какое-то зашифрованное послание. А на самом деле обозначающей дату и место рождения замечательного изобретения, без которого и ныне, почти 80 лет спустя, человечество – как без рук..
Наверх