Сначало предыстория
Вопрос на какой ОС лучше всего развернуть сервер 1С:Предприятия по-моему уже затер до дыр. На это тему много написано статей, которые породили много мифов, которые склоняют нас при выборе платформы в ту или иную сторону. В этой статья я хотел поделиться тем решением, которое я нашел для себя, изучая все данные мифы на своем опыте. Хотелось бы для начала пройти по данным мифам. Так что же чаще всего нас толкает на при выборе той или иной системы:
1) Windows проще в настройке и обслуживании. Пфффф... Это может утверждать только человек с очень низкой квалификацией в области работы с Windows. Безусловно, Windows располагает рядом удобств, но тонкая настройка Windows требует огромных знаний. Если вы одмин локалхоста, и вас устраивает конфигурация, которую создаст мастер - это еще не значит, что этим настройка Windows заканчивается. Продукты фирмы Microsoft интегрируются друг в друга образуют очень сложную систему. И порой, когда настраиваешь что-то действительно сложное, ну например, публикуешь веб клиент с авторизацией по клиентским сертификатам, а для этого нужно иметь AD, развернуть центр сертификации, неплохо бы настроить реверс прокси, для чего у Microsoft есть cвое решение. И вот когда все это настроишь и все наконец заработает как надо, то понимаешь что настройка Windows не такая уж и простая задача. А по своему опыту могу сказать, что порой легче найти ответ для Linux, нежели для Windows.
Но, как по мне, Windows действительно обладает тремя существенными преимуществами, которые ранее склоняли меня к использованию именно данной платформы.
- Первое это - глубокая интеграция всего семейства продуктов друг в друга. Если у меня есть AD, то я, используя доменную учетную запись, могу авторизоваться везде. В Exchange моя учетная запись - это почта, я захожу под ней по RDP, при этом используя сквозную аутентификацию.
- Второе существенное преимущество состоит в следующем: мне нужно быстро выполнить какую-то операцию. Например, очистить список открытых сессий к базе данных 1с. Я открываю консоль администрирования и завершаю. На Linux мне с начало пришлось бы вспомнить про утилиту rac, просмотреть ее параметры, собрать нужную команду и завершить нужную сессию. Это потребовало бы больше усилий. То есть преимущество в большей скорости выполнения каждодневных операций, и меньших усилий.
- Ну и наконец, третье преимущество это, то что Windows в момент установки не требует плясок с бубном. Я устанавливал 1С:Предприятие на Linux начиная с Ubuntu 12.04, Это удивительно, но каждая новая установка сопровождалась какими-нибудь уникальными ошибками. Версии пакетов в репозитории системы не подходят, либо скрипт установки 1С ищет нужные файлы в одном месте, а они лежат в другом. В общем, тогда я открыл для себя, что Linux это удивительная система, где твой вчерашний опыт сегодня уже может ничего не значить и не в чем тебе не поможет (шутка). Хотя стоит отметить, что после того как Linux настроен, он может работать без ошибок годами.
2) Windows работает быстрее Linux. Говоря Windows, я подразумеваю совокупность продуктов, т.е. и MS SQL. До недавнего времени я и сам был под действием данного мифа. Но вот недавно пришёл новый сервер, раза в два мощнее предыдущего, как минимум. Для большего эффекта в повышении производительности решили еще и Windows на нем развернуть, с MS SQL конечно. До этого стоял Linux c PostgreSQL и работал тихо мирно, никого не беспокоя, последние лет 5. И вот настроили все, запустили тесты, в предвкушении, что вот теперь-то точно все будет молниеносно считаться и проводиться. И какое было наше разочарование, когда прирост производительности составил всего 30%, что было по большей части обеспеченно новым железом. С тех пор я очень скептически отношусь к заявлением, что вот на MS SQL сейчас все залетает. На данный момент у меня есть системы на PostgreSQL которые выдают уж точно не меньшую производительность чем системы на MS SQL.
3) “Windows стоит больших денег, и давайте поставим Linux, возможно нас даже похвалят”. Ну да лицензировать все как полагается, со всеми клиентскими лицензиями и по канонам best practice, дорогое удовольствие. Но если, взвесив все за и против вы принимаете решение использовать платформу Windows, а в компании где вы работаете, говорят: « нет! это дорого, пусть бухгалтерия работает с 1с в файловом режиме, и нас мало беспокоит что бухгалтеров 20 человек и все ужасно тормозит», то мой вам совет – увольняйтесь. Как говорит мой опыт, денег нет вам на премию, а вот на производственные нужды деньги всегда найдутся. Поэтому данный пункт всерьез рассматривать тоже не берусь, если вы серьезный специалист, то работаете в серьезной компании, которая при необходимости приобретёт все нужные лицензии.
4) Совокупная стоимость владения Linux выше. Так по-моему это звучит. Ну, это по-видимому придумали малограмотные админы, решающие все проблемы переустановкой системы, и которым жутко не хочется расти и развиваться. Windows очень сложная система, которая требует большого количества знаний, и хороший спец по Windows ничем не отличается от хорошего спеца по Linux.
Конечно, есть разные специфичные вопросы, требования в отрасли, различные юридические нюансы. Их разбирать не будем просто, потому что если есть конкретный ответ на то почему нужно делать так, а не иначе, рассуждать на это тему зря тратить время. Ну, например, если у нас в уставе прописано, что использовать открытое ПО нельзя, то глупо рассуждать, как бы хорошо все работало на Linux.
Ну, собственно, исходя из выше перечисленного и руководствуясь тремя подпунктами из первого пункта, до недавнего времени я делал выбор в сторону Windows платформы. Но знакомство с одной из Linux based систем заставило пересмотреть мой выбор.
И данная система называется ClearOS. Обратимся к википедии. ClearOS (ранее ClarkConnect) это дистрибутив Linux, основанный на CentOS и Red Hat Enterprise Linux. Предназначен для использования в малых и средних компаниях в качестве шлюза или сетевого сервера, имеет веб-интерфейс для насройки. Создавался в качестве алтернативы Windows Small Buisness Server
Первое – это то, что после установки на нем все сразу заработало, без применения напильника. То чувство когда поставил Linux и он просто работает – непередаваемоJ. С начало я развернул на данной системе шлюз, реверс прокси, сделал проброс портов, поднял веб сервер, настроил контент фильтр, блокировал youtube и многое другое не открывая командную строку. И все работало именно так, как ты этого ожидал. Что без использования напильника в мире Linux большая редкость. Я был в под впечатлением.
И вот после этого я решил попробовать на нем 1С. Чтобы поставить Postgres и 1C:Предприятие мне все таки пришлось прибегнуть к консоли, так как увы, в стандартных репозиториях 1C:Предприятия не найти. Все работало, в прочем, как и на любом другом Linux. Уж не помню, применял ли я напильник, но хотелось того же удобства, что я испытал настраивая шлюз. То есть, чтобы все работало через веб интерфейс и настраивалось мышью.
Практическая часть.
И вот тогда родилась мысль: а не написать ли приложение расширяющие функции веб консоли для данной системы, через которое можно быстро решать самые частые проблемы с 1С.
Я написал список тех задач, возможность решения которых хотелось бы иметь через веб интерфейс:
1) Просмотр списка установленных пакетов и версии платформы.
2) Настройка технологического журнала.
3) Визуальный просмотр загруженности сетевой карты, процессора и жесткого диска (уже имелся)
4) Удобный просмотр логов через веб интерфейс (уже имелся)
5) Создание информационной базы.
6) Публикация веб клиента не прибегая к командной строке.
7) Возможность настроить авторизацию по сертификатам не прибегая к правке конфигов.
8) Просмотр списка активных пользователей и возможность их удалить.
9) Просмотр списка лицензий и информации, которая необходима для повторной активации.
И вот хотел поделиться тем, что получилось. Представляю к вашему вниманию приложение для ClearOS, которое призвано сделать удобным часто выполняемые операции с сервером 1С.
Начнем обзор.
После установки становится доступным пункт меню Server->Applications->1C:Server
При выборе данного пункта открывается главная страница плагина, где в в самом верху выводится список установленных пакетов и их версия. Ну вдруг мы забыли какая верcия сервера у нас установленаJ
Технологический журнал
При нажатии на кнопку Config Log откроется страница, где нам предложат установить нужные галочки напротив тех событий, которые мы хотим фиксировать. После нажатия на кнопку Update плагин автоматически создаст файл настроек технологического журнала, и папку логов. Вам больше не нужно знать формат этого файла и где он находится. Просто нажимаете на Update и просматриваете логи.
Теперь сервер можно остановить, запустить , а так же отследить состояние сервера не выходя из веб консоли.
Postgresql
Прямо из веб консоли можно произвести установку PostgreSQL.
При этом будет установлена пропатченная версия с сайта postgrepro.ru. Всего одним нажатием кнопки Install.
Так как в моем случае установка уже произведена, ничего не произошло. Вы же увидите лог установки. После чего окно информации в секции PostgreSQL немного изменится и у вас появится, возможность произвести инициализацию кластера.
Инициализация будет произведена без параметров. Конечно, после этого в любом случае нужно будет открыть консоль для настройки PostgreSQL. Задать пароль пользователю postgres и провести другие настройки оптимизирующие работу PostgreSQL с 1с.
Remote Administrative Client
В приложении реализованы некоторые функции Remote Administrative Client. Rac это консольная утилита позволяющая выполнять практически все дейсвия визуальной утилиты Администрирование кластера серверов 1С. Из реализованных на данный момент функций:
- Просмотреть список добавленных кластеров(Добавить нельзя)
- Просмотреть список баз кластера.
- Добавить базу в кластер
- Удалить базу из кластера
- Просмотреть список открытых сессий информационной базы.
- Удалить открытую сессию.
- Добавить сервер в кластер
- Удалить сервер из кластера
- Изменить свойства кластера
- Изменить свойства серверов добавленных в кластер
Web Client Publishing Utility
Следующим модулем приложения является Web Client Publishing Utility. Данный модуль приложения позволяет вам просмотреть список опубликованных для веб клиента баз, а также производить публикацию этих самых баз на для веб клиента. Данный модуль для своего функционироания требует установки веб сервера.
Чтобы установить веб сервер нужно перейти в раздел marketplace, в поле поиска набрать Web Server и установить.
После чего модуль станет доступен.
1С Licensing Tools
В составе 1С есть утилита для просмотра информации об установленных лицензия. Находится данный пакет в папке /opt/1C/v8.3/x86_64/ExtDst/. Там будут находиться два пакета
1c-enterprise-license-tools-0.4.1-1.x86_64.rpm 1c-enterprise-ring-0.8.2-1.x86_64.rpm
Если их установить, то в приложении станет доступен модуль просмотра установленных лицензий. Для работы данного модуля так же потребуется установка jdk, а так же указание переменной среды JAVA_HOME.
Следующий раз я скажу о практическом сценарии, стремясь упростить который, я и создал данное приложение. Данный сценарий заключается в защите опубликованной базы для веб клиента при помощи SSL сертификатов. Ранее данная операции занимала у меня существенное время и требовала изрядное количество действий в консоли. Используя же ClearOS и данное приложение, данный процесс занимает от силы минут 10 и производится в несколько кликов.
В файлах rpm пакеты для ClearOS устанавливающие в веб консоль приложение описанное выше.
Новое в версии 1.0.2
Добавлена возможность установки утилиты ring, входящей в состав пакета установки сервера, прямо из приложения по нажатию одной кнопки. Напомню, утилита ring используется для просмотра лицензий. Утилита ring требует для своей работы java и установленную переменную среды окружения JAVA_HOME. После установки утилиты ring, если на вашем сервере не установлена java, то веб приложение предложит вам установить Open JDK, а так же само создаст переменную JAVA_HOME.
Новое в версии 1.0.3
Теперь вы можете добавлять и удалять другие сервера 1С в свой локальный кластер. Так же стало доступным редактирование свойств кластера и добавленных в кластер серверов.
Новое в версии 1.0.4
Добавлена возможность добавлять и удалять кластер серверов.