/zabbix-1c

Monitoring session 1C Enterprise using Zabbix

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Мониторинг соединений к базам 1С Предприятия средствами Zabbix

Для чего оно нужно?

Проект для мониторинга состояния соединений серверов "1С: Предприятия".
Собираются данные о количестве соединений в разбивке по видам: тонкий клиент, толстый клиент и т.д., число заблокированных объектов, время блокировки и объем данных.
Для каждой базы создается отдельный график.

Для получения информации используются консольная утилита RAC (клиент).

Для обнаружения баз используется LLD Zabbix, используемые версии Zabbix 3.4 - 5.2, ниже не получится, используются зависимые элементы данных.

Добавлена возможность работы с несколькоми кластерами 1С на наблюдаемом сервере. Для информационных баз указывается в каком кластере они живут.

Установка на сервере Zabbix

Шаблон для Zabbix 4.2-5.2: 1c-zabbix.xml
3.4 версию Zabbix более не использую, шаблона для нее у меня нет. Можно попробовать переделать xml под 3.4, но думаю проще обновиться.

Установка под Windows:

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

Установка под Linux

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.