LazarenkoA / prometheus_1C_exporter

Мониторинг кластера 1С, отправка данных в prometheus
Mozilla Public License 2.0
130 stars 35 forks source link

SheduleJob - Проверка галки "блокировка регламентных заданий" #25

Closed Butuff closed 11 months ago

Butuff commented 1 year ago

Добрый день, удалось все запустить, но не получается параметр SheduleJob. В настроечном файле указан какой то json который требуется для получения этого параметра, но как правильно его использовать?

http сервис который возвращает массив json с кредами к БД

нужно для метрики SheduleJob

пример json:

[

{

"Name": "hrmcorp-n17",

"UserName": "",

"UserPass": ""

}

]

Имя базы и логин/пароль заполняю, комменты снимаю, но ругается на синтаксис. Есть пример правильного использования этого http сервиса?

LazarenkoA commented 1 year ago

т.к. для данной метрики нужны логин и пароль от базы, эспортер получает их их http сервиса, который разработчик поддерживающий базы 1С может реализовать на 1С. Сервис должен возвращать ответ в виде json (пример приведен). Если вам данная метрика не нужна, можете убрать ее из настройки

Butuff commented 1 year ago

Метрика нужна, т.е. надо сначала реализовать http сервис на стороне 1С чтобы он возвращал состояние блокировки регламентных заданий? А какая верная конструкция будет в файле настроек чтобы обратиться к сервису? и сервис должен вернуть 1 или 0, этого достаточно?

LazarenkoA commented 1 year ago

сервис должен вернуть логин/пароль к базе, в примере конфига же написано https://github.com/LazarenkoA/prometheus_1C_exporter/blob/9f087b4478d2edaf97b8607fcc28f881a180b301/examples_settings.yaml#L47

Butuff commented 1 year ago

А к базе в примере экспортер обращается через https://github.com/LazarenkoA/prometheus_1C_exporter/blob/9f087b4478d2edaf97b8607fcc28f881a180b301/examples_settings.yaml#LL57C1-L60C14

? Чтобы получить лог/пас

LazarenkoA commented 1 year ago

это урл сервиса который вернет жсон с логпасом, сервис может быть написан на чем угодно (в том числе и на 1С)

Butuff commented 1 year ago

Понял, спасибо большое! Будем пробовать 8)

Butuff commented 1 year ago

Что-то не получается =\ , если не трудно, то подскажите, пожалуйста, что делаю не так. На стороне 1С создали http сервис, проверили его через фиддлер (есть авторизация), он все возвращает корректно, разместили его в одной из баз и он возвращает креды к этой базе.

Прописали сервис в настройках экспортера. DBCredentials: # Не обязательный параметр URL: https://xxxxxx/xxxxxx/hs/G_DO_Creds/1 User: "admin" Password: "xxxxx"

В выдаваемых метриках не встречается вхождение "SheduleJob"

В логах с режимом Trace видно такие записи по всем базам: {"Name":"SheduleJob","level":"trace","msg":"Запрашиваем информацию для базы test1","time":"2023-05-16T16:52:29+03:00"} {"Name":"SheduleJob","level":"trace","msg":"Запрашиваем информацию для базы test_2","time":"2023-05-16T16:52:29+03:00"} В том числе и для базы с размещенным http сервисом.

Но в логах почему то только одна запись с ошибкой и по базе в которой не размещен сервис.... {"Name":"SheduleJob","error":"для базы test3 не определен пользователь","level":"error","msg":"","time":"2023-05-16T16:52:34+03:00"}

Видимо не очень понимаю логики работы экспортера в этом случае. Может нужно в этом сервисе вернуть массивом имена и лог/пасс баз?

LazarenkoA commented 1 year ago

приложи скрин браузера в котором видна ссылка на твой сервис и что б на странице был результат сервиса (жсон)

Butuff commented 1 year ago

Через браузер не отрабатывает, после ввода логина/пароля выдает ошибку:

image

А фидлером все отрабатывает замечательно:

image

LazarenkoA commented 1 year ago

ну видимо в этом причина. Вот когда браузер будет открывать, тогда пробуйте настроить экспортер

Butuff commented 1 year ago

Переделали сервис, в браузере виден ответ, после того как логин и пароль ввести.

image

Но в метриках не появился SheduleJob

LazarenkoA commented 1 year ago

но ведь тут https://github.com/LazarenkoA/prometheus_1C_exporter/blob/9f087b4478d2edaf97b8607fcc28f881a180b301/examples_settings.yaml#L47-L56C1

не такой json, там массив объектов

Butuff commented 1 year ago

Ок, а имя массива не важно?

Butuff commented 1 year ago

В таком формате?

image

LazarenkoA commented 1 year ago

нет, коллега, ну я же приложил пример, почему вы на угад подбираете формат?

Butuff commented 1 year ago

Так массив формируется в 1С через ЗаписьJSON. Переделал на строку просто, вот так возвращает - image

без изменений, коннекта по http соединению в базе не вижу, метрика тоже не появилась. В логах есть ошибка что не определен пользователь, но я для этой базы и не прописывал креды в сервисе, не может из-за этого не работать?

Butuff commented 1 year ago

Так массив формируется в 1С через ЗаписьJSON. Переделал на строку просто, вот так возвращает - image

без изменений, коннекта по http соединению в базе не вижу, метрика тоже не появилась. В логах есть ошибка что не определен пользователь, но я для этой базы и не прописывал креды в сервисе, не может из-за этого не работать?

Поправил разделение элементов массива на запятую.

LazarenkoA commented 1 year ago

А почему у вас разделение элементов массива через ; ? Приложите сюда этот жсон, есть сомнение что он вообще валидный И логи тоже приложите

Butuff commented 1 year ago

ответ сервиса: [{"Name": "sat_doc","UserName": "Admin","UserPass": ""},{"Name": "sat_buh","UserName": "Администратор","UserPass": ""},{"Name": "sat_zup_30","UserName": "Администратор","UserPass": ""},{"Name": "sat_uat","UserName": "Администратор","UserPass": ""}]

Лог после перезапуска службы с LogLevel: 6 https://cloud.mail.ru/public/fSFf/V6ddy384A

LazarenkoA commented 1 year ago

еще нужен конфиг, в логе я не вижу попыток обращения к вашему сервису

Butuff commented 1 year ago

Конфиг тут - https://cloud.mail.ru/public/ZCjL/TPQWqxgXq

LazarenkoA commented 1 year ago

а какую версию экспортера вы используете? Я эти правки вносил Oct 12, 2022

Butuff commented 1 year ago

Вроде актуальную скачивал отсюда: https://github.com/LazarenkoA/prometheus_1C_exporter/releases/download/1.4.18/1c_exporter_Windows_x86_64.zip

image

image

октябрьских релизов не вижу.

LazarenkoA commented 1 year ago

пересобери актуальный, релизы я давненько не обновлял

Butuff commented 1 year ago

Спасибо, вроде все заработало, только ругается на сертификат на сайте, он просрочен - {"error":"произошла ошибка при обращении к REST: Get \"https://1c.gehautotrans.ru/sat_doc/hs/GEH_DO_Creds/1\": tls: failed to verify certificate: x509: certificate signed by unknown authority","level":"error","msg":"ошибка получения данных по БД","time":"2023-05-25T15:44:05+03:00"}

Это как-то можно обойти? чтобы не было проверки сертификата.

LazarenkoA commented 1 year ago

можно, вечером постараюсь вынести настройку скипать проверку или нет в конфиг

Butuff commented 1 year ago

Отлично, спасибо большое!

LazarenkoA commented 1 year ago

добавил https://github.com/LazarenkoA/prometheus_1C_exporter/blob/master/examples_settings.yaml#L61

Butuff commented 1 year ago

Спасибо, достаточно конфиг изменить и перезапустить службу?

LazarenkoA commented 1 year ago

пересобрать бинарь и добавить флаг в конфиг

Butuff commented 1 year ago

Пересобрал, ошибка ушла, теперь другие ошибки в логе: {"error":"REST вернул код возврата 403","level":"error","msg":"ошибка получения данных по БД","time":"2023-05-26T11:43:49+03:00"} {"error":"unexpected end of JSON input","level":"error","msg":"не удалось десериализовать данные от REST","time":"2023-05-26T11:43:49+03:00"}

Лог - https://cloud.mail.ru/public/7V2p/SA3aUwddh

LazarenkoA commented 1 year ago

попробовал твой жсон вставить в тест, тест проходит, значит проблема не в жсоне

[{"Name": "sat_doc","UserName": "Admin","UserPass": ""},{"Name": "sat_buh","UserName": "Администратор","UserPass": ""},{"Name": "sat_zup_30","UserName": "Администратор","UserPass": ""},{"Name": "sat_uat","UserName": "Администратор","UserPass": ""}]

возможно в body добавляется что-то лишнее. Попробуй выполнить curl "url сервиса" > out.txt и приложить сюда out.txt (можно прям сюда, не обязательно выкладывать в mail cloud)

вот так: Log_11.log

Butuff commented 1 year ago

Готово out.txt

LazarenkoA commented 1 year ago

открой этот файл и посмотри что в нем

Butuff commented 1 year ago

В общем еще разбираюсь с ошибкой... видимо что-то с настройками IIS или публикации базы и сервиса в ней. Странно что и фиддлер и просто через браузер аутентификация отрабатывает и результат выдает.

LazarenkoA commented 1 year ago

может есть 301 редирект?

Butuff commented 1 year ago

Я, честно не силен в администрировании IIS но чтобы заработал мониторинг графаны из вне по ссылке мы ставили на IIS доп. модули по этой инструкции - https://grafana.com/tutorials/iis/ Там перезапись адреса и обратный прокси. Мониторинг на таком адресе - https://1c_xxxxxxx_.ru/monitoring/grafana/d/cf2c28b7-1b8c-419e-88fc-b79cc84cc348/1c-metrics?orgId=1 А сервис на https://1c_xxxxxxxx_.ru/1c_base/hs/GEH_DO_Creds/1

В IIS везде разрешена анонимная проверка подлинности. Остальная проверка отключена.

Переопределение такое: image

Сопоставление обработчиков одинаковое как у публикуемой базы так и у страницы с мониторингом. image C:\Program Files (x86)\1cv8\8.3.22.1750\bin\wsisapi.dll

Butuff commented 1 year ago

Кстати в журнале базы где сервис размещен вижу запросы к сервису и ошибок вроде нет

image

github-actions[bot] commented 11 months ago

Эта проблема устарела, поскольку она была открыта в течение 30 дней без какой-либо активности.

github-actions[bot] commented 11 months ago

Эта проблема была закрыта, поскольку она была неактивна в течение 5 дней с тех пор, как была помечена как устаревшая.