Как администрировать сервер Битрикс24

Как администрировать сервер Битрикс24

Расскажем, что нужно делать системному администратору для сопровождения сервера с коробочной версией Битрикс24. На что нужно регулярно обращать внимание, куда смотреть в случае возникновения проблем и что делать, если всё сломалось.

Предисловие

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

В самом простом случае для сопровождения сервера достаточно иметь к нему доступ по SSH и владеть базовыми знаниями об администрировании систем на Linux. Ничего специфичного для своей работы Битрикс24 почти не использует — под капотом всем давно известные технологии:
  • Nginx
  • Apache
  • MySQL
  • Sphinx
  • Memcached
  • Munin
  • Nagios
  • NodeJS
  • Архитектурно Битрикс24 почти не отличается от любого другого сайта или интернет-магазина, разработанного на фреймворке Битрикса. Применяемые при разработке принципы у них одни и те же. Однако в отличие от сайтов у Битрикс24 повышенные требования к системе, в которой он запускается.

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

    Если нет полной уверенности, так ли это — можно проверить наличие в системе пакета “bitrix-env”:
    $ yum list installed | grep bitrix-env
    bitrix-env.noarch                   7.3-4.el7                       @bitrix 
    
    Если веб-окружение стоит, мы можем в интерактивном режиме в консоли выполнять наиболее типовые задачи по администрированию, используя скрипт /root/menu.sh:
    И вообще там много полезного. Более подробно познакомиться с веб-окружением и его возможностями управления сервером можно в специально разработанном для этого курсе.

    Проверки на каждый день

    Контролируем самые критичные для работы сервера параметры. Их всего три.

    1. Расход памяти
    Можно смотреть утилитой htop: htop На сервере всегда должен быть запас, который можно использовать. В идеале расход RAM не должен быть выше, чем 50% при пустом swap’е. Но на практике достижение такого уровня может оказаться нецелесообразным или невозможным. Например, если мы хостим Битрикс24 на VPS - можно неожиданно упереться в бюджет, выделенный на оплату этого сервера, т.к. добавление памяти будет не бесплатным.

    В целом нужно смотреть по поведению системы. Если на вашем сервере память заполнена на 80% и ещё 50% лежит в swap’е, но портал работает без перебоев, то всё нормально.

    Кстати swap должен быть всегда. Нам время от времени встречаются настроенные по-ковбойски сервера, на которых его нет, из-за чего при повышенном расходе памяти сервер намертво зависает вместо того, чтобы продолжить работать.
    2. Средняя нагрузка
    Смотрится так же через htop: htop2

    Три числа, следующие за “Load Average” — средняя нагрузка на систему за 1, 5 и 15 минут. Нам наиболее интересна 15-минутная, т.к. при её расчёте сглаживаются кратковременные всплески нагрузки, искажающие статистику за 1 и 5 минут.

    Приближённо говоря, пределы нормы для Load Average — от нуля до количества процессорных ядер в системе. Для VPS с двумя ядрами, как на скрине значение 2.00 будет означать 100% утилизацию процессорного времени. Вообще эти числа считаются несколько сложнее, но для ориентировки нам хватит такого понимания.
    3. Расход диска
    Расход дисков отображается такой командой:
    $ df -h | grep -v tmpfs
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        29G   19G  8.5G  69% /
    
    Использование дисков не должно превышать 80%. Если превышает — с этим нужно что-то делать:
  • Удалить с диска старые резервные копии, если они там хранятся
  • Подключить облачное хранилище и перенести в него файлы из /upload/
  • Увеличить размер диска, если Битрикс24 стоит в виртуальной машине
  • Поменять диск на более объёмный, если Битрикс24 стоит на физическом сервере
  • При этом на сервере всегда должен быть запас как минимум на две резервных копии Битрикс24. Их размеры разнятся от портала к порталу, но в среднем одна резервная копия будет занимать от 4 до 16 ГБ.

    Также можно воспользоваться разделом «CRM - Настройки - Чем занято место» и оценить, как Битрикс24 расходует выделенное ему пространство: чем занято место

    Проверки каждую неделю

    1. Проверка создания резервных копий
    На портале должно быть настроено автоматическое резервное копирование. Это делается в админке, в разделе «Настройки - Инструменты - Резервное копирование - Регулярное резервное копирование»: резерв копирование

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

    Список созданных резервных копий можно посмотреть в разделе «Настройки - Инструменты - Резервное копирование - Список резервных копий»: список

    Если очередная резервная копия не создалась и в списке отображаются только её предыдущие версии, нужно разобраться, почему это произошло и устранить проблему. Две наиболее частые причины — отсутствие места на диске и неправильно настроенное расписание.

    Также резервную копию можно создать вручную вне очереди: копия
    2. Проверка журнала событий
    В админке, в разделе «Настройки - Инструменты - Журнал событий» отображаются события, фиксируемые в Битрикс24:
    журнал событий

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

    Например:

  • Череда безуспешных попыток авторизации, закончившаяся успехом, может означать взлом аккаунта пользователя, нужно убедиться, что это не так. Хотя чаще это означает, что пользователь забыл свой пароль.
  • Если модуль проактивной защиты обнаружит на сайте вирус или попытку вторжения — информация об этом так же окажется в этом журнале.
  • Когда кто-то пользуется PHP или SQL-консолью в админке, информация об этом фиксируется в журнале. Если мы видим, что из под аккаунта бухгалтера кто-то выполнял SQL-запросы — это как минимум странно.
  • Более подробную информацию о журнале событий, а также как его настроить - можно найти в официальной документации:

    Как минимум, все события главного модуля должны быть включены/ события
    3. Проверка логов
    После журнала событий стоит также посмотреть системные логи. В них может оседать информация о низкоуровневых ошибках. Например, в настройках Битрикс24 можно определить файл, в который будет записываться информация о всех сбоях, возникающих в системе.

    Чтобы узнать, где конкретно он находится на вашем портале, нужно выполнить в PHP-консоли такой код:
    $config = \Bitrix\Main\Config\Configuration::getInstance();
    var_dump($config['exception_handling']['log']);
    
    Результат её выполнения будет выглядеть так: результат

    В этом файле в зависимости от текста ошибки можно понять, что произошло. Так, если в ошибке фигурируют строки вида «Too many connections» или «MySQL server has gone away» — нужно перепроверить настройки сервера БД. В остальных случаях нужно обратиться к разработчику.

    Кроме Битрикса, стоит просматривать логи отправки почты. В зависимости от того, как настроена отправка почты они пишутся либо в /home/bitrix/msmtp_default.log, либо в /var/log/maillog.
    В них можно найти:
  • Кому и сколько писем отправляется, не идёт ли рассылки спама
  • Коды ответов почтового сервиса, принимает ли он письма нашего портала
  • Как быстро почта уходит с сервера
  • В зависимости от вашего опыта работы с Linux вам могут также пригодиться логи в /var/log, как минимум эти:
  • /var/log/cron
  • /var/log/dmesg
  • /var/log/messages
  • /var/log/mysql/error.log
  • /var/log/mysql/slow.log
  • /var/log/nginx/error.log
  • /var/log/httpd/error_log
  • /var/log/firewalld
  • /var/log/secure
  • Описывать каждый из них — это надолго и не уместится в рамках одной статьи, поэтому ограничимся примерами ошибок, которые можно в них найти:
  • Признаки разваливающегося RAID
  • Отмонтировавшийся сетевой диск
  • Попытки подбора пароля по SSH
  • Авторизация под рутом с неизвестного IP
  • Ошибки при выполнении задач по крону
  • Медленные SQL запросы
  • Записи о битых таблицах в MySQL
  • … и так далее
  • Проверки каждый месяц

    1. Проверка системы штатными средствами Битрикс24
    Нужно зайти в админку (раздел «Настройки - Инструменты - Проверка системы»), нажать кнопку «Выполнить проверку» и дождаться результатов. После чего исправить выданные рекомендации, а также выполнить проверки на вкладках «Тестирование конфигурации» и «Проверка доступа».

    проверка системы

    проверка системы2

    проверка системы3 Обычно результаты проверки из месяца в месяц не меняются, но иногда с обновлениями приходят новые проверки или обнаруживаются ненамеренные изменения в настройках портала.
    2. Проверка производительности
    Нужно зайти в админку (раздел «Настройки - Производительность - Панель производительности»), запустить процесс тестирования, после чего ознакомиться с рекомендациями и принять соответствующие меры. панель производительности

    панель производительности2

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

    В Битрикс24 имеется раздел «Настройки - Производительность - Сервер БД», где можно получить рекомендации о том, что нужно подкрутить в настройках вашей БД. Выглядит вот так: БД

    Предлагаемые изменения нужно вносить в файл /etc/mysql/conf.d/z_bx_custom.cnf. Корневой файл конфига (/etc/my.cnf) лучше не трогать, потому что ваши изменения могут перезаписаться при обновлении веб-окружения.

    После каждого изменения параметров нужно перезапускать сервер MySQL:
    $ systemctl restart mysql
    
    Также можно воспользоваться более продвинутым инструментом - MySQLTuner, с которого собственно в Битрикс и портировали свою систему выдачи рекомендаций. В CentOS его можно поставить прямо из репозиториев:
    $ yum -y install mysqltuner
    
    4. Проверка настроек PHP
    Находится в разделе «Настройки - Производительность - PHP». Крайне редко в этом разделе будет полезная информация, но зайти на минутку и проверить наличие рекомендаций стоит.

    производительность PHP
    5. Продление SSL-сертификатов
    Срок действия SSL-сертификата можно проверить с помощью сервиса SSL Shopper

    Сертификат может быть платным и бесплатным. Если вам ставили платный, то продление будет происходить примерно раз в год и потребует ручных действий. Если бесплатный, то вместе с установкой должны были настроить автоматическое его продление. Бывает, что автоматическое продление сбоит или не работает, в таком случае необходимо обновить сертификат вручную такой командой:
    # обновить
    $ /opt/webdir/bin/bx-dehydrated
    
    # посмотреть результаты
    $ cat /home/bitrix/dehydrated_update.log
    
    6. Проверка баланса на хостинге
    Если вы арендуете виртуальный или физический сервер у хостера, нужно регулярно проверять, что на вашем аккаунте достаточно средств для оплаты услуги на ближайшие 30 дней. Если просрочить оплату, ничего страшного обычно не случается, но всё равно неприятно прийти утром на работу и обнаружить, что Битрикс24 не работает, потому что хостер выключил виртуалку за неуплату.
    7. Восстановление из резервной копии
    Резервные копии мало только делать, нужно также быть уверенным в том, что в случае чего из неё можно будет восстановиться. Чтобы это проверить нужно попробовать восстановить резервную копию на каком-либо сервере, отличном от боевого и посмотреть, как всё прошло. Чтобы сделать это нужно воспользоваться соответствующей инструкцией.

    Для целей проверки не обязательно иметь точную копию основного сервера, достаточно сделать это в виртуальной машине на локальном компьютере. Её можно скачать тут.

    Кроме успешного завершения процесса восстановления, нужно авторизоваться и походить по развёрнутой копии портала. Убедиться, что все файлы, записи звонков, фотографии сотрудников, задачи, сделки, сообщения остались на месте. Если резервная копия не восстановилась или оказалась неполной, нужно перенастроить правила создания резервных копий и выяснить причину, почему так произошло.
    8. Проверка монитором качества
    В разделе «Настройки - Инструменты - Монитор качества» есть возможность проверить проект на соответствие стандартам качества Битрикс24. монитор качества

    После запуска система автоматически проверит большинство пунктов и выдаст рекомендации: рекомендации

    Некоторые из этих проверок неактуальны для Битрикс24 (например, все проверки по интеграции дизайна имели бы смысл только для интернет-магазинов), но секции “Веб-окружение”, “Безопасность”, “Производительность”, “Размещение на хостинге”, “Сдача проекта” - несут достаточно ценную информацию независимо от типа проекта.

    По каждому проверяемому пункту можно получить детальное описание и рекомендации: детальное описание

    детальное2
    9. Проверка безопасности
    Продолжаем использовать штатные средства системы, раздел «Настройки - Проактивная защита - Сканер безопасности»: сканер

    Результаты выглядят так: результаты

    Для каждой найденной проблемы можно нажать на “Что делать” и посмотреть человекопонятное описание: понятное описание
    10. Проверка инспектора сайтов
    Инспектор сайтов позволяет мониторить работоспособность сайта и сроки действия лицензии Битрикс24, SSL-сертификатов и домена. В админке можно найти все мониторируемые сайты в разделе «Настройки - Облако 1С-Битрикс - Инспектор сайтов». инспектор сайтов Страница настроек выглядит так: настройки инспектора

    Если вы укажете свой адрес в поле «e-mail для оповещений», будете получать письмо, если на портале возникнут неполадки, а также когда придёт время обновить домен, лицензию или сертификат.

    Проверки каждый год

    Обновление Битрикс24

    На самом деле Битрикс24 стоит обновлять чаще, чем раз в год. Вместе с обновлениями постоянно приезжает новый функционал, улучшение интерфейса и производительности, исправления старых и добавление новых ошибок, исправление уязвимостей.

    Можно узнать дату последней установки обновлений в админке в разделе «Marketplace - Обновление платформы»: маркетплейс
    Если эта дата была больше года назад, стоит запланировать обновление.

    Обновление системных пакетов

    Битрикс24 будет успешно работать, несмотря на то, что на сервере стоят не самые последние версии пакетов, поэтому необходимость обновлять систему возникает довольно редко. Обновления безопасности должны ставиться автоматически. Остальные обновления достаточно ставить раз в год, чтобы система устаревала не очень сильно.

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

    $ yum-y upgrade
    
    Если при обновлениях была сгенерирована новая версия загрузчика - обязательно нужно перезагрузить сервер и убедиться, что он корректно стартует:
    $ reboot
    
    В некоторых случаях для обновления необходимо будет воспользоваться скриптом menu.sh. Например, веб-окружение не станет самостоятельно пытаться проапгрейдить версию БД или PHP, на это нужно согласиться явно.

    Продление лицензии Битрикс24

    Обычно продлением лицензии занимается не системный администратор, но про него стоит упомянуть. При неактивной лицензии в Битрикс24 перестаёт работать достаточно много функционала:

  • Телефония Битрикс24
  • REST API и все установленные приложения
  • Выгрузка резервных копий в облако Битрикс24
  • Инспектор сайтов и мониторинг сайта
  • Автозаполнение реквизитов в CRM
  • Открытые линии и чат-боты
  • ...

  • Поэтому кроме технических аспектов нужно проконтролировать, что лицензия будет продлена вовремя.

    Что делать дальше

    Большую часть перечисленных проверок можно автоматизировать. Например, настроить нормальный мониторинг, отслеживание подозрительной активности, информирование о возникающих проблемах. Мы описали самый простой случай, который закрывает 80% потребностей среднестатистической коробки на ~50 человек.

    Если вы решили, что не хотите этим всем заниматься, напишите нам

    Игорь Денисенко
    Игорь Денисенко
    Технический директор БизнесПрофи