Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Мониторинг жобов в SQL 2012 / 21 сообщений из 21, страница 1 из 1
13.01.2020, 16:12
    #39913287
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Добрый день всем.
SQL 2012
Хочется прикрутить мониторинг жобов


В том плане что подвисли жобы ночью выполнявшиеся
(помог рестарт SQL Server Agent) - чтобы посылало на почту ну скажем больше 4 часов выполняющиеся

Ну и упавшие жобы (кое где стоят Операторы когда жобы падают - но там есть хитрость надо чтобы все упавшие шаги - но это я знаю как)

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

1?) Как отделить репликационные жобы от не репликационных

2?) Поглядел в репликационных куча ошибок - думаю игнорироватьт их или нет

3?) В первую очередь интересуют подвисшие жобы (> 4 часов)

Скорей будет чего то такое - планирую гонять во всем серверам (>20) Powershell


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT  b.name as job , step_name , step_id  as s_id 
, instance_id as instance
, run_date as run_dat
, b.name as job_name
, a.run_status 	
, iif ( charindex ( 'failed' , message  ) != 0 , 'Err' , '') as er1
, retries_attempted cnt_try
 , a.Run_Duration 
, cast(dateadd(s,((Run_Duration/10000) % 100 * 3600) + ((Run_Duration/100) % 100 * 60) + Run_Duration % 100,'19000101') as time) AS time1
, sql_severity , sql_message_id 
, MESSAGE
, b.*  , a.*
FROM msdb.dbo.SYSJOBHISTORY a
	join msdb.dbo.sysjobs b
		on a.job_id = b.job_id
 WHERE
 a.run_status = 4 -- in porgress 
 
 ++ как-то условие на > 4 часов написать
ORDER BY run_date desc  , a.Run_Duration desc 




Вообщем кто юзает что похожее - плз поделитесь практическим попытом
...
Рейтинг: 0 / 0
13.01.2020, 16:34
    #39913298
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
msdb.dbo.syscategories category_id позволяет отдеть репликационные жобы
так что этот вопрос снимается
но все остальное интересно

зы хотел проапдейтить прошлое сообщение - но нав. прошло уже время и не получилось
...
Рейтинг: 0 / 0
13.01.2020, 16:39
    #39913302
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гулин Федор,

Для своих job, можно сделать свой category_id
https://docs.microsoft.com/ru-ru/sql/ssms/agent/create-a-job-category?view=sql-server-ver15
...
Рейтинг: 0 / 0
13.01.2020, 16:52
    #39913312
sti
sti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
автор++ как-то условие на > 4 часов написать
В msdb.dbo.sysjobactivity есть поле start_execution_date

Только потом вы поймёте, что для одного джоба 4 часа это нормально, а для другого непозволительно долго... Я просто завёл табличку, где указано для каждого джоба максимально допустимое время выполнения.
...
Рейтинг: 0 / 0
13.01.2020, 16:59
    #39913315
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
sti
автор++ как-то условие на > 4 часов написать

В msdb.dbo.sysjobactivity есть поле start_execution_date

Только потом вы поймёте, что для одного джоба 4 часа это нормально, а для другого непозволительно долго... Я просто завёл табличку, где указано для каждого джоба максимально допустимое время выполнения.

так да это и планируется сделать - пока собрать упрощенный вариант
просто жобов много так же как серверов - поэтому думаю запихнуть куда то на один служебный сервре

поэтому если пару слов про то как сделано (а код ) то очень даже велком.
...
Рейтинг: 0 / 0
13.01.2020, 17:06
    #39913320
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Имхо, лучше мониторить, что джоб сделал таки то, что должен был.

По мне, гораздо полезнее, когда срабатывает алерт и говорит, что "бэкап базы X не делался уже N часов", чем "джоб бэкап-бла-бла-бла упал/завис". Ибо может выйти так, что джоб на бэкап отработал без ошибок, а бэкапа при этом нет, из-за того, к примеру, что кто-то изменил настройки бэкапирования AlwaysOn группы. И так почти в каждом случае. Не грузятся данные? Так может они в источнике отсуствуют, а джоб в состоянии Successful.
...
Рейтинг: 0 / 0
13.01.2020, 17:51
    #39913339
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гулин Федор,

entrypoint


Для своих job, можно сделать свой category_id
https://docs.microsoft.com/ru-ru/sql/ssms/agent/create-a-job-category?view=sql-server-ver15


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 
     sj.[name]
FROM 
     msdb.dbo.sysjobs AS sj
     INNER JOIN msdb.dbo.sysjobactivity AS sh ON sj.job_id = sh.job_id
WHERE sj.[enabled] = 1
      AND sj.category_id NOT IN (10, 13) /* IN Вставить нужную категорию*/   
      AND DATEDIFF(SECOND, sh.start_execution_date, GETDATE()) > 1 /* Указать нужное время выполнения */
      AND sh.stop_execution_date IS NULL;
...
Рейтинг: 0 / 0
13.01.2020, 18:26
    #39913351
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гавриленко Сергей Алексеевич,

Поддерживаю, гораздо важнее знать, что результат достигнут и джоб не обвалился с ошибкой. По ошибкам можно настроить рассылку. А сколько он выполняется - это его личное дело. Контрольные точки надо брать другим способом и/или в другом месте.
...
Рейтинг: 0 / 0
14.01.2020, 15:17
    #39913726
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Владислав Колосов
Гавриленко Сергей Алексеевич,

Поддерживаю, гораздо важнее знать, что результат достигнут и джоб не обвалился с ошибкой. По ошибкам можно настроить рассылку. А сколько он выполняется - это его личное дело. Контрольные точки надо брать другим способом и/или в другом месте.


Ну и как ловить тот случай когда жобы подвисили с ночи пятницы причем 5 штук
и как бы они типа работают ?
в данном случае пингнули пользователи кубов что нет новых данных
- полез смотреть и обнаружил 5 висящих жобов.

ps Жобво там 200+ на разных серверах - и знать чего они там делают в деталях никто не знает.
идея сего мониторинга - чтобы ловить подозрительные случаи таких зависаний упреждая проблемы.
(есть такое хитрое слово проактивный - вот это про то)
...
Рейтинг: 0 / 0
14.01.2020, 16:29
    #39913793
sti
sti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гулин Федор

поэтому если пару слов про то как сделано (а код ) то очень даже велком.

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

Сделано на коленке - табличка со списком джобов: сервер, джоб, кому сообщать о проблеме, максимально допустимое время работы, активен или нет, как часто в днях обязан успешно завершиться. Ну и процедура, которая находит долновыполняющиеся, упавшие, отключенные джобы, оценивает критичность, сохраняет в табличку и пишет письма.
...
Рейтинг: 0 / 0
14.01.2020, 16:34
    #39913801
sti
sti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гавриленко Сергей Алексеевич
Имхо, лучше мониторить, что джоб сделал таки то, что должен был.

По мне, гораздо полезнее, когда срабатывает алерт и говорит, что "бэкап базы X не делался уже N часов", чем "джоб бэкап-бла-бла-бла упал/завис". Ибо может выйти так, что джоб на бэкап отработал без ошибок, а бэкапа при этом нет, из-за того, к примеру, что кто-то изменил настройки бэкапирования AlwaysOn группы. И так почти в каждом случае. Не грузятся данные? Так может они в источнике отсуствуют, а джоб в состоянии Successful.


Это лучше, нет вопросов. К сожалению не всегда возможно за приемлемое время такое сделать. Как это часто бывает, приходишь на новое место а у них там десятки джобов, каждый шагов по двадцать да еще и завязаны логикой между собой :-)
...
Рейтинг: 0 / 0
14.01.2020, 16:49
    #39913819
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гулин Федор,
авторпингнули пользователи кубов что нет новых данных

Вот это и есть точка мониторинга. У меня есть джобы по сбору данных, которые работают 24/7. Т.е. всегда работают. Но это не показатель их работы.
...
Рейтинг: 0 / 0
15.01.2020, 00:29
    #39914040
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
sti
автор++ как-то условие на > 4 часов написать

В msdb.dbo.sysjobactivity есть поле start_execution_date

Только потом вы поймёте, что для одного джоба 4 часа это нормально, а для другого непозволительно долго... Я просто завёл табличку, где указано для каждого джоба максимально допустимое время выполнения.AVG + STDEV * X
...
Рейтинг: 0 / 0
15.01.2020, 10:32
    #39914134
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
sti
Гулин Федор

поэтому если пару слов про то как сделано (а код ) то очень даже велком.

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

Сделано на коленке - табличка со списком джобов: сервер, джоб, кому сообщать о проблеме, максимально допустимое время работы, активен или нет, как часто в днях обязан успешно завершиться. Ну и процедура, которая находит долновыполняющиеся, упавшие, отключенные джобы, оценивает критичность, сохраняет в табличку и пишет письма.


Да вот именно похожую вещь и хочу наваять - только так чтобы на многих серверах (учитываю multi Jobs)

а какие если не секрет расматриваются ?
PS тут вот хотят zabbix - но я понимаю что SQL к нему надо будет все равно писать самому
...
Рейтинг: 0 / 0
15.01.2020, 11:36
    #39914184
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гулин Федор,

автортут вот хотят zabbix - но я понимаю что SQL к нему надо будет все равно писать самому

Нет не надо, достаточно лог выполнения выводить в журнал Windows, заббикс клиент умеет читать журнал. В журнале Windows можно создать представление для SQL событий.
...
Рейтинг: 0 / 0
15.01.2020, 15:02
    #39914366
sti
sti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Гулин Федор

а какие если не секрет расматриваются ?

Solarwinds Orion у нас уже стоит для всего прочего. Там есть модуль для SQL Server. Вот как раз щупаю. Видимо будем использовать. По ощущениям этого недостаточно для оперативного решения проблем с производительностью когда они возникают. В таких случаях использую Sentry хотя и не в восторге. Был бы рад найти что-то другое.

Гулин Федор

Да вот именно похожую вещь и хочу наваять - только так чтобы на многих серверах (учитываю multi Jobs)

На многих и стоит, но отдельно. Если бы были сотни серверов, то было бы слишком трудоемко в поддержке, вероятно.
...
Рейтинг: 0 / 0
27.01.2020, 23:31
    #39919248
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
sti
Гулин Федор

а какие если не секрет расматриваются ?

Solarwinds Orion у нас уже стоит для всего прочего. Там есть модуль для SQL Server. Вот как раз щупаю. Видимо будем использовать. По ощущениям этого недостаточно для оперативного решения проблем с производительностью когда они возникают. В таких случаях использую Sentry хотя и не в восторге. Был бы рад найти что-то другое.

Гулин Федор

Да вот именно похожую вещь и хочу наваять - только так чтобы на многих серверах (учитываю multi Jobs)

На многих и стоит, но отдельно. Если бы были сотни серверов, то было бы слишком трудоемко в поддержке, вероятно.
модуль для SQL от orion можно сразу в мусорку. Они его сделали для галочки - мы поддерживаем ms SQL. У них есть другой продукт DPA, но он тоже очень на любителя.

В RedGate на мой взгляд самые простые в понимании и конфигурировании алерты. Ну и по дефолту они покрывают базовые потребности при минимальной настройке. Но в остальном их монитор весьма хромает. Хорошо подойдёт только для топ менеджера - графики красивые но абсолютно бестолковые.

SentryOne самая навороченная. В плане мониторинга и анализа перформанса наверное лучшая, но вот алерты там реализованы через одно место. Мы их по сути выключили и написали свои с нуля. А вас чем Sentry не устроила?

Idera? Тоже гавно.
...
Рейтинг: 0 / 0
27.01.2020, 23:36
    #39919250
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Если кому интересно у меня есть табличка сравнения основных мониторинг систем, могу перевести и выложить.
...
Рейтинг: 0 / 0
28.01.2020, 00:35
    #39919262
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Mind,

Интересно.
...
Рейтинг: 0 / 0
28.01.2020, 12:57
    #39919403
Voyager_lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Mind
Если кому интересно у меня есть табличка сравнения основных мониторинг систем, могу перевести и выложить.

Интересно
...
Рейтинг: 0 / 0
28.01.2020, 13:12
    #39919419
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг жобов в SQL 2012
Mind
Если кому интересно у меня есть табличка сравнения основных мониторинг систем, могу перевести и выложить.

Переводить не обязательно, если "выкладывание" упирается в это.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Мониторинг жобов в SQL 2012 / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]