lazarenkoa / prometheus_1c_exporter Goto Github PK
View Code? Open in Web Editor NEWМониторинг кластера 1С, отправка данных в prometheus
License: Mozilla Public License 2.0
Мониторинг кластера 1С, отправка данных в prometheus
License: Mozilla Public License 2.0
Возможна ли реализация подключения exporter'a к нескольким RAS для одновременного сбора метрик с нескольких кластеров?
После совсем непродолжительной работы, процесс экспортера завершается ошибкой
Используется последний релиз
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x751899]
goroutine 36 [running]:
github.com/LazarenkoA/LogrusRotate.(*watcher).Cancel(0x0)
/home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:99 +0x19
github.com/LazarenkoA/LogrusRotate.(*Rotate).DeleteEmptyFile(0xc00021a810, 0xc0002149c8)
/home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:287 +0x47a
github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2.1({0xc000028aa0, 0x20}, {0xa3c770, 0xc0003a8d00}, {0x100?, 0xffffffffffffff9c?})
/home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:219 +0xa5
path/filepath.walk({0xc000028aa0, 0x20}, {0xa3c770, 0xc0003a8d00}, 0xc000105fb0)
/opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:438 +0xba
path/filepath.walk({0xc000249278, 0x15}, {0xa3c770, 0xc0003a8a90}, 0xc000105fb0)
/opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:458 +0x285
path/filepath.Walk({0xc000249278, 0x15}, 0xc000105fb0)
/opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:521 +0x6c
github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2()
/home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:208 +0xba
created by github.com/LazarenkoA/LogrusRotate.(*Rotate).Start
/home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:206 +0x445
Было бы удобно, если можно было ставить все метрики на паузу со словом "all"
Сам сервер и база находятся в докере, при старте экспортера получаю в статусе такое:
`1c_exporter.service - Prometheus 1C exporter
Loaded: loaded (/etc/systemd/system/1c_exporter.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2023-11-10 05:53:16 UTC; 7min ago
Process: 2140480 ExecStart=/usr/local/bin/1c_exporter --settings=/opt/1cexporter/settings.yaml (code=exited, status=2)
Main PID: 2140480 (code=exited, status=2)
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerConnects).StartExplore.func1(0xc0002961c0, {0xc0000c0270, 0x14})
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/Connects.go:68 +0x103
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerConnects).StartExplore(0xc0002961c0)
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/Connects.go:86 +0x2c7
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*BaseExplorer).Start(0xc0002961c0, {0x7f588c69aa10, 0xc0002961c0})
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/BaseExplorer.go:158 +0x135
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: created by main.main.func1
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/main.go:66 +0x139
Nov 10 05:53:16 1c-server-stage-ams3 systemd[1]: 1c_exporter.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Nov 10 05:53:16 1c-server-stage-ams3 systemd[1]: 1c_exporter.service: Failed with result 'exit-code'.`
Настройки:
`Explorers:
#[
#]
#DBCredentials: # Не обязательный параметр
#RAC:
#Path: "C:\Program Files\1cv8\8.3.21.1644\bin\rac.exe"
#Port: "1545" # Не обязательный параметр
#Host: "localhost" # Не обязательный параметр
#Login: "" # Не обязательный параметр
#Pass: "" # Не обязательный параметр
LogDir: "/var/log/1cexporter/"
LogLevel: 5`
Systemd Unit:
`[Unit]
Description=Prometheus 1C exporter
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/1c_exporter --settings=/opt/1cexporter/settings.yaml
ExecReload=/bin/kill -s HUP $MAINPID
[Install]
WantedBy=multi-user.target`
Подумал я, что не комильфо чтобы экспортер работал из под рута.
Сделал запуск службы от пользователя одинэсс.
[Service]
Type=simple
User=usr1cv8
Group=grp1cv8
С версией 8.3.20.1838 всё работало более менее, изредка возникали таймауты.
С версией 8.3.23.1688 получил что около 90% запусков rac завершаются по таймауту.
Настройки "частоты" как в примере
При запуске службы экспортера от рута таймауты отсутствуют.
Предположу, что это может быть связано с какими-нибудь ограничениями для простых пользвателей (может быть на частый запуск процессов или чем-нибудь похожим).
OS Debian 11.7.
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:05+05:
00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:05+05:00"}
{"Name":"Connect","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 connection list --cluster=]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:20+05:00"}
{"Name":"Session","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --cluster=]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:20+05:00"}
{"Name":"SessionsData","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --cluster=]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:20+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"Произошла ошибка","time":"2023-06-29T10:24:35+05:00"}
{"Name":"ClientLic","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --licenses --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
июн 26 22:03:22 srv1c systemd[1]: Started Prometheus 1C exporter.
июн 26 22:03:22 srv1c 1c_exporter[3582990]: port : 9091
июн 27 22:00:22 srv1c 1c_exporter[3582990]: panic: runtime error: invalid memory address or nil pointer dereference
июн 27 22:00:22 srv1c 1c_exporter[3582990]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x751899]
июн 27 22:00:22 srv1c 1c_exporter[3582990]: goroutine 38 [running]:
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*watcher).Cancel(0x0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:99 +0x19
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*Rotate).DeleteEmptyFile(0xc0001e4bd0, 0xc000012120)
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:287 +0x47a
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2.1({0xc00012c2e0, 0x1f}, {0xa3c770, 0xc000113a00}, {0x100?, 0xffffffffffffff9c?})
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:219 +0xa5
июн 27 22:00:22 srv1c 1c_exporter[3582990]: path/filepath.walk({0xc00012c2e0, 0x1f}, {0xa3c770, 0xc000113a00}, 0xc000229fb0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:438 +0xba
июн 27 22:00:22 srv1c 1c_exporter[3582990]: path/filepath.walk({0xc00013e3c0, 0x14}, {0xa3c770, 0xc00030c1a0}, 0xc000229fb0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:458 +0x285
июн 27 22:00:22 srv1c 1c_exporter[3582990]: path/filepath.Walk({0xc00013e3c0, 0x14}, 0xc0015affb0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:521 +0x6c
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2()
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:208 +0xba
июн 27 22:00:22 srv1c 1c_exporter[3582990]: created by github.com/LazarenkoA/LogrusRotate.(*Rotate).Start
июн 27 22:00:22 srv1c 1c_exporter[3582990]: /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:206 +0x445
июн 27 22:00:22 srv1c systemd[1]: 1c_exporter.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
июн 27 22:00:22 srv1c systemd[1]: 1c_exporter.service: Failed with result 'exit-code'.
июн 27 22:00:22 srv1c systemd[1]: 1c_exporter.service: Consumed 23h 21min 51.635s CPU time.
Возможно это связано с тем, что днем (июн 27) служба сервера 1с сожрала всю память сервера и её прибил OOM-killer.
В качестве костыля добавил с Unit сервиса рестарт
Restart=always
RestartSec=30s
Что бы отслеживать нагрузку - на каждый кластер и процесс хотелось бы видеть отдельные метрики
Так как в кластере могут работать несколько рабочих процессов с различной моделью нагрузки - среднее значение не отображает полноценную картину.
Так же на одном хосте могут работать разные кластера - с различной моделью нагрузки.
Возможно ли это? Чтобы каждый раз не перезапускать экспортер и не менять конфиг.
Доброго времени.
Предлагаю в репо добавить рабочий конфиг Grafana для более правильного старта проекта
Добрый день!
Обнаружил также проблему с подключением к кластеру после запуска из релизного exe. Потом увидел сообщение о этой проблеме. Хотя обращение и закрыто, но в исходниках ошибка осталась, отсутствует блок добавления пароля и логина в строку параметров
Но я не опытный специалист по GIT и Go, поэтому могу ошибаться.
У себя запустил вставив недостающие блоки посмотрев изменения в одном из релизов. Все работает!
Спасибо!
{"L":"ERROR","T":"2024-02-13T11:56:46.044+0300","N":"base","M":"ОС windows не поддерживается"}
{"L":"ERROR","T":"2024-02-13T11:56:56.046+0300","N":"base","M":"ОС windows не поддерживается"}
{"L":"ERROR","T":"2024-02-13T11:56:56.811+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:56:56.811+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:56:57.533+0300","N":"SessionsData","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:56:58.938+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:56:58.938+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:56:59.751+0300","N":"AvailablePerformance","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 process list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:56:59.751+0300","N":"AvailablePerformance","M":"Произошла ошибка: Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 process list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:06.045+0300","N":"base","M":"ОС windows не поддерживается"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.791+0300","N":"Session","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.797+0300","N":"ClientLic","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --licenses --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.799+0300","N":"Connect","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 connection list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:12.546+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:12.546+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:13.426+0300","N":"SessionsData","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
Мониторинг это очень хорошо, но так же необходима система оповещений.
У prometheus есть система оповещений: alertmanager.
Именно она используется или что-то другое?
sc create "1c_exporter" ""C:\1c_exporter\prometheus_1C_exporter.exe" --settings=settings.yaml"
(гитхаб съел экранированные при помощи слэша кавычки)
При запуске службы пишет:
"Ошибка 1053: Сервис не ответил на запрос своевременно"
При этом если запускать просто из под консоли, не в виде службы, то работает нормально.
Правильно "уведомить" переводится как notify
Релиз 1.4.6
Два рабочих сервера, что то пошло не по плану?))
AvailablePerformance{host="dsds",type="available",quantile="0.5"} NaN
AvailablePerformance{host="dsds",type="available",quantile="0.9"} NaN
AvailablePerformance{host="dsds",type="available",quantile="0.99"} NaN
AvailablePerformance_sum{host="dsds",type="available"} NaN
AvailablePerformance_count{host="dsds",type="available"} 1
Я могу ошибаться, но у меня сложилось впечатление, что экспортер пытается узнать список баз кластера только один раз запуске.
То есть если в запуске экспортера rac завершился по таймауту, то в SessionsData база будет незаполненной.
Были случаи, что несколько часов экспортер не заполняет базу и лечится это только рестартом экспортера.
SessionsData{appid="BackgroundJob",base="",datatype="deadtime",host="1c-crm",id="19291",servicename="",startedat="2023-06-29 08:23:17",user="DefUser",quantile="0.5"} 2.8004101
Лог
{"level":"info","msg":"Сбор метрик:AvailablePerformance,Session,Connect,SessionsData,ClientLic","time":"2023-06-29T08:08:15+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T08:08:30+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T08:08:30+05:00"}
{"Name":"Connect","error":"Произошла ошибка запуска:\n\terr:exit status 255\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=]\n\tStdErr:Ошибка разбора параметра: cluster\n\n","level":"error","msg":"Ошибка получения списка баз","time":"2023-06-29T08:08:44+05:00"}
{"Name":"Connect","error":"Произошла ошибка запуска:\n\terr:exit status 255\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=]\n\tStdErr:Ошибка разбора параметра: cluster\n\n","level":"warning","msg":"Не удалось получить список баз","time":"2023-06-29T08:08:44+05:00"}
{"Name":"SessionsData","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"Ошибка получения списка баз","time":"2023-06-29T08:08:45+05:00"}
{"Name":"SessionsData","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"warning","msg":"Не удалось получить список баз","time":"2023-06-29T08:08:45+05:00"}
{"Name":"ClientLic","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --licenses --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:08:45+05:00"}
{"Name":"Session","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:09:00+05:00"}
{"Name":"Connect","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 connection list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:09:29+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:10:26+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"Произошла ошибка","time":"2023-06-29T08:10:26+05:00"}
файл настроек:
Explorers:
RAC:
Path: "C:\Program Files\1cv8\8.3.22.1923\bin\rac.exe"
Port: "1545" # Не обязательный параметр
Host: "localhost" # Не обязательный параметр
Login: "" # Не обязательный параметр
Pass: "" # Не обязательный параметр
LogDir: # Если на задан логи будут писаться в каталог с исполняемым файлом
LogLevel: 5 # Уровень логирования от 2 до 6, где 2 - ошибка, 3 - предупреждение, 4 - информация, 5 - дебаг, 6 - трейс
TimeRotate: 1 # Время в часах через которое будет создаваться новый файл логов
TTLLogs: 8 # Время жизни логов в часах
///////////ошибка запуска
C:\Program Files\1c_exporter>1c_exporter.exe --settings=C:\Program Files\1c_exporter\settings.yaml
panic: Файл настроек "C:\Program" не найден
goroutine 1 [running]:
main.loadSettings(0xc00001a36b, 0xa, 0x2)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/settings.go:75 +0x3cc
main.main()
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/main.go:49 +0x29b
После запуска экспортера в качестве службы на Linux-сервере, он постоянно загружает 1 ядро процессора на 100%
32356 usr1cv8 20 0 715168 19156 8776 S 100,0 0,1 1:55.78 1c_exporter
Вроде бы такого быть не должно.
Добрый день, в метрике host подставляется значение "имя сервера", а не хоста на котором запущенна сессия.
Подскажите так и задумано?
SessionsData{appid="1CV8C",base="base",datatype="memorytotal",host="1csrv",id="46",servicename="",startedat="2024-02-08 13:29:00",user="user",quantile="0.5"} 5.255222024e+09
При этом в логе host указывается верно
{"L":"DEBUG","T":"2024-02-15T09:20:57.636+0300","N":"Session","M":"Парс результата","strIn":"\nsession : a63cd205-4afd-44ef-be34-aa1a902fc245\nsession-id 132270\ncnuser-name: user\nhost: srv-terminal\napp-id: 1CV8C
Начали тестировать мониторинг 1С средствами связки prometheus_1C_exporter + Prometheus + Grafana и столкнулись с бесконечным потреблением ОЗУ браузером (Chrome, Firefox) при использовании Time series графиков в Grafana по периоду "Last 6 hours" и обновлением данных раз в 30 секунд (или 5 минут).
Память растет на глазах и в скором времени браузер отваливается по ошибке "Out of Memory".
Как Вы решаете эту проблему?
З.Ы. У нас Prometheus 2.35.0-rc0.windows-amd65 + Grafana 8.4.7. Использовали как Chrome, так и Firefox.
Установил службу Windows через install.bat, но при попытке запуска сразу завершается.
Логи даже не успевают записаться.
Из журнала Windows:
Добрый день, удалось все запустить, но не получается параметр SheduleJob.
В настроечном файле указан какой то json который требуется для получения этого параметра, но как правильно его использовать?
#[
#]
Имя базы и логин/пароль заполняю, комменты снимаю, но ругается на синтаксис. Есть пример правильного использования этого http сервиса?
Добрый день
До этого работал на Windows. Все отлично. Установил последний релиз (1.4.10) на Linux (Oracle Linux Server release 8.4)
В settings.yaml заполнил поля
Login: "1cadmin" # Не обязательный параметр
Pass: "12345" # Не обязательный параметр
В логах нет параметров -cluster-user=1cadmin --cluster-pwd=12345
{"Name":"SessionsData","error":"Произошла ошибка запуска:\n\terr:exit status 255\n\tПараметры: [/opt/1cv8/x86_64/8.3.20.1710/rac kronos-nsk-1c-app-el-01:1545 session list --cluster=a9fc75d6-b050-4727-ae98-07c6211743a3]\n\tStdErr:Ошибка операции администрирования\nАдминистратор кластера не аутентифицирован\n\n","
Воспользовался Вашим экспортером в связи с необходимостью оперативного мониторинга сервера 1С:
А нельзя ли привести или выложить используемые вами Дашборды для графаны, чтобы без особого погружения взять их за шаблон и перенастроить под себя ?
Добрый день!
Подскажите, есть ли возможность указания в конфигурационном файле, что необходимо собирать метрики со всех кластеров на одном сервере.
На текущий момент, на сколько я смог разобраться, метрики собираются только с одного кластера, даже при наличии нескольких.
Спасибо!
Добрый день!
Столкнулись с проблемой при запуске. Примечательно, что проблема возникла на одном сервере, когда отсутствует на другом тестовом сервере, то есть ошибка может зависеть от настройки окружения.
Можете прокомментировать?
Спасибо!
//Алексей
1C_exporter.exe -port=9095 --settings=c:\TOOLS\Prometheus\1cExporter\settings.yaml
port : 9095
panic: label value "s\x94" is not valid UTF-8
goroutine 58 [running]:
github.com/prometheus/client_golang/prometheus.(*SummaryVec).WithLabelValues(0xc00018a190, 0xc0004faf00, 0x8, 0x8, 0xc000555f18, 0xc000384400)
/home/runner/go/pkg/mod/github.com/prometheus/[email protected]/prometheus/summary.go:610 +0xe6
github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerSessionsMemory).StartExplore.func1(0xc0002362a0, 0xc000018508, 0x4)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/SessionsData.go:73 +0x2013
github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerSessionsMemory).StartExplore(0xc0002362a0)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/SessionsData.go:97 +0x4ab
github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*BaseExplorer).Start(0xc0002362a0, 0x11c4380, 0xc0002362a0)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/BaseExplorer.go:178 +0x9e
created by main.main.func1
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/main.go:62 +0xfa
Нужно в случае если используется порт не дефолтеный
Смотрим исходные коды мастера и не находим изменений, связанных с "параметры rac --cluster-user и --cluster-pwd" - эти строки просто отсутствуют.
Смотрим другую ветку и видим там все необходимые изменения.
Поэтому последний релиз (exe) не принимает параметры Login и Pass и не использует их. Авторизация администратора кластера не проходит.
Просьба поправить и пересобрать снова релиз. Спасибо, автор!
Запустилось только после отключения SheduleJob
CPU,Procdata,disk
- отключены намеренно
Explorers:
- Name: ClientLic
Property:
timerNotyfy: 60
- Name: AvailablePerformance
Property:
timerNotyfy: 10
# - Name: CPU
# Property:
# timerNotyfy: 10
# - Name: SheduleJob
# Property:
# timerNotyfy: 10
- Name: Session
Property:
timerNotyfy: 60
- Name: Connect
Property:
timerNotyfy: 60
- Name: SessionsData
Property:
timerNotyfy: 10
# - Name: ProcData
# Property:
# processes:
# - rphost
# - ragent
# - rmngr
# timerNotyfy: 10
# - Name: disk
# Property:
# timerNotyfy: 10
Prometheus использует модель pull запросов для получения показателей. Такой подход удобен, если prometheus и наблюдаемый сервер находятся "рядом", но при необходимости сбора показателей на "удаленных" серверах гораздо удобнее и безопаснее использовать модель push запросов.
Планируется или может быть есть уже такой функционал?
Для подобных push сообщений для мониторинга ОС использую приложение telegraf и экспортирование в формате graphite, а на стороне prometheus - graphite-exporter.
Добрый день.
Думаю что не я один такой)
Прошу подсказать как правильно настроить ваш экспортер на windows 2012 сервере.
Что сделал:
больше не правил никаких параметров (возможно нужно что-то еще)
Пытаюсь запустить экспортера командой 1с_exporter.exe -port=9095 --settings=C:\prometheus_1c_exporter\settings.yaml
И получаю след. ошибку
Есть готовые экспортеры для unix и windows систем.
Можно было бы подготовить настройки и использовать готовый функционал, а разработку сосредоточить только на данных сервера 1С?
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.