slothfk / 1c_zabbix_template_ce Goto Github PK
View Code? Open in Web Editor NEWШаблон Zabbix для мониторинга кластера серверов 1С Предприятия 8.3
License: MIT License
Шаблон Zabbix для мониторинга кластера серверов 1С Предприятия 8.3
License: MIT License
Добрый день!
Мы как раз обслуживаем несколько десятков организаций по конфигурации Камин 5.5. И я очень рад что сотрудники компании Камин развивают ПО с открытым кодом. Спасибо Вам!
Я второй день пытаюсь понять что не так с тем что я настроил. Zabbix 5.0 LTS принял шаблоны и получает некоторые данные. Агент установлен на сервере 1С с тремя компонентами в одном. То есть и центральный ,и рабочий, и сервер лицензирования расположены на одной машине.
Последнее что я попробовал, это установить "Утилита Лицензирования 1С:Предприятия (0.15.0+2)" то есть последней версии. Но это не дало результат. Сама платформа 8.3.16.1224 x86_64. ОС Debian 9.
И так, проблема в том что на сервер Zabbix приходят нули о параметрах количества/количества выданных лицензий.
Какие параметры мне стоит еще проверить? Посоветуйте что ни будь, пожалуйста.
Еще раз спасибо Вам за проделанную работу.
Добрый день.
Журнал Zabbix сервера засыпан однотипными уведомлениями об ошибке обработки данных, выгладят записи так:
1. Failed: cannot perform regular expression "IB#9945879a\-a7c2\-49a6\-8d77\-ed3e700237be:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[9e284d43-bb76-4417-b6c4-308487d07c29]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#9e284d43\-bb76\-4417\-b6c4\-308487d07c29:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[a1da0f7d-cc83-48fd-8e79-4c78b01d0625]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#a1da0f7d\-cc83\-48fd\-8e79\-4c78b01d0625:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[a4011ad2-23c5-456c-bcde-e5ada87cffd6]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#a4011ad2\-23c5\-456c\-bcde\-e5ada87cffd6:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[a8c83908-64aa-4cfb-b9e6-6f2638ff1a4d]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#a8c83908\-64aa\-4cfb\-b9e6\-6f2638ff1a4d:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[a947c77c-bcb5-44e7-a0fb-bdefc7f83a73]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#a947c77c\-bcb5\-44e7\-a0fb\-bdefc7f83a73:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[ad74eeb6-6de0-4492-9afb-a487b0f7bc34]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#ad74eeb6\-6de0\-4492\-9afb\-a487b0f7bc34:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[af2fc00a-04f5-4791-b365-1850041ccfac]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#af2fc00a\-04f5\-4791\-b365\-1850041ccfac:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[af594f21-c0e3-4236-96c7-441a87e8ef3c]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#af594f21\-c0e3\-4236\-96c7\-441a87e8ef3c:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[b21a7692-863d-41a4-aba6-8e97b94d8b39]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#b21a7692\-863d\-41a4\-aba6\-8e97b94d8b39:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[b4c9e3f2-f1be-48bd-9829-e4b651125459]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
1. Failed: cannot perform regular expression "IB#b4c9e3f2\-f1be\-48bd\-9829\-e4b651125459:\d+:\d+:\d+:(\d+):\d+" match for value of type "string": pattern does not match
671:20201227:224805.486 error reason for "WebKamin2:1c.cs.sessions.ws[b7f018b9-32c8-43ed-9bfc-881ec3330c6f]" changed: Preprocessing failed for: IB#5d3df917-a2fc-491f-bcad-e45833ffc0ca:1:0:0:0:0:0:0:0:0:0.CL#9d39be30-9453-4439-bb86-f5abf85588...
Google пока о подобных ошибках ничего не знает
В интерфейсе Zabbix проблема выглядит так:
Zabbix Server 5.0 LTS, Zabbix Client 5.0.7
В формулу триггера, проверяющего количество исключений на превышение установленного порога, добавить "понижающий коэффициент" - среднее количество процессов за последний час.
Собирать информацию о сеансах в разрезе информационных баз:
После добавления корп функционала, некорректно срабатывает триггер об использовании всех доступных лицензий при количестве сеансов = 0.
В случае выделенного сервера лицензирования хотелось бы отслеживать ситуацию, когда сервер лицензирования "выпадает" из кластера, что в свою очередь сопровождается уменьшением количества запущенных рабочих процессов, а так же процессов менеджера кластера.
Т.к. шаблон может использоваться не только на выделенном сервере лицензирования, то ориентироваться на количество рабочих процессов не совсем корректно!
Для этого необходимо создание триггера, фиксирующего уменьшение количества процессов, в сравнении со средней величиной за последний час.
Вести подсчет сеансов, находящихся в серверном вызове
Возможно сюда же стоит добавить информацию о самом долгом активном вызове!?
Сделать метод получения списка кластеров в общем модуле, т.к. данный список используется и в скрипте сервера лицензирования, и в скрипте рабочего сервера, а так же будет востребован в скрипте центрального сервера
Если сервер лицензирования введен в состав кластера по полному сетевому имени (с доменной частью), то подсчет выданных лицензий выдает 0
Необходимо более детально описать процедуру установки/использования шаблона!
В частности, уделить внимание специфике применения на платформе Windows
У нас иногда слетают программные лицензии, иногда в тот момент когда это должно случится этого не происходит, но случается позже.
Хотелось бы узнать возможно ли реализовать как то механизм проверки файлов лицензий средствами 1С на их сервере...
Было бы полезно. Как мне видится
Т.к. шаблон стал кросс-платформенным, то логично будет уйти от первоначально выбранной структуры каталогов (linux-ориентированной) к более универсальной:
В зависимости от используемой операционной системы на объекте мониторинга содержимое данных каталогов необходимо будет размещать в соответствующих каталогах сервера
Сделать сценарий ansible, с помощью которого выполнять все необходимые действия для развертывания шаблона на серверах инфраструктуры:
Добавить в шаблоны макросы задающие пользователя и пароль администратора, для работы с rac
В шаблоне содержатся два триггера контроля отключения от кластера с разными формулами!
Должен остаться только один!
"Зависание" приводит к утилизации ЦПУ (system time) порядка 5%
В случае зависания нескольких экземпляров, процент утилизации ЦПУ увеличивается кратно количеству зависших процессов
Зависает скрипт подсчета, как итог в zabbix перестают поступать данные.
Необходимо выяснить и разобраться с причинами зависания!
После изменения структуры шаблона перестали сохраняться проблемные файлы ТЖ в каталог problem_log
Некорректно считается количество процессов и объем памяти:
После изменения структуры шаблона в элементе данных "[1C/Управляемые блокировки] Сводка" стала выдаваться ошибка
find: пути должны быть перед выражением: ;
Использование: find [-H] [-L] [-P] [-Oуровень] [-D help|tree|search|stat|rates|opt|exec] [путь...] [выражение]
Можно ли переделать под Windows или есть что-то похожее под это ОС?
Добрый день.
На выделенном сервере лицензирования возникает следующее сообщение
sed: -e expression #1, char 28: unterminated `s' command
Произошло отключение от кластера (сервер, имя):
Enterprise - Локальный кластер
Помогите разобраться.
Для роли центрального сервера:
Вызов скрипта /etc/cron.hourly/1c.rmngr.license.info.sh от пользователя работает корректно
Выполнение задания cron возвращает 0:0
Возникает ошибка, не найден файл /var/tmp/1C/1c_rmngr_license_.log
В разных версиях утилиты ring license-tool различается формат списка лицензий
Требуется исправление правила формирования данного списка
Виновник проблем на управляемых блокировках может находиться за пределами сохраняемого файла журнала (в файлах журнала предыдущего часа).
Решение: Сохранять дополнительно файлы предыдущего часа?
проблема с добавлением шаблона к хосту.
ошибка: Шаблон не может быть соединен с другим шаблоном несколько раз, даже через другие шаблоны.
Не завершается выполнение скрипта в случае отсутствия необходимых утилит
Сообщение об ошибке выводится, но завершение выполнения не происходит!
Причина в способе использования метода check_ring_license (в частности, в скрипте 1c_license_server.sh)
Требуется корректировка!
можете подсказать почему не отображается кол-во лицензий который запрашивается 1c.ls.license.user просто пустая строка в последних данных и соответственно в тригере ошибка:
Cannot evaluate expression: "Cannot evaluate function "server:1c.ls.license.user.last()": not enough data.".
Сделать универсальный метод, сохраняющий нужные журналы (по блокировкам, по исключениям и т.п.)
/etc/cron.hourly/1c_ls_license_info.sh:
/etc/zabbix/scripts/1c_license_server.sh: line 34: LICENSE_CODE: неправильный индекс массива
Есть предположение, что связано с ошибкой ring
Не записывать в файл кэша информацию по кластеру, если не удалось получить UUID от сервера RAS
Описать настройку агента заббикс для корректной работы механизма сохранения файлов проблемного ТЖ в многосерверном кластере
В случае, когда указано не одно пространство блокировок (свойство Region события Lock), в информации по блокировкам (в случае таймаутов или ожидания) отображается только первое
Если имя кластера содержит пробел, то возникают ошибки при обращении к RAS, а так же некорректно формируется список сеансов
Для большей универсальности в работе с временными файлами перейти к использованию переменной окружения TMPDIR
Скрипты сервера лицензирования и центрального сервера при получении данных по сеансам возвращают строки
grep: -P supports only unibyte and UTF-8 locales
В случае, когда требуется сохранение файлов по нескольким серверам, zabbix-сервер не всегда дожидается ответа от агента. Можно увеличивать таймаут в конфиге заббикс, но это не самый лучший выход, ИМХО!
Требуется оптимизация работы!
Возникает ситуация когда счетчики удваиваются в некотором "замере" (получается пик), в следующем замере ситуация нормализуется.
Необходимо разобраться в возможных причинах!
Дабы избавиться в скриптах от переменной ${G_BINDIR}
Т.к. структура шаблона претерпела изменения, необходимо провести актуализацию статей на Инфостарт!
Текущий вариант реализации сохраняет файлы ТЖ только на том сервере, где "зафиксирована" проблема. Однако, данных файлов может быть недостаточно для расследования, т.к. виновник проблемы может оказаться на другом сервере, где файлы журнала сохранены не были!
Необходимо сохранять файлы журналов на всех серверах кластера!
Возникает ошибка в результатах
awk: cmd. line:14: (FILENAME=- FNR=643) fatal: division by zero attempted
если в файл ТЖ попадает строка "не того" формата
Нужен фильтр строк по предполагаемому формату (заданным параметрам)
Показание [1С/Центральный сервер] Статус сервиса RAS всегда Down, хотя сервис запущен. В списке портов слушает.
[root@web1c ~]# netstat -nl | grep 1545
tcp 0 0 0.0.0.0:1545 0.0.0.0:* LISTEN
[root@web1c ~]# systemctl status ras
● ras.service - 1C:Enterprise Remote Administration Service
Loaded: loaded (/etc/systemd/system/ras.service; enabled; vendor preset: disabled)
Active: active (running) since Чт 2020-06-11 10:02:37 EET; 10h ago
Main PID: 5455 (ras)
CGroup: /system.slice/ras.service
└─5455 /opt/1C/v8.3/i386/ras cluster --port=1545
июн 11 10:02:37 web1c systemd[1]: Started 1C:Enterprise Remote Administration Service.
июн 11 10:02:38 web1c ras[5455]: 1C:Enterprise 8.3 (8.3.16.1148) Remote Administration Server started...exit.
Hint: Some lines were ellipsized, use -l to show in full.
Как проверить что ему не хватает?
Сейчас реализовано через контроль количества процессов rmngr, собираемого в шаблоне рабочего сервера (из-за чего шаблон сервера лицензирования стал потомком шаблона рабочего сервера)
Требуется изменить схему контроля, вернув шаблону сервера лицензирования независимость от шаблона рабочего сервера!
Вместе с тем хотелось бы получать информацию от какого именно кластера произошло отключение!
Вынести данный параметр в макрос шаблона рабочего сервера
Скорректировать все элементы данных, где используется вызов RAS
Собирать информацию о доступной производительности рабочих процессов
Не смотря на возможность мониторить ресурсы "железа" и на их основании делать выводы о том, как нагружены сервера, интересно наблюдать за оценкой производительности, выполняемой на стороне сервера 1С
Вопрос, как представить данную информацию в имеющейся архитектуре шаблона? Т.е. стоит ли собирать ее на стороне центрального сервера, или каждый рабочий сервер кластера будет получать информацию из RAS по своим процессам? К каким накладным расходам это будет приводить в случае, когда рабочий сервер входит в состав нескольких кластеров (например, сервер лицензирования)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.