Рубрика «Серверное администрирование» - 172

Доброе время суток, хаброжители.
Хочу поделиться реализацией мониторинга виртуального сервера, который я поддерживаю.
Операционная система: CentOS 6.3 x64, однако описываемая ситуация подойдет и для других платформ, как *Win так и *nix.
Постановка задачи.
На сервере установлены сервисы: apache2, MySQL, postfix и реализована защита apache на базе mod_security.
Хозяина сервера не устраивает подключение по ssh консолью и чтение логов в текстовом редакторе, кроме того не было наглядности нагрузок на сервер, количества запросов, сложности запросов к серверу. Я предложил Zabbix сервер, но клиент сказал категорический «нет». Ну что-ж, на то он и клиент, чтобы быть всегда правым.
Необходимо максимально быстро отыскивать сложившуюся ситуацию, связанную с безопасностью сервера, и исходя из события принимать меры к устранению проблемы.

Сразу приведу скриншот того, что получилось:
Мониторинг mod security и MySQL с помощью Splunk

Читать полностью »

Когда речь заходит о недорогом кластерном решении вкупе с возможностью получить совместный доступ к накопителям и упаковать все это в форм-фактор 2U, то, на первый взгляд, удовлетворение всех трех требований одновременно выглядит маловероятным. Но Fujitsu удалось выполнить все эти условия в кластере PRIMERGY CX420 S1, который поставляется как готовое решение для обеспечения непрерывности работы бизнес-приложений в компаниях среднего и малого бизнеса (СМБ), пока обделенных выбором недорогих отказоустойчивых решений.

Недорогой отказоустойчивый кластер? Легко!
Читать полностью »

Foreman — менеджер процессов для ваших веб приложенийВсе более популярной становится модель разработки веб-приложений, основанная на идее масштабирования с помощью процессов. Современное приложение представляет из себя набор выполняющихся процессов, не хранящих состояния, причем каждый изолирован друг от друга. Каждому такому процессу назначается свой локальный порт, что позволяет прозрачно экспортировать ваши сервисы для последующего их потребления кем-нибудь еще, возможно даже, что друг другом (например, один обслуживает http-запросы от пользователей, принимая url-адреса видео, а другой медленно, но верно, загружает их и конвертирует). Как правило, в большинстве случаев http-сервисы просто ставят за reverse proxy в nginx, но возможны варианты.

Не секрет, что у каждого разработчика есть свой арсенал инструментов, позволяющий ему так или иначе сделать свою жизнь проще. Сегодня мы поговорим о таком инструменте, как Foreman. Используя его, вы можете объявить в одном месте все процессы, которые необходимы для запуска вашего приложения. Для этого используется так называемый Procfile, который выглядит как-то так:

web:    mono ./awesome-app --port $PORT
api:    node ./api.js -p $PORT
worker: bundle exec rake resque:work QUEUE=*
habr:   bundle exec ./bin/thin -a localhost -p $PORT

Как видите, все довольно просто, в каждой строчке файла содержится по названию типа процесса и строка для его запуска.Читать полностью »

Как мы и обещали в аннонс-посте, мы открываем цикл статей по виртуализации рабочего пространства.

Тема “модная” на западе, и ее развивают достаточно давно, как технологически (программно), так и с точки зрения аппаратной части. Если вы слышали о таких словах, как “тонкие клиенты”, “виртуализация”, “bring your own device”, “удаленный доступ к данным”, то, скорее всего, вы слышали о какой-либо из частей этого необъятного моря виртуализации рабочих мест.

И, прежде чем углубляться в изучение данной темы, пожалуй, стоит провести небольшой ликбез и ответить на самые простые вопросы, чтобы упорядочить те обрывки информации, которые уже есть у некоторых читателей в головах. Ну а тем, кто уже “в теме”, думаем, тоже будет интересно почитать, вдруг что-нибудь новое узнаете, или увидите проблему под другим углом?

Итак, виртуализация рабочего места. Что она из себя представляет? Прежде чем ответить на данный вопрос, предлагаем вам задуматься вообще о самом термине «рабочее пространство» и такой фразе, как «виртуализация рабочего места».
Читать полностью »

Один из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:

на соединения

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;

и скорость запросов на динамику (fastcgi_pass на php-fpm)

limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
limit_req zone=dynamic burst=10 nodelay;

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

Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.

Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.

Почти всё хорошо стало, но есть неприятные моменты:
— парсинг/сортировка логов тоже приличное (процессорное) время отнимает
— сервер тупит, если началась новая волна между соседними разборками (логов)

Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.

При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!

Для каждого location создаём свою страничку с ошибкой

error_page 503 =429 @blacklist;

И соответствующий именованный location

location @blacklist {
    fastcgi_pass    localhost:1234;
    fastcgi_param   SCRIPT_FILENAME    /data/web/cgi/blacklist.sh;
    include         fastcgi_params;
}

Дальше интересней.
Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.

Сам CGI-скрипт
Читать полностью »

Дон Джонс. «Создание унифицированной системы IT мониторинга в вашем окружении».Глава 6.Унифицированное управление на примерах
Ну, вот наконец мы и добрались до последней главы в книге. Здесь будут рассмотрены некоторые практические примеры, ради соблюдения этики автор практически не называет никаких конкретных систем, кроме очень хорошо известных. Рассматривается состояние дел до внедрения систем унифицированного управления и после.

Читать полностью »

25 апреля в Санкт-Петербурге, при поддержке портала Айти-Событие.рф, состоится High Performance Conference #4 — конференция по высоким нагрузкам.

HPC. Программа, онлайн трансляция и бесплатные билеты
Цель конференции — дать возможность профессионального роста в различных сферах проектирования, разработки, тестирования, администрирования и поддержки высоконагруженных систем её участникам.
Читать полностью »

Обзор Cisco Integrated Management Controller: удаленное управление серверами

В последние годы многие компании применяют практику удаленного администрирования своего серверного парка. Такая необходимость возникает, если организация имеет несколько филиалов, или же полностью отдает техническое сопровождение инфраструктуры на откуп аутсорсинговым компаниям. В связи с этим высокую популярность приобрели системы удаленного управления серверами посредством Ethernet-сети на основе технологии IPMI (Intelligent Platform Management Interface). Читать полностью »

Мне поступила задача организовать отказоустойчивость веб-приложения из двух серверов. Веб-приложение включает в себя статические файлы и данные в СУБД MySQL.
Основное требование заказчика — веб-приложение должно быть всегда доступно и в случае сбоя в течении 5 минут сбой должен быть восстановлен.
2 сервера, территориально разнесенные в разных ЦОДах, должны удовлетворить данное требование.
Отказоустойчивая архитектура из двух веб серверов на примере Debian Squeeze
Читать полностью »

Есть много разного полезного софта, который присутствует на большинстве хостингов. Например, стандартом de-facto является phpmyadmin, отсутствие которого пользователи не поймут и не оценят.

Для почты такое “приложение по умолчанию” — roundcube.

Сегодня мы поговорим о уязвимости zero-day, которая отдает в руки злоумышленнику всю почту ваших пользователей
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js