1C Enterprise
Description
К шаблону прилагается набор скриптов для осуществления сбора метрик.
Скрипты (кроме mr_parse_1c_log.py) берут данные из админ-консоли 1С (rac.exe), скрипт mr_parse_1c_log.py берет данные из лог-файла, в который пишутся тяжелые запросы из ТЖ (технологического журнала 1С).
Для работы с шаблоном необходимо произвести следующие подготовительные действия на стороне сервера 1C:
- Убедиться, что rac.exe доступен и путь к нему совпадает. RAC_PATH = r"C:\Program Files\1cv8\8.3.21.1302\bin\rac.exe" - если что путь сменить в скриптах.
- Доступ к кластеру 1С для rac. Скрипты не передают логин/пароль в rac — значит, пользователь, под которым они запускаются, должен иметь права администратора кластера (Windows-аутентификация) либо кластер должен разрешать доступ без явной аутентификации.
- RAS (обычно порт 1545) и Агент (обычно 1540) должны быть доступны с хоста, где запускаются скрипты если скрипты запускаются не на сервера 1С. В нашем случае на тестовом стенде скрипты лежат на сервере 1С. Но если вдруг, то надо иметь ввиду.
Для скрипта mr_parse_1c_log.py:
- Включить технологический журнал и направить его туда, где ищет парсер. В скрипте это путь C:\1C\Log\Query1с_1 - если отличается, сменить
Macros used
| Name | Value |
|---|---|
| {$SESSION_LIMIT} | 2000 |
Items collected
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Total queries | - | - | 5m | 1cEnt.parse.log[meta] |
Discovery rule №1
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Clusters | - | ZABBIX_ACTIVE | 2m | 1cEnt.clusters |
Item prototypes
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Средняя производительность {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.processes.avgperformance[{#CLUSTER}] |
| Неактивных рабочих процессов на {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.processes.rphost_inactive[{#CLUSTER}] |
| Data Collect: Процессы на {#CLUSTER_NAME} | - | ZABBIX_ACTIVE | 2m | 1cEnt.processes[{#CLUSTER}] |
Trigger prototypes
| Name | Description | Expression | Priority | Dependencies |
|---|---|---|---|---|
| Производительность меньше 60 на {#CLUSTER_NAME} | - | max(/1C Enterprise/1cEnt.processes.avgperformance[{#CLUSTER}],3m)<60 | HIGH ⛔ | Средняя производительность {#CLUSTER_NAME} |
| Неактивных рабочих процессов на {#CLUSTER_NAME} больше 0 | - | min(/1C Enterprise/1cEnt.processes.rphost_inactive[{#CLUSTER}],5m)>0 | HIGH ⛔ | Неактивных рабочих процессов на {#CLUSTER_NAME} |
Discovery rule №2
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Infobases | - | ZABBIX_ACTIVE | 2m | 1cEnt.infobases |
Item prototypes
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Фоновых заданий на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.bjobs[{#INFOBASE}, {#CLUSTER}] |
| Заблокировано объектов СУБД на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.blocked-by-dbms[{#INFOBASE}, {#CLUSTER}] |
| Байт на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.bytes-all[{#INFOBASE}, {#CLUSTER}] |
| COM соединений на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.comconn[{#INFOBASE}, {#CLUSTER}] |
| Время блокировки на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.db-proc-took[{#INFOBASE}, {#CLUSTER}] |
| Конфигураторов на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.designers[{#INFOBASE}, {#CLUSTER}] |
| Толстых клиентов на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.thickClient[{#INFOBASE}, {#CLUSTER}] |
| Тонких клиентов на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.thinClient[{#INFOBASE}, {#CLUSTER}] |
| Data Collect: Всего сессий на {#NAME}, {#CLUSTER_NAME} | - | CALCULATED | 5m | 1cEnt.sessions.totalSessions[{#INFOBASE}, {#CLUSTER}] |
| Web клиентов на {#NAME}, {#CLUSTER_NAME} | - | DEPENDENT | 0 | 1cEnt.sessions.webclients[{#INFOBASE}, {#CLUSTER}] |
| Data Collect: Сессий на {#NAME}, {#CLUSTER_NAME} | - | ZABBIX_ACTIVE | 5m | 1cEnt.sessions[{#INFOBASE},{#CLUSTER}] |
Trigger prototypes
| Name | Description | Expression | Priority | Dependencies |
|---|---|---|---|---|
| Кол-во сеансов больше {$SESSION_LIMIT} на {#NAME} | - | min(/1C Enterprise/1cEnt.sessions.totalSessions[{#INFOBASE}, {#CLUSTER}],3m)>{$SESSION_LIMIT} | AVERAGE ⚠ | Data Collect: Всего сессий на {#NAME}, {#CLUSTER_NAME} |
Discovery rule №3
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Process log 1C | - | - | 5m | 1cEnt.parse.log |
Item prototypes
| Name | Description | Type | Interval | Key and additional info |
|---|---|---|---|---|
| Query {#NUMBER} Computer Name | - | DEPENDENT | 0 | 1cEnt.computer.name[{#NUMBER}] |
| Query {#NUMBER} DB Name | - | DEPENDENT | 0 | 1cEnt.db.name[{#NUMBER}] |
| Data collect: Heavy query {#NUMBER} Duration | - | DEPENDENT | 0 | 1cEnt.duration[{#NUMBER}] |
| Query {#NUMBER} End | - | DEPENDENT | 0 | 1cEnt.end[{#NUMBER}] |
| Data collect: Heavy query {#NUMBER} | - | - | 5m | 1cEnt.parse.log[{#NUMBER}] |
| Query {#NUMBER} SQL | - | DEPENDENT | 0 | 1cEnt.sql[{#NUMBER}] |
| Query {#NUMBER} Start | - | DEPENDENT | 0 | 1cEnt.start[{#NUMBER}] |
| User of query {#NUMBER} | - | DEPENDENT | 0 | 1cEnt.user[{#NUMBER}] |