slothfk / 1c_zabbix_template_ce

Шаблон Zabbix для мониторинга кластера серверов 1С Предприятия 8.3
MIT License
155 stars 54 forks source link

Не работает определение лицензий #69

Closed Austrum-lab closed 1 year ago

Austrum-lab commented 3 years ago

Добрый день.

Проблемка следующая - в заббикс прилетает неверная информация о лицензиях - все по нулям.

Debian 10, платформа 8.3.18.1483. Имеется 2 сервера в кластере, первый - основной + рабочий, второй - рабочий + программные лицензии.

В файле /etc/zabbix/scripts/1c_common_module.sh заменен путь поиска rac (т.к. в свежей версии платформы папка в другом месте), более изменений со скриптом не проводилось.

/etc/zabbix/scripts/1c_license_server.sh info выдает: 0:0

/usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k 1c.ls.licenses -o $(/etc/zabbix/scripts/1c_license_server.sh info) выдает: info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000041" sent: 1; skipped: 0; total: 1

slothfk commented 3 years ago

ring установлен?

slothfk commented 3 years ago

В файле /etc/zabbix/scripts/1c_common_module.sh заменен путь поиска rac (т.к. в свежей версии платформы папка в другом месте), более изменений со скриптом не проводилось.

В этом не было необходимости, скрипты совместимы с 18-ой платформой (см. 8360c731b41b013acf3f71cbb17dfe4110a4baf9)

Austrum-lab commented 3 years ago

ring установлен?

Установлен, работает. ring license list отдает номера лицензий и имена файлов, ring license info --name отдает информацию об конкретной лицензии (их 2 - серверная и клиентская на 5 пользователей).

slothfk commented 3 years ago

их 2 - серверная и клиентская на 5 пользователей).

в данном случае учитываются только пользовательские лицензии

Напишите, пожалуйста, код продукта из вывода ring license info по пользовательской лицензии

Austrum-lab commented 3 years ago

в данном случае учитываются только пользовательские лицензии

Это понимаю, указал на всякий случай)

Напишите, пожалуйста, код продукта из вывода ring license info по пользовательской лицензии

0000000000005

Полный вывод (без инфо о пользаке): Информация о продукте: Описание: 1С Предприятие 8. Лицензия на 5 рабочих мест (программная защита) Дата комплектации: XX:XX:XX XX.XX.2020 Регистрационный номер: 8XXXXXXXXX0 Код продукта: 0000000000005 Тип лицензии: Клиентская лицензия Тип привязки лицензии: Компьютер TechnicalInfo: LicenseType: ClientLicense LicenseAssociationType: Computer LicenseGenerationDate: 2020-XX-XXTXX:XX:XX ProductCode: 0000000000005 DistributionKitRegistrationNumber: 8XXXXXXXXX0

slothfk commented 3 years ago

можете прислать вывод $ bash -x /etc/zabbix/scripts/1c_license_server.sh info

Austrum-lab commented 3 years ago

Не обратил внимание сразу, прошу прощения. Так же имеют место некоторые другие ошибки, возможно взаимосвязано. На другом сервере (основной + рабочий) в инфо о доступности баз (базы нашел) следующая ошибка: curl: (3) empty string within braces in URL position 2: {}/BASE/ws/RemoteControl

И нет информации по сеансам - все по нулям. Остальные метрики работают исправно

Austrum-lab commented 3 years ago

можете прислать вывод $ bash -x /etc/zabbix/scripts/1c_license_server.sh info

~$ bash -x /etc/zabbix/scripts/1c_license_server.sh info
++ dirname /etc/zabbix/scripts/1c_license_server.sh
++ sed -r 's/\\/\//g; s/^(.{1}):/\/\1/'
+ export WORK_DIR=/etc/zabbix/scripts
+ WORK_DIR=/etc/zabbix/scripts
+ source /etc/zabbix/scripts/1c_common_module.sh
+ case ${1} in
+ licenses_summary
++ check_ring_license
++ [[ -z '' ]]
++ RING_CONF=/etc/1C/1CE/ring-commands.cfg
++ [[ ! -f /etc/1C/1CE/ring-commands.cfg ]]
+++ grep license-tools /etc/1C/1CE/ring-commands.cfg
+++ sed -r 's/.+file: //; s/\\/\//g; s/^(.{1}):/\/\1/'
++ LIC_TOOL=/opt/1C/1CE/components/1c-enterprise-license-tools-0.14.2+6-x86_64/com._1c.license.activator.ring-0.14.2-6.jar
++ [[ -z /opt/1C/1CE/components/1c-enterprise-license-tools-0.14.2+6-x86_64/com._1c.license.activator.ring-0.14.2-6.jar ]]
++ ls /opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/ring
+ RING_TOOL=/opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/ring
+ export RING_TOOL
+ awk 'BEGIN { files=0; users=0 }
            { files+=1; users+=$1 }
            END { print files":"users }'
++ get_license_list /opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/ring
++ /opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/ring license list --send-statistics false
++ sed -re 's/^([0-9\-]+).*/\1/'
awk: line 2: function gensub never defined
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/lib/compat-0.11/guice-4.2.2.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
+ execute_tasks license_info LICENSE_1_CODE LICENSE_2_CODE
+ [[ 3 -le 1 ]]
+ TASK_CMD=license_info
+ shift
+ export -f license_info
+ echo LICENSE_1_CODE LICENSE_2_CODE
+ xargs '-d ' -n1 -P3 -i bash -c 'license_info ${@}' _ '{}'
awk: line 2: function gensub never defined
awk: line 2: function gensub never defined
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/lib/compat-0.11/guice-4.2.2.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/opt/1C/1CE/components/1c-enterprise-ring-0.19.2+6-x86_64/lib/compat-0.11/guice-4.2.2.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
0:0
slothfk commented 3 years ago

можно еще вывод $ awk -V

slothfk commented 3 years ago

На другом сервере (основной + рабочий) в инфо о доступности баз (базы нашел) следующая ошибка: curl: (3) empty string within braces in URL position 2: {}/BASE/ws/RemoteControl

Об этом знаю, все никак не уберу из паблика ... Функционал недоделан и в паблик попал случайно :(

Austrum-lab commented 3 years ago

можно еще вывод $ awk -V

Судя по man awk стоит пакет mawk Так что:

$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

compiled limits:
max NF             32767
sprintf buffer      2040
Austrum-lab commented 3 years ago

Заменил на gawk Теперь отдает /etc/zabbix/scripts/1c_license_server.sh info 1:5

Austrum-lab commented 3 years ago

В заббикс пришла информация о лицензиях, спасибо за помощь!

Добавьте, пожалуйста, в инструкцию, что для deb 10 требуется заменить mawk на gawk:

sudo apt install gawk
sudo update-alternatives --config awk
Austrum-lab commented 3 years ago

На втором сервере (основной+рабочий) тоже заменил - информация о сеансах подтянулась.

slothfk commented 3 years ago

Добавьте, пожалуйста, в инструкцию, что для deb 10 требуется заменить mawk на gawk:

Раньше была информация в документации о необходимости gawk. Мне казалось, что я везде "вычистил" специфичные для gawk вещи, поэтому из доки убрал

Оказывается не везде :disappointed:

geozavl commented 2 years ago

Добрый день! Аналогичная ситуация и с Ubuntu 20.04. Эта часть скрипта не отрабатывала до замены mawk --> gawk. Добавьте, пожалуйста, known issue в инструкцию по установке! Огромное спасибо за вашу работу!

slothfk commented 1 year ago

В качестве напоминалки: mawk весьма скуден в плане работы с регулярными выражениями, в частности не умеет конструкции вида {n}, {n,n} из-за чего и возникает описываемая проблема

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

slothfk commented 1 year ago

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

Конструкция стала использоваться и в тексте 1c_common_module.sh, посему пока ограничиваемся "заметкой" в инструкции о необходимости замены mawk на gawk!