blog.it-kb.ru
Исправление ошибок Icinga Web 2 : IcingaException Translator.php : Cannot set locale 'ru_RU' for category 'LC_ALL' - Блог IT-KB
В том случае, если сервер Icinga c Icinga Web 2 развёрнут на Debian Linux с ограниченным набором локалей, где в качестве системной установлена англоязычная локаль, например, en_US.UTF-8, и при этом к веб-сайту Icinga Web подключаются пользователи, имеющие в своём браузере отличные языковые параметры, например, с системы, где в качестве основного языка установлен русский, то можно столкнуться с ситуацией наполнения лога icingaweb2.log множеством однотипных ошибок. # tail -f /var/log/icingaweb2/icingaweb2.log ... 2018-08-20T16:43:41+03:00 - ERROR - Icinga\Exception\IcingaException in /usr/share/php/Icinga/Util/Translator.php:181 with message: Cannot set locale 'ru_RU' for category 'LC_ALL' 2018-08-20T16:43:47+03:00 - ERROR - Icinga\Exception\IcingaException in /usr/share/php/Icinga/Util/Translator.php:181 with message: Cannot set locale 'ru_RU' for category 'LC_ALL' 2018-08-20T16:43:49+03:00 - ERROR - Icinga\Exception\IcingaException in /usr/share/php/Icinga/Util/Translator.php:181 with message: Cannot set locale 'ru_RU' for category 'LC_ALL' ... Если я правильно трактую ситуацию, управляющий код Icinga Web 2 для работы с таким клиентом пытается использовать локаль, которая не доступна на сервере. Судя по [dev.icinga.com #11820] Check whether chosen locale is available #2432 и [dev.icinga.com #10101] Translator throws exception if locale is missing #1986, ошибка такого характера встречалась и ранее у других администраторов Icinga и была исправлена разработчиками в одном из предыдущих релизов, однако, практика показывает, что её возникновение возможно и сейчас. Далее кратко о том, как можно избавиться от подобных ошибок в логе. Посмотрим информацию об имеющихся наборах локализации на сервере Icinga # locale --all-locales Как видим, в системе отсутствует русская локаль, на которую ругается в логе Icinga Web ('ru_RU'). Чтобы добавить в систему соответствующую локаль, вызовем реконфигурацию пакета locales. # dpkg-reconfigure locales Откроется список локалей, которые должны быть сгенерированы в результате реконфигурации. Убедимся в том, что в списке отмечена используемая на данный момент локаль (в нашем случае это en_US.UTF-8): Просмотрим весь список и найдём в нём недостающую русскую локаль, например, ru_RU.UTF-8, затем нажмём Ok Конфигуратор предупредит нас о том, что из нескольких генерируемых локалей нужно будет выбрать основную локаль,