Мониторинг Drupal сайтов

Опубликовано Mexof - вт, 09/23/2014 - 07:20

Сегодня пойдет речь о мониторинге Drupal сайтов. В нашей компании мы используем для этого модуль Drupal Remote Dashboard (drd).

Этот модуль предоставляет нужные нам возможности для мониторинга:

  • отслеживание изменений версий ядер, модулей и тем;
  • возможность удаленно запускать cron;
  • включить режим обслуживания;
  • очищать кэш;

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

Модуль drd состоит из клиентской и серверной части: drd — сервер и drd server — клиент.
Модуль drd устанавливаем на тот сайт, с которого мы планируем мониторить сайты (поддерживается только Drupal 7), а модуль drd server устанавливаем на тот сайт, который планируем мониторить (поддерживается Drupal 6 и 7).

Что ж, перейдем от теории к практике...

Установка

Установка drd и drd server идентична, поэтому мы рассмотрим пример только с установкой drd server.

  1. С помощью drush. Самый быстрый и удобный вариант.
    Переходим в корневой каталог и выполняем следующие команды:
    drush dl drd_server
    drush en drd_server

    Если у Вас до этого не был установлен модуль AES, то при выполнении последней команды Вам будет предложено установить его. Соглашаемся, так как для работы drd server-а этот модуль необходим.

  2. Вручную.
    1. Переходим в каталог sites/all/modules, скачиваем туда архивы модулей AES, drd_server нужных версий (6 или 7, в зависимости от версии Вашего Drupal сайта).
    2. Распаковываем командой tar vxfz имя_архива.
    3. Переходим в панель администрирования сайта, на вкладку модули, включаем модуль AES и DRD server.

С установкой мы разобрались, переходим к настройке.

Настройка

Возможны два варианта настройки drd_server-a: удаленно или вручную.

  • Для удаленной настройки нужно предварительно скопировать файл drd_server.install.php.txt из sites/all/modules/drd_server в корневую папку Вашего сайта, переименовать его в drd_server.install.php и дать права на выполнение (команда chmod +x имя_файла).
  • Для ручной настройки никаких предварительных действий не требуется.

Настройка модуля drd_server

  1. Переходим в меню администрирования Конфигурация и выбираем пункт DRD Remote Settings, в поле Allowed referer IP addresses вводим IP адрес сайта, с которого будет производится мониторинг (на котором установлен drd модуль).
  2. Появится список с настройками для этого IP адреса. Пока ничего не вписываем.

Настройка модуля drd_server

Настройка модуля drd

  1. Переходим в панель администрирования сайта, с которого будем мониторить. После установки модуля drd в основном меню администрирования должна появиться вкладка Drupal Remote Dashboard. В ней есть пять вкладок: Cores, Domains. All domains, Modules, Settings. Переходим во вкладку Cores, выбираем Add new Drupal core.
  2. В поле Name указываем имя ядра (на Ваше усмотрение), в поле URL указываем адрес Вашего сайта.
  3. Если Вы хотите удаленно настроить drd_server и скопировали нужный файл в корневую директорию, то ставим галочку напротив Support remote installation и нажимаем кнопку Save. На этом настройка drd_server будет завершена, можно сразу переходить к пункту 10.
  4. Если настраивать drd_server планируется вручную, то галочку напротив Support remote installation не ставим и сразу нажимаем кнопку Save.
  5. После сохранения мы вновь вернемся на страницу Cores. Вверху страницы должен появиться текст. Его последняя строчка должна выглядеть примерно так:
    or edit the remote AES keys manually: Implementation = "mcrypt", Cipher = "rijndael-128", Key = "ccbdAa4cxChhqLn", IV = "DJvK+AypvhL2nuXzO8nx0A=="
  6. Переходим на страницу администрирования сайта, на котором установлен модуль drd_server. До этого мы указали там только IP адрес, с которого будет производиться подключение. Теперь нужно вписать туда настройки AES: нажимаем кнопку Edit и заполняем поля значениями, что мы получили: Implementation = "mcrypt", Cipher = "rijndael-128", Key = "ccbdAa4cxChhqLn", IV = "DJvK+AypvhL2nuXzO8nx0A==".
  7. Нажимаем кнопку Save.
  8. Настройка модуля drd

  9. Возвращаемся в меню администрирования сайта, на котором установлен drd модуль. Редактируем только что добавленный нами сайт, вписываем туда значение AES ключа: Key = "ccbdAa4cxChhqLn". Оно одинаковое для drd и drd_server модулей. Сохраняем.
  10. На этом настройка сайта на мониторинг завершена, осталось только обновить информацию о доменах.
  11. После установки у нас нет никакой информации о добавленном сайте, чтобы получить эту информацию нужно выбрать галочкой сайт, наверху страницы появится выпадающее меню с заголовком Actions. Выбираем Update server domains и нажимаем кнопку Execute.
  12. Переходим на вкладку Domains и выбираем галочкой новый домен. В выпадающем списке выбираем Update info и нажимаем кнопку Execute.
  13. Информация о домене обновлена, должна появиться версия Drupal-а, что установлен на этом сайте.
    Во вкладке Modules можно посмотреть какие модули установлены, что нужно обновить.
  14. На этом установка и настройка завершена, мы можем мониторить состояние сайта.

Скриншот основной панели мониторинга сайтов в модуле drd
Мониторинг сайтов в модуле drd

Скриншот основной панели мониторинга сайтов в модуле drd по доменам
Мониторинг сайтов в модуле drd по доменам

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

Примеры команд

Обновление информации о доменах:

drush drd-action drd.server.domains 

Обновление листа обновлений модулей и тем:

drush drd-action drd.list.updates

Возможные проблемы при настройке

  1. Самая распространенная ошибка - это Failed connection.
    Возникает она в том случае, если у Вас отсутствует файл xmlrpc.php в корневой директории, т.к. модулю drd для подключению к drd_server-у требуется этот файл.
  2. Модуль AES работает с двумя реализациями шифрования:
    1. PHP's Mcrypt extension.
    2. PHP Secure Communications Library (phpseclib).

    Бывает такое, что php crypt (PHP's Mcrypt extension) не установлен на сервере и вы никак не можете его установить (к примеру, у Вас shared-хостинг), тогда Вам нужно вручную добавить phpseclib в директиву модуля AES:

    1. Скачиваем последнюю версию phpseclib с сайта http://phpseclib.sourceforge.net/.
    2. Создаем папку phpseclib в директории sites/all/modules/aes (команда mkdir phpseclib).
    3. Распаковываем архив phpseclib в эту папку.
    4. Переходим в панель администрирования —> Модули и включаем модуль AES.

    Эту процедуру нужно проделать с обоими сайтами, на которых установлен drd и drd_server. После этого, при добавлении нового сайта мы сможем выбирать с помощью чего будем шифровать: PHP's Mcrypt extension или PHP Secure Communications Library (phpseclib).

  3. Проблемы с мультисайтом.
    Вы добавили новое ядро. Это мультисайтинг. Вы обновили информацию о доменах, никаких ошибок нет, но во вкладке Domains, в поле Installed напротив этих сайтов стоит значение No, т.е. модуль drd не видит установленного модуля drd_server на этих сайтах. Первый делом проверьте, на всех ли сайтах включен модуль drd_server. Если он включен, а информация всё равно не обновляется, то скорее всего проблема в редиректах. К примеру, у Вас редирект с "mydomains.com" на "www.mydomains.com", тогда Вам нужно выполнить следующие шаги:
    1. Создать файл sites.php в директории sites, содержащий информацию о мультисайтинге:
    2. <?php
      $sites = array(
        'www.mydomain.com' => 'mydomain.com',
        'mydomain.com' => 'mydomain.com',
      );
      
    3. Сохраняем файл. После этого обновляем информацию о доменах. На этот раз всё должно пройти успешно.

Как можно было так коряво объяснить какой модуль на какой сайт ставиться....
Есть сайт который мониторит, и те который мониторяться. На какой сайт какой модуль ставиться?
Заранее вам благодарен.

По тексту:
Модуль drd устанавливаем на тот сайт, с которого мы планируем мониторить сайты (поддерживается только Drupal 7), а модуль drd server устанавливаем на тот сайт, который планируем мониторить (поддерживается Drupal 6 и 7).

Добавить комментарий

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Web page addresses and email addresses turn into links automatically.