Проект для мониторинга состояния соединений серверов "1С: Предприятия".
Собираются данные о количестве соединений в разбивке по видам: тонкий клиент, толстый клиент и т.д., число заблокированных объектов, время блокировки и объем данных.
Для каждой базы создается отдельный график.
Для получения информации используются консольная утилита RAC (клиент).
Для обнаружения баз используется LLD Zabbix, используемые версии Zabbix 3.4 - 5.2, ниже не получится, используются зависимые элементы данных.
Добавлена возможность работы с несколькоми кластерами 1С на наблюдаемом сервере. Для информационных баз указывается в каком кластере они живут.
Шаблон для Zabbix 4.2-5.2: 1c-zabbix.xml
3.4 версию Zabbix более не использую, шаблона для нее у меня нет. Можно попробовать переделать xml под 3.4, но думаю проще обновиться.
1. Установить службу RAS
Для установки сервера RAS в качестве службы используется команда:
sc create "1C:Enterprise RAS" binpath= "C:\Program Files\1cv8\8.Х.Х.ХХХХ\bin\ras.exe cluster --service" displayname= "1C:Enterprise RAS" start= auto
Для запуска - команда:
net start "1C:Enterprise RAS"
2. Указать системе путь к RAC
В системную переменную PATH необходимо добавить путь где находится исполняемый файл rac.exe:
c:\Program Files\1cv8\8.X.XX.XXXX\bin\
Правой кнопкой на Этот компьютер - Свойства - Дополнительные параметры системы (справа) - Переменные среды - раздел Системные переменные - выбрать переменную Path, изменить, откроется окно Изменение системной перемнной - в поле значение перемнной добавить в конец путь вида c:\Program Files\1cv8\8.X.XX.XXXX\bin\
, т.е. путь где лежит используемая платформа.
При использовании 32-х разрядной платформы путь будет вида:
c:\Program Files (x86)\1cv8\8.X.XX.XXXX\bin\
Требуется перезагрузка системы после правок PATH!
3. Установить Python
Python можно установить с сайта https://www.python.org, проверьте что бы путь установки соответствовал пути прописанному в файле 1c_zabbix.conf
. Ожидается что интерпретатор будет находится по следующему пути:
c:\Program Files\Python37\python.exe
4. Установить скрипты и конфигурацию Zabbix
На сервер с установленным RAC и Zabbix agent необходимо положить файлы *.py
из каталога scripts
и файл конфигурации 1c_zabbix.conf
.
Если в кластере используется администратор кластера, то в 1c_zabbix.conf
следует раскомментировать строки с указанием пользователя и пароля. (При использовании нескольких кластеров, соответственно, этот пользователь должен существовать во всех кластерах).
ib_list.py
- скрипт возвращающий список баз с указанием uuid кластера
sess_list.py
- скрипт возвращает кол-во сессий на присланный uuid базы и uuid кластера
Настройки каталогов:
- zabbix agent -
c:\zabbix
- python -
c:\Program Files\Python37\python.exe
1. Установить службу RAS
Для дистрибутивов на основе systemd
(Debian/Ubuntu, RHEL/CentOS, SLES/OpenSUSE) добавить файл ras.service
в /etc/systemd/system/
:
[Unit]
Description=RAS
After=syslog.target
After=network.target
[Service]
Type=simple
User=usr1cv8
Group=grp1cv8
ExecStart=/opt/1C/v8.3/x86_64/ras cluster
KillMode=process
[Install]
WantedBy=multi-user.target
Выполнить команды:
systemctl daemon-reload
systemctl enable --now ras
2. Указать системе путь к RAC
Сделать ссылку:
ln -s /opt/1C/v8.3/x86_64/rac /usr/local/bin/
3. Установить Python
Python на Linux обычно уже есть. Если все же нет - установить python3.
Для Debian/Ubuntu:
apt install python3
Для RHEL/CentOS:
yum install python3
4. Установить скрипты и конфигурацию Zabbix
На сервер с установленным RAC и Zabbix agent необходимо положить файлы *.py
из каталога scripts и файл конфигурации 1c_zabbix_linux.conf
.
Если в кластере используется администратор кластера, то в 1c_zabbix.conf
следует раскомментировать строки с указанием пользователя и пароля. (При использовании нескольких кластеров, соответственно, этот пользователь должен существовать во всех кластерах).
ib_list.py
- скрипт возвращающий список баз с указанием uuid кластера
sess_list.py
- скрипт возвращает кол-во сессий на присланный uuid базы и uuid кластера
Настройки каталогов:
- zabbix agent -
/etc/zabbix/
При обнаружении ошибок, возникающих вопросах, необходимости добавления новых данных в мониторинг - создайте issue.